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

void share_xchannel_failure(ssh_sharing_connstate *cs,share_xchannel *xc)

{
  char cVar1;
  byte bVar2;
  byte bVar3;
  byte bVar4;
  uchar uVar5;
  uchar uVar6;
  uchar uVar7;
  uchar uVar8;
  uchar uVar9;
  undefined1 uVar10;
  undefined1 uVar11;
  undefined1 uVar12;
  bool bVar13;
  plug_function_table **pppVar14;
  plug_function_table **pppVar15;
  byte *pbVar16;
  char *pcVar17;
  uint upstream_id;
  void *e;
  plug_function_table *server_id;
  ssh_sharing_state *psVar18;
  Socket ppsVar19;
  int iVar20;
  int iVar21;
  undefined1 *puVar22;
  undefined1 *puVar23;
  share_channel *psVar24;
  share_xchannel *xc_00;
  share_forwarding *e_00;
  share_forwarding *psVar25;
  share_globreq *psVar26;
  undefined4 *puVar27;
  int iVar28;
  int iVar29;
  ssh_sharing_connstate *cs_00;
  byte bVar31;
  tree234 *t;
  share_globreq *psVar30;
  uint uVar32;
  byte *pbVar33;
  byte *pbVar34;
  undefined4 uVar35;
  uint uVar36;
  uint in_t3;
  undefined *puVar37;
  uchar *puVar38;
  ssh_sharing_connstate *psVar39;
  byte *pbVar40;
  byte *pbVar41;
  byte *unaff_s5;
  byte *pbVar42;
  ssh_sharing_connstate *unaff_s6;
  ssh_sharing_connstate *psVar43;
  uchar *puVar44;
  ssh_sharing_connstate *psVar45;
  uchar *puVar46;
  undefined *puVar47;
  code *pcVar48;
  int *piVar49;
  ssh_sharing_connstate *psStack_b0;
  ssh_sharing_connstate *psStack_90;
  ssh_sharing_connstate *psStack_8c;
  Socket ppsStack_88;
  plug_function_table *ppStack_68;
  int iStack_64;
  share_xchannel *psStack_60;
  ssh_sharing_connstate *psStack_5c;
  undefined *puStack_58;
  uchar id [4];
  
  psVar45 = (ssh_sharing_connstate *)PTR___stack_chk_guard_00112630;
  id = (uchar  [4])xc->server_id;
  pbVar33 = &DAT_00000061;
  pbVar16 = id;
  iVar28 = *(int *)PTR___stack_chk_guard_00112630;
  (*(code *)PTR_ssh_send_packet_from_downstream_00111acc)(cs->parent->ssh,cs->id);
  xc->live = 0;
  cs_00 = cs;
  share_dead_xchannel_respond(cs,xc);
  if (iVar28 == *(int *)psVar45) {
    return;
  }
  puVar47 = PTR___stack_chk_fail_001122c8;
  (*(code *)PTR___stack_chk_fail_001122c8)();
  iVar28 = cs_00->crLine;
  piVar49 = *(int **)(puVar47 + 0x896d4);
  puStack_58 = (undefined *)psVar45;
  iStack_64 = *piVar49;
  pbVar40 = pbVar16;
  psStack_60 = xc;
  psStack_5c = cs;
  if (iVar28 != 0x709) {
    if (0x709 < iVar28) {
      if (iVar28 == 0x72e) goto LAB_000893ac;
      if (iVar28 != 0x73b) goto LAB_000890e0;
      goto LAB_00088fd4;
    }
    if (iVar28 != 0) goto LAB_000890e0;
    cs_00->recvlen = 0;
  }
  if (pbVar16 == (byte *)0x0) {
LAB_00089094:
    cs_00->crLine = 0x709;
LAB_000890e4:
    do {
      if (iStack_64 == *piVar49) {
        return;
      }
      (**(code **)(puVar47 + 0x8936c))();
      pbVar33 = unaff_s5;
LAB_00089df8:
      ppStack_68 = psStack_b0->fn;
      send_packet_to_downstream
                ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,(share_channel *)0x0,
                 (share_channel *)0xc);
      (**(code **)(puVar47 + 0x88394))(unaff_s6);
      cs_00->recvlen = 0;
LAB_000893ac:
      pbVar16 = pbVar33 + (int)pbVar40;
      unaff_s5 = pbVar33;
      do {
        pbVar40 = pbVar16 + (-1 - (int)unaff_s5);
        if (unaff_s5 == pbVar16) {
          cs_00->crLine = 0x72e;
          goto LAB_000890e4;
        }
        iVar28 = cs_00->recvlen;
        pbVar33 = unaff_s5 + 1;
        iVar29 = iVar28 + 1;
        bVar31 = *unaff_s5;
        in_t3 = (uint)bVar31;
        cs_00->recvlen = iVar29;
        cs_00->recvbuf[iVar28] = bVar31;
        unaff_s5 = pbVar33;
      } while (iVar29 < 4);
      iVar28 = (**(code **)(puVar47 + 0x884fc))(*(int *)cs_00->recvbuf + 4);
      cs_00->curr_packetlen = iVar28;
      if ((undefined1 *)(iVar28 + -5) < &DAT_0000400c) {
        unaff_s6 = (ssh_sharing_connstate *)cs_00->recvlen;
        while (unaff_s5 = pbVar33, (int)unaff_s6 < iVar28) {
LAB_00088fd4:
          if (pbVar40 == (byte *)0x0) {
            cs_00->crLine = 0x73b;
            pbVar40 = (byte *)0x0;
            goto LAB_000890e4;
          }
          iVar28 = cs_00->recvlen;
          pbVar40 = pbVar40 + -1;
          bVar31 = *pbVar33;
          pbVar33 = pbVar33 + 1;
          unaff_s6 = (ssh_sharing_connstate *)(iVar28 + 1);
          cs_00->recvlen = (int)unaff_s6;
          cs_00->recvbuf[iVar28] = bVar31;
          iVar28 = cs_00->curr_packetlen;
        }
        bVar31 = cs_00->recvbuf[4];
        puVar38 = cs_00->recvbuf + 5;
        puVar23 = (undefined1 *)((int)&unaff_s6[-1].globreq_head + 3);
        if (bVar31 != 0x5a) {
          if (bVar31 < 0x5b) {
            if (bVar31 != 2) {
              if (2 < bVar31) {
                if (bVar31 == 4) goto LAB_00089714;
                if (bVar31 != 0x50) goto LAB_0008965c;
                iVar28 = *(int *)(puVar47 + 0x8839c);
                psVar39 = psVar45;
                if ((int)puVar23 < 4) goto LAB_000896fc;
                psVar39 = (ssh_sharing_connstate *)(*(int *)(puVar47 + 0x88acc) + 0x79c0);
                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)&psStack_90,(int *)0x0);
                psVar43 = psStack_90;
                if ((iVar28 == 0) || (psStack_90 == (ssh_sharing_connstate *)0x0))
                goto LAB_000896f8;
                iVar28 = (**(code **)(puVar47 + 0x8953c))
                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x30e8);
                if (iVar28 != 0) {
                  iVar28 = (**(code **)(puVar47 + 0x8953c))
                                     (psVar43,*(int *)(puVar47 + 0x8839c) + -0x317c);
                  pcVar48 = *(code **)(puVar47 + 0x88394);
                  psVar45 = psVar39;
                  if (iVar28 == 0) {
                    (*pcVar48)(psVar43);
                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);
                    psVar43 = psStack_90;
                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&
                       (puVar37 = (undefined *)((int)&psStack_90->fn + 1),
                       (int)psStack_90 < (int)puVar23)) {
                      psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90);
                      iVar29 = (int)puVar23 - (int)puVar37;
                      cVar1 = *(char *)&psStack_b0->fn;
                      if ((iVar29 < 4) ||
                         (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,
                                                   (int *)&psStack_90), iVar28 == 0)) {
                        iVar28 = *(int *)(puVar47 + 0x8839c);
                        if ((int)psVar43 < (int)&unaff_s6[-1].globreq_head) {
                          if (iVar29 >= 4) goto LAB_000892a4;
LAB_00089eec:
                          uVar35 = 0x5a7;
                          goto LAB_00089ef0;
                        }
                      }
                      else {
                        psVar43 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);
                        iVar28 = *(int *)(puVar47 + 0x8839c);
                        if (-1 < (int)psVar43) {
                          pcVar48 = *(code **)(puVar47 + 0x8844c);
                          if ((int)&unaff_s6[-1].globreq_head <= (int)psVar43) goto LAB_00089700;
LAB_000892a4:
                          iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,
                                                   (char **)&psStack_90,(int *)0x0);
                          psVar45 = psStack_90;
                          if ((iVar28 == 0) ||
                             (psVar39 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))
                          goto LAB_00089eec;
                          puVar44 = puVar38 + (int)psVar43;
                          bVar31 = *puVar44;
                          bVar2 = puVar44[1];
                          bVar3 = puVar44[3];
                          bVar4 = puVar44[2];
                          psStack_90 = (ssh_sharing_connstate *)
                                       (**(code **)(puVar47 + 0x883c0))(psStack_90);
                          psStack_8c = (ssh_sharing_connstate *)
                                       ((uint)bVar31 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |
                                       (uint)bVar4 << 8);
                          unaff_s6 = (ssh_sharing_connstate *)
                                     find234(cs_00->forwardings,&psStack_90,(cmpfn234)0x0);
                          (**(code **)(puVar47 + 0x88394))(psStack_90);
                          if (unaff_s6 == (ssh_sharing_connstate *)0x0) {
                            pcVar48 = *(code **)(puVar47 + 0x88394);
                            if (cVar1 != '\0') {
                              send_packet_to_downstream
                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,
                                         (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,
                                         (share_channel *)0x0,(share_channel *)0xc);
                              goto LAB_00089394;
                            }
                          }
                          else {
                            cVar1 = *(char *)&psStack_b0->fn;
                            *(undefined1 *)&psStack_b0->fn = 1;
                            if (cVar1 == '\0') {
                              iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;
                            }
                            else {
                              iVar28 = 0;
                            }
                            (**(code **)(puVar47 + 0x88b70))
                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);
                            (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);
LAB_00089394:
                            pcVar48 = *(code **)(puVar47 + 0x88394);
                          }
                          (*pcVar48)(psVar45);
                          goto LAB_000893a4;
                        }
                      }
                      goto LAB_000896fc;
                    }
                  }
                  else {
LAB_00089f10:
                    (*pcVar48)();
                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);
                    psVar39 = psVar45;
                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&
                       ((int)psStack_90 < (int)puVar23)) {
                      if (puVar38[(int)psStack_90] == '\0') goto LAB_000893a4;
                      send_packet_to_downstream
                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,
                                 (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,
                                 (share_channel *)0x0,(share_channel *)0xc);
                      cs_00->recvlen = 0;
                      goto LAB_000893ac;
                    }
                  }
LAB_000896f8:
                  iVar28 = *(int *)(puVar47 + 0x8839c);
                  goto LAB_000896fc;
                }
                (**(code **)(puVar47 + 0x88394))(psVar43);
                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);
                psVar45 = psStack_90;
                if (((iVar28 == 0) || ((int)psStack_90 < 0)) ||
                   (puVar37 = (undefined *)((int)&psStack_90->fn + 1),
                   (int)puVar23 <= (int)psStack_90)) goto LAB_000896f8;
                puVar44 = puVar38 + (int)psStack_90;
                iVar29 = (int)puVar23 - (int)puVar37;
                psStack_b0 = (ssh_sharing_connstate *)(uint)*puVar44;
                if ((iVar29 < 4) ||
                   (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,
                                             (int *)&psStack_90), iVar28 == 0)) {
                  iVar28 = *(int *)(puVar47 + 0x8839c);
                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {
                    if (iVar29 >= 4) goto LAB_0008a05c;
LAB_0008a304:
                    uVar35 = 0x55e;
LAB_00089ef0:
                    pcVar48 = *(code **)(puVar47 + 0x88ff4);
                    (*pcVar48)(*(int *)(puVar47 + 0x8839c) + 0x457c,
                               *(int *)(puVar47 + 0x8839c) + 0x43dc,uVar35,
                               *(int *)(puVar47 + 0x8839c) + 0x4870);
                    psVar45 = psVar39;
                    goto LAB_00089f10;
                  }
LAB_000896fc:
                  pcVar48 = *(code **)(puVar47 + 0x8844c);
                }
                else {
                  psVar45 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);
                  iVar28 = *(int *)(puVar47 + 0x8839c);
                  if ((int)psVar45 < 0) goto LAB_000896fc;
                  pcVar48 = *(code **)(puVar47 + 0x8844c);
                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {
LAB_0008a05c:
                    iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)&psStack_90,
                                             (int *)0x0);
                    psVar43 = psStack_90;
                    if ((iVar28 == 0) ||
                       (unaff_s6 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))
                    goto LAB_0008a304;
                    puVar46 = puVar38 + (int)psVar45;
                    psVar45 = (ssh_sharing_connstate *)
                              ((uint)*puVar46 << 0x18 | (uint)puVar46[3] | (uint)puVar46[1] << 0x10
                              | (uint)puVar46[2] << 8);
                    iVar28 = (**(code **)(puVar47 + 0x88ba0))
                                       (cs_00->parent->ssh,psStack_90,psVar45,cs_00);
                    if (iVar28 == 0) {
                      if (psStack_b0 != (ssh_sharing_connstate *)0x0) {
                        send_packet_to_downstream
                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,
                                   (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,
                                   (share_channel *)0x0,(share_channel *)0xc);
                      }
                    }
                    else {
                      bVar31 = *puVar44;
                      *puVar44 = 1;
                      if (bVar31 == 0) {
                        iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;
                      }
                      else {
                        iVar28 = 0;
                      }
                      (**(code **)(puVar47 + 0x88b70))
                                (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);
                      e_00 = (share_forwarding *)(**(code **)(puVar47 + 0x88390))(1,0xc);
                      pcVar17 = (char *)(**(code **)(puVar47 + 0x883c0))(psVar43);
                      t = cs_00->forwardings;
                      e_00->host = pcVar17;
                      e_00->port = (int)psVar45;
                      e_00->active = 0;
                      psVar25 = (share_forwarding *)add234(t,e_00);
                      if (e_00 == psVar25) {
                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);
                        psVar26 = (share_globreq *)(**(code **)(puVar47 + 0x88390))(1,0x10);
                        psVar30 = cs_00->globreq_tail;
                        psVar26->next = (share_globreq *)0x0;
                        if (psVar30 == (share_globreq *)0x0) {
                          cs_00->globreq_head = psVar26;
                        }
                        else {
                          psVar30->next = psVar26;
                        }
                        psVar26->fwd = e_00;
                        psVar26->type = 0;
                        psVar26->want_reply = (int)psStack_b0;
                      }
                      else {
                        (**(code **)(puVar47 + 0x88394))(e_00);
                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);
                      }
                    }
                    (**(code **)(puVar47 + 0x88394))(psVar43);
                    cs_00->recvlen = 0;
                    unaff_s6 = psVar43;
                    goto LAB_000893ac;
                  }
                }
LAB_00089700:
                pcVar17 = (char *)(*pcVar48)(iVar28 + 0x455c);
                psVar45 = psVar39;
                goto LAB_00089674;
              }
              if (bVar31 != 1) {
LAB_0008965c:
                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))
                                            (*(int *)(puVar47 + 0x8839c) + 0x474c,bVar31);
                goto LAB_00089674;
              }
              (*(*cs_00->sock)->close)(cs_00->sock);
              cs_00->sock = (Socket)0x0;
              share_try_cleanup(cs_00);
              cs_00->recvlen = 0;
              goto LAB_000893ac;
            }
LAB_00089714:
            puVar22 = (undefined1 *)((int)&unaff_s6[-1].forwardings + 3);
            if ((bVar31 == 0x62) &&
               (psVar45 = *(ssh_sharing_connstate **)(puVar47 + 0x88acc), 3 < (int)puVar22)) {
              psVar45 = (ssh_sharing_connstate *)(psVar45[1].recvbuf + 0x394c);
              iVar28 = getstring_inner(cs_00->recvbuf + 9,(int)puVar22,(char **)&psStack_90,
                                       (int *)0x0);
              psVar39 = psStack_90;
              if ((iVar28 != 0) && (psStack_90 != (ssh_sharing_connstate *)0x0)) {
                psStack_b0 = psStack_90;
                iVar28 = (**(code **)(puVar47 + 0x8953c))
                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x363c);
                if ((iVar28 == 0) &&
                   (iVar28 = (**(code **)(puVar47 + 0x888c4))(cs_00->parent->ssh), iVar28 == 0)) {
                  ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);
                  (**(code **)(puVar47 + 0x88394))(psVar39);
                  ppsStack_88 = ppsVar19;
                  puVar27 = (undefined4 *)
                            find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);
                  if (puVar27 == (undefined4 *)0x0) {
                    pcVar48 = *(code **)(puVar47 + 0x8844c);
                    iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46b8;
LAB_0008a3a0:
                    pcVar17 = (char *)(*pcVar48)(iVar28,ppsVar19);
                    share_disconnect(cs_00,pcVar17);
                    (**(code **)(puVar47 + 0x88394))(pcVar17);
                    cs_00->recvlen = 0;
                  }
                  else {
                    ppStack_68 = (plug_function_table *)*puVar27;
                    send_packet_to_downstream
                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,
                               (share_channel *)0x0,(share_channel *)0xc);
                    cs_00->recvlen = 0;
                  }
                  goto LAB_000893ac;
                }
                iVar28 = *(int *)(puVar47 + 0x8839c);
                iVar29 = (**(code **)(puVar47 + 0x8953c))(psVar39,iVar28 + -0x36a0);
                if (iVar29 != 0) {
                  (**(code **)(puVar47 + 0x88394))(psVar39);
                  psStack_b0 = psVar39;
                  goto LAB_00089cc8;
                }
                ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);
                (**(code **)(puVar47 + 0x88394))(psVar39);
                ppsStack_88 = ppsVar19;
                psStack_b0 = (ssh_sharing_connstate *)
                             find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);
                if (psStack_b0 == (ssh_sharing_connstate *)0x0) {
                  pcVar48 = *(code **)(puVar47 + 0x8844c);
                  iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46f0;
                  goto LAB_0008a3a0;
                }
                if ((int)puVar23 < 0x11) {
                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))
                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);
                  goto LAB_00089674;
                }
                uVar5 = cs_00->recvbuf[0x14];
                puVar22 = (undefined1 *)((int)&unaff_s6[-1].channels_by_server + 2);
                uVar6 = cs_00->recvbuf[0x15];
                if ((int)puVar22 < 4) {
                  iVar29 = (**(code **)(puVar47 + 0x88b90))(0);
                  (**(code **)(puVar47 + 0x88394))(0);
LAB_0008a36c:
                  psVar39 = (ssh_sharing_connstate *)0xffffffff;
                }
                else {
                  iVar29 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)&psStack_90,
                                           (int *)0x0);
                  psVar39 = psStack_90;
                  if (iVar29 == 0) {
                    psVar39 = (ssh_sharing_connstate *)0x0;
                  }
                  iVar29 = (**(code **)(puVar47 + 0x88b90))(psVar39);
                  (**(code **)(puVar47 + 0x88394))(psVar39);
                  iVar20 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)0x0,
                                           (int *)&psStack_90);
                  psVar39 = psStack_90;
                  if (iVar20 == 0) goto LAB_0008a36c;
                }
                puVar44 = (uchar *)((int)&psVar39->crLine + 1);
                iVar20 = (int)puVar23 - (int)puVar44;
                unaff_s6 = (ssh_sharing_connstate *)0x0;
                if (iVar20 < 4) {
LAB_00089ec4:
                  psVar39 = (ssh_sharing_connstate *)0xffffffff;
                }
                else {
                  iVar21 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)&psStack_90,
                                           (int *)0x0);
                  unaff_s6 = psStack_90;
                  if (iVar21 == 0) {
                    unaff_s6 = (ssh_sharing_connstate *)0x0;
                  }
                  iVar20 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)0x0,
                                           (int *)&psStack_90);
                  psVar39 = psStack_90;
                  if (iVar20 == 0) goto LAB_00089ec4;
                }
                if ((int)puVar23 <= (int)(puVar44 + (int)psVar39 + 3)) {
                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))
                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);
                  (**(code **)(puVar47 + 0x88394))(unaff_s6);
                  goto LAB_00089674;
                }
                puVar38 = puVar38 + (int)(puVar44 + (int)psVar39);
                if (-1 < iVar29) {
                  pcVar48 = *(code **)(puVar47 + 0x88b94);
                  uVar7 = *puVar38;
                  bVar13 = uVar6 != '\0';
                  uVar6 = puVar38[1];
                  uVar8 = puVar38[3];
                  uVar9 = puVar38[2];
                  psStack_b0->got_verstring = iVar29;
                  iVar20 = (*pcVar48)(unaff_s6,psStack_b0->recvbuf);
                  pcVar48 = *(code **)(puVar47 + 0x88394);
                  psStack_b0->curr_packetlen = iVar20;
                  (*pcVar48)(unaff_s6);
                  iVar29 = (**(code **)(puVar47 + 0x88b98))
                                     (cs_00->parent->ssh,iVar29,cs_00,psStack_b0);
                  psStack_b0->sent_verstring = iVar29;
                  *(uint *)(psStack_b0->recvbuf + 4) = (uint)bVar13;
                  psVar45 = (ssh_sharing_connstate *)
                            (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0xc));
                  unaff_s6 = (ssh_sharing_connstate *)
                             (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0x10));
                  puVar38 = (uchar *)((int)&psVar45->curr_packetlen + 1) + (int)unaff_s6;
                  puVar22 = (undefined1 *)(**(code **)(puVar47 + 0x88390))(puVar38,1);
                  puVar22[4] = 0;
                  puVar22[5] = 0;
                  uVar32 = *(uint *)(iVar28 + -0x36a0);
                  uVar10 = *(undefined1 *)(iVar28 + -0x369c);
                  uVar11 = *(undefined1 *)(iVar28 + -0x369b);
                  uVar12 = *(undefined1 *)(iVar28 + -0x369a);
                  puVar22[3] = (char)ppsVar19;
                  *puVar22 = (char)((uint)ppsVar19 >> 0x18);
                  puVar22[1] = (char)((uint)ppsVar19 >> 0x10);
                  puVar22[2] = (char)((uint)ppsVar19 >> 8);
                  puVar22[7] = 7;
                  puVar22[6] = 0;
                  puVar23 = puVar22 + 8;
                  uVar36 = (uint)puVar23 & 3;
                  *(uint *)(puVar23 + -uVar36) =
                       *(uint *)(puVar23 + -uVar36) & -1 << (4 - uVar36) * 8 | uVar32 >> uVar36 * 8;
                  puVar23 = puVar22 + 0xb;
                  uVar36 = (uint)puVar23 & 3;
                  *(uint *)(puVar23 + -uVar36) =
                       *(uint *)(puVar23 + -uVar36) & 0xffffffffU >> (uVar36 + 1) * 8 |
                       uVar32 << (3 - uVar36) * 8;
                  puVar22[0xc] = uVar10;
                  puVar22[0xd] = uVar11;
                  puVar22[0xe] = uVar12;
                  puVar22[0x10] = bVar13;
                  puVar22[0x11] = (char)((uint)psVar45 >> 0x18);
                  puVar22[0x12] = (char)((uint)psVar45 >> 0x10);
                  puVar22[0x13] = (char)((uint)psVar45 >> 8);
                  puVar22[0x14] = (char)psVar45;
                  pcVar48 = *(code **)(puVar47 + 0x89610);
                  puVar22[0xf] = uVar5 != '\0';
                  (*pcVar48)(puVar22 + 0x15,*(undefined4 *)(psStack_b0->sent_verstring + 0xc),
                             psVar45);
                  puVar23 = puVar22 + (int)psVar45;
                  puVar23[0x15] = (char)((uint)unaff_s6 >> 0x18);
                  puVar23[0x16] = (char)((uint)unaff_s6 >> 0x10);
                  puVar23[0x17] = (char)((uint)unaff_s6 >> 8);
                  puVar23[0x18] = (char)unaff_s6;
                  (**(code **)(puVar47 + 0x89610))
                            (puVar22 + (int)((int)&psVar45->got_verstring + 1),
                             *(undefined4 *)(psStack_b0->sent_verstring + 0x10),unaff_s6);
                  puVar23 = puVar22 + (int)(unaff_s6->recvbuf + (int)(psVar45->recvbuf + -0x40));
                  puVar23[0x1c] = uVar8;
                  puVar23[0x19] = uVar7;
                  puVar23[0x1a] = uVar6;
                  puVar23[0x1b] = uVar9;
                  (**(code **)(puVar47 + 0x88b70))
                            (cs_00->parent->ssh,cs_00->id,0x62,puVar22,puVar38,0);
                  (**(code **)(puVar47 + 0x88394))(puVar22);
                  cs_00->recvlen = 0;
                  goto LAB_000893ac;
                }
                goto LAB_00089df8;
              }
            }
LAB_00089cc8:
            (**(code **)(puVar47 + 0x88b70))(cs_00->parent->ssh,cs_00->id,bVar31,puVar38,puVar23,0);
            if ((bVar31 == 0x61) && (3 < (int)puVar23)) {
              ppsStack_88 = *(Socket *)(cs_00->recvbuf + 5);
              psVar24 = (share_channel *)
                        find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);
              if (psVar24 != (share_channel *)0x0) {
                if (psVar24->state == 2) {
                  (**(code **)(puVar47 + 0x88b74))(cs_00->parent->ssh,psVar24->upstream_id);
                  share_remove_channel(cs_00,psVar24);
                  cs_00->recvlen = 0;
                }
                else {
                  psVar24->state = 1;
                  cs_00->recvlen = 0;
                }
                goto LAB_000893ac;
              }
            }
          }
          else {
            if (bVar31 == 0x5c) {
              if (3 < (int)puVar23) {
                psVar45 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);
                unaff_s6 = (ssh_sharing_connstate *)&psStack_90;
                psStack_90 = psVar45;
                e = find234(cs_00->halfchannels,unaff_s6,(cmpfn234)0x0);
                if (e == (void *)0x0) {
                  psStack_8c = psVar45;
                  xc_00 = (share_xchannel *)
                          find234(cs_00->xchannels_by_server,unaff_s6,(cmpfn234)0x0);
                  if (xc_00 == (share_xchannel *)0x0) {
                    pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))
                                                (*(int *)(puVar47 + 0x8839c) + 0x4680,psVar45);
                    goto LAB_00089674;
                  }
                  share_xchannel_failure(cs_00,xc_00);
                  cs_00->recvlen = 0;
                }
                else {
                  psVar18 = cs_00->parent;
                  uVar35 = 0x5c;
LAB_000895b4:
                  (**(code **)(puVar47 + 0x88b70))(psVar18->ssh,cs_00->id,uVar35,puVar38,puVar23,0);
                  del234(cs_00->halfchannels,e);
                  (**(code **)(puVar47 + 0x88394))(e);
                  cs_00->recvlen = 0;
                }
                goto LAB_000893ac;
              }
              pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))
                                          (*(int *)(puVar47 + 0x8839c) + 0x4658);
              goto LAB_00089674;
            }
            if (0x5b < bVar31) {
              if (100 < bVar31) goto LAB_0008965c;
              goto LAB_00089714;
            }
            if ((int)puVar23 < 0x10) {
              pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))
                                          (*(int *)(puVar47 + 0x8839c) + 0x45ac);
              goto LAB_00089674;
            }
            uVar36 = (uint)(cs_00->recvbuf + 5) & 3;
            upstream_id = *(uint *)(cs_00->recvbuf + 9);
            uVar32 = (uint)(cs_00->recvbuf + 8) & 3;
            psVar45 = (ssh_sharing_connstate *)
                      ((*(int *)(cs_00->recvbuf + 5 + -uVar36) << uVar36 * 8 |
                       (uint)psVar45 & 0xffffffffU >> (4 - uVar36) * 8) & -1 << (uVar32 + 1) * 8 |
                      *(uint *)(cs_00->recvbuf + 8 + -uVar32) >> (3 - uVar32) * 8);
            psStack_90 = psVar45;
            e = find234(cs_00->halfchannels,&psStack_90,(cmpfn234)0x0);
            if (e == (void *)0x0) {
              psStack_8c = psVar45;
              unaff_s6 = (ssh_sharing_connstate *)
                         find234(cs_00->xchannels_by_server,&psStack_90,(cmpfn234)0x0);
              if (unaff_s6 == (ssh_sharing_connstate *)0x0) goto LAB_0008a14c;
              server_id = unaff_s6->fn;
            }
            else {
              unaff_s6 = (ssh_sharing_connstate *)0x0;
              server_id = (plug_function_table *)
                          (**(code **)(puVar47 + 0x88b8c))(cs_00->parent->ssh,cs_00);
            }
            cs_00->recvbuf[0xc] = (uchar)server_id;
            cs_00->recvbuf[9] = (uchar)((uint)server_id >> 0x18);
            cs_00->recvbuf[10] = (uchar)((uint)server_id >> 0x10);
            cs_00->recvbuf[0xb] = (uchar)((uint)server_id >> 8);
            uVar36 = (uint)(cs_00->recvbuf + 0x11) & 3;
            uVar32 = (uint)(cs_00->recvbuf + 0x14) & 3;
            psVar24 = share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,
                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)server_id
                                        ,(int)psVar45,0,
                                        (ssh_sharing_connstate *)
                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar36) << uVar36 * 8 |
                                         in_t3 & 0xffffffffU >> (4 - uVar36) * 8) &
                                         -1 << (uVar32 + 1) * 8 |
                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar32) >>
                                        (3 - uVar32) * 8));
            if (e != (void *)0x0) {
              psVar18 = cs_00->parent;
              uVar35 = 0x5b;
              goto LAB_000895b4;
            }
            if (unaff_s6 != (ssh_sharing_connstate *)0x0) {
              uVar36 = *(uint *)(cs_00->recvbuf + 0xd);
              if (uVar36 < 0x100) {
                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))
                                            (*(int *)(puVar47 + 0x8839c) + 0x4614,uVar36);
                goto LAB_00089674;
              }
              share_xchannel_confirmation(cs_00,(share_xchannel *)unaff_s6,psVar24,uVar36);
              share_remove_xchannel
                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,
                         (share_xchannel *)&cs_00->xchannels_by_server,unaff_s6);
              cs_00->recvlen = 0;
              goto LAB_000893ac;
            }
          }
LAB_000893a4:
          cs_00->recvlen = 0;
          goto LAB_000893ac;
        }
        iVar28 = *(int *)(puVar47 + 0x8839c);
        if (3 < (int)puVar23) {
          iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);
          if (((iVar28 == 0) || ((int)psStack_90 < 0)) ||
             (psVar45 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90),
             (int)&unaff_s6[-1].xchannels_by_server <= (int)psStack_90)) {
            iVar28 = *(int *)(puVar47 + 0x8839c);
            goto LAB_00089d50;
          }
          pppVar14 = &psStack_90->fn;
          pppVar15 = &psStack_90->fn;
          psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)((int)&psStack_90->fn + 2));
          unaff_s6 = (ssh_sharing_connstate *)
                     ((uint)*(byte *)&psVar45->fn << 0x18 |
                      (uint)puVar38[(int)((int)pppVar14 + 1)] << 0x10 |
                      (uint)puVar38[(int)((int)pppVar15 + 3)] | (uint)*(byte *)&psStack_b0->fn << 8)
          ;
          uVar36 = (**(code **)(puVar47 + 0x88b8c))(cs_00->parent->ssh,cs_00);
          share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,
                            (uint)&cs_00->channels_by_server,(uint)unaff_s6,uVar36,0,3,
                            (ssh_sharing_connstate *)
                            ((uint)*(byte *)&psVar45->sock << 0x18 |
                             (uint)*(uchar *)((int)&psVar45->sock + 1) << 0x10 |
                             (uint)*(uchar *)((int)&psVar45->sock + 3) |
                            (uint)*(uchar *)((int)&psVar45->sock + 2) << 8));
          *(char *)&psVar45->fn = (char)(uVar36 >> 0x18);
          puVar38[(int)((int)pppVar14 + 1)] = (byte)(uVar36 >> 0x10);
          *(char *)&psStack_b0->fn = (char)(uVar36 >> 8);
          puVar38[(int)((int)pppVar15 + 3)] = (byte)uVar36;
          (**(code **)(puVar47 + 0x88b70))(cs_00->parent->ssh,cs_00->id,0x5a,puVar38,puVar23,0);
          cs_00->recvlen = 0;
          goto LAB_000893ac;
        }
LAB_00089d50:
        pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))(iVar28 + 0x458c);
LAB_00089674:
        while (pcVar17 == (char *)0x0) {
          (**(code **)(puVar47 + 0x88ff4))
                    (*(int *)(puVar47 + 0x8839c) + 0x4768,*(int *)(puVar47 + 0x8839c) + 0x43dc,0x6e6
                     ,*(int *)(puVar47 + 0x8839c) + 0x4870);
LAB_0008a14c:
          pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))
                                      (*(int *)(puVar47 + 0x8839c) + 0x45d8,psVar45);
        }
        share_disconnect(cs_00,pcVar17);
        (**(code **)(puVar47 + 0x88394))(pcVar17);
        cs_00->recvlen = 0;
        goto LAB_000893ac;
      }
      pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))
                                  (*(int *)(puVar47 + 0x8839c) + 0x4544,iVar28);
LAB_000890b4:
      share_disconnect(cs_00,pcVar17);
      (**(code **)(puVar47 + 0x88394))(pcVar17);
      unaff_s5 = pbVar33;
LAB_000890e0:
      cs_00->crLine = 0;
    } while( true );
  }
  uVar36 = cs_00->recvlen;
  bVar31 = *pbVar33;
  pbVar40 = pbVar16 + -1;
  pbVar42 = pbVar33 + 1;
  if (bVar31 == 10) {
LAB_0008942c:
    pbVar33 = pbVar42;
    if (0x2d < uVar36) {
      psVar45 = (ssh_sharing_connstate *)cs_00->recvbuf;
      iVar28 = (**(code **)(puVar47 + 0x894d4))(psVar45,*(int *)(puVar47 + 0x8839c) + 0x4890,0x2e);
      if (iVar28 == 0) {
        if ((0 < (int)uVar36) && (cs_00->recvbuf[uVar36 - 1] == '\r')) {
          cs_00->recvlen = uVar36 - 1;
          uVar36 = uVar36 - 1;
        }
        (**(code **)(puVar47 + 0x88b68))
                  (cs_00->parent->ssh,cs_00->id,*(int *)(puVar47 + 0x8839c) + 0x4524,uVar36,psVar45)
        ;
        cs_00->got_verstring = 1;
        cs_00->recvlen = 0;
        goto LAB_000893ac;
      }
    }
    pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))(*(int *)(puVar47 + 0x8839c) + 0x44f4);
    goto LAB_000890b4;
  }
  pbVar41 = pbVar16;
  if (uVar36 < 0x4010) {
    uVar36 = uVar36 + 1;
    pbVar34 = pbVar33 + (int)pbVar40;
    pbVar40 = pbVar16;
    unaff_s5 = pbVar42;
    do {
      cs_00->recvlen = uVar36;
      cs_00->recvbuf[uVar36 - 1] = bVar31;
      if (pbVar33 + (int)pbVar16 == unaff_s5) goto LAB_00089094;
      pbVar40 = pbVar34 + -(int)unaff_s5;
      pbVar42 = unaff_s5 + 1;
      bVar31 = *unaff_s5;
      if (bVar31 == 10) goto LAB_0008942c;
      uVar36 = uVar36 + 1;
      pbVar41 = pbVar40;
      unaff_s5 = pbVar42;
    } while (uVar36 != 0x4011);
  }
  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))(*(int *)(puVar47 + 0x8839c) + 0x44d4);
  pbVar40 = pbVar41;
  pbVar33 = pbVar42;
  goto LAB_000890b4;
}



void share_xchannel_failure(int param_1,int param_2)

{
  byte bVar1;
  byte bVar2;
  byte bVar3;
  byte bVar4;
  char cVar5;
  char cVar6;
  undefined1 uVar7;
  undefined1 uVar8;
  undefined1 uVar9;
  bool bVar10;
  int iVar11;
  undefined4 uVar12;
  byte ****ppppbVar13;
  int iVar14;
  byte ****ppppbVar15;
  undefined1 *puVar16;
  undefined1 *puVar17;
  byte *pbVar18;
  undefined4 *puVar19;
  undefined4 *puVar20;
  int iVar21;
  int iVar22;
  byte bVar26;
  int iVar23;
  undefined4 uVar24;
  undefined4 *puVar25;
  uint uVar27;
  byte *pbVar28;
  byte *pbVar29;
  uint in_t3;
  byte *pbVar30;
  uint uVar31;
  byte *pbVar32;
  byte *****pppppbVar33;
  byte *pbVar34;
  byte *unaff_s5;
  byte *****unaff_s6;
  byte *****pppppbVar35;
  byte *****pppppbVar36;
  undefined *puVar37;
  code *pcVar38;
  int *piVar39;
  byte ****local_b0;
  byte ****local_90;
  byte ****local_8c;
  undefined4 local_88;
  byte ***local_68;
  int local_64;
  int local_60;
  int local_5c;
  undefined *local_58;
  undefined4 local_18;
  int local_14;
  
  pppppbVar36 = (byte *****)PTR___stack_chk_guard_00112630;
  local_18 = *(undefined4 *)(param_2 + 4);
  pbVar28 = &DAT_00000061;
  pbVar32 = (byte *)&local_18;
  local_14 = *(int *)PTR___stack_chk_guard_00112630;
  (*(code *)PTR_ssh_send_packet_from_downstream_00111acc)
            (*(undefined4 *)(*(int *)(param_1 + 0xc) + 0x14),*(undefined4 *)(param_1 + 4));
  *(undefined4 *)(param_2 + 8) = 0;
  iVar22 = param_1;
  share_dead_xchannel_respond(param_1,param_2);
  if ((byte ****)local_14 == *pppppbVar36) {
    return;
  }
  puVar37 = PTR___stack_chk_fail_001122c8;
  (*(code *)PTR___stack_chk_fail_001122c8)();
  iVar11 = *(int *)(iVar22 + 0x10);
  piVar39 = *(int **)(puVar37 + 0x896d4);
  local_58 = (undefined *)pppppbVar36;
  local_64 = *piVar39;
  pbVar34 = pbVar32;
  local_60 = param_2;
  local_5c = param_1;
  if (iVar11 != 0x709) {
    if (0x709 < iVar11) {
      if (iVar11 == 0x72e) goto LAB_000893ac;
      if (iVar11 != 0x73b) goto LAB_000890e0;
      goto LAB_00088fd4;
    }
    if (iVar11 != 0) goto LAB_000890e0;
    *(undefined4 *)(iVar22 + 0x4030) = 0;
  }
  if (pbVar32 == (byte *)0x0) {
LAB_00089094:
    *(undefined4 *)(iVar22 + 0x10) = 0x709;
LAB_000890e4:
    do {
      if (local_64 == *piVar39) {
        return;
      }
      (**(code **)(puVar37 + 0x8936c))();
      pbVar28 = unaff_s5;
LAB_00089df8:
      local_68 = *local_b0;
      FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);
      (**(code **)(puVar37 + 0x88394))(unaff_s6);
      *(undefined4 *)(iVar22 + 0x4030) = 0;
LAB_000893ac:
      pbVar32 = pbVar28 + (int)pbVar34;
      unaff_s5 = pbVar28;
      do {
        pbVar34 = pbVar32 + (-1 - (int)unaff_s5);
        if (unaff_s5 == pbVar32) {
          *(undefined4 *)(iVar22 + 0x10) = 0x72e;
          goto LAB_000890e4;
        }
        iVar11 = *(int *)(iVar22 + 0x4030);
        pbVar28 = unaff_s5 + 1;
        iVar23 = iVar11 + 1;
        bVar26 = *unaff_s5;
        in_t3 = (uint)bVar26;
        *(int *)(iVar22 + 0x4030) = iVar23;
        *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;
        unaff_s5 = pbVar28;
      } while (iVar23 < 4);
      iVar11 = (**(code **)(puVar37 + 0x884fc))(*(int *)(iVar22 + 0x20) + 4);
      *(int *)(iVar22 + 0x1c) = iVar11;
      if (iVar11 - 5U < 0x400c) {
        unaff_s6 = *(byte ******)(iVar22 + 0x4030);
        while (unaff_s5 = pbVar28, (int)unaff_s6 < iVar11) {
LAB_00088fd4:
          if (pbVar34 == (byte *)0x0) {
            *(undefined4 *)(iVar22 + 0x10) = 0x73b;
            pbVar34 = (byte *)0x0;
            goto LAB_000890e4;
          }
          iVar11 = *(int *)(iVar22 + 0x4030);
          pbVar34 = pbVar34 + -1;
          bVar26 = *pbVar28;
          pbVar28 = pbVar28 + 1;
          unaff_s6 = (byte *****)(iVar11 + 1);
          *(byte ******)(iVar22 + 0x4030) = unaff_s6;
          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;
          iVar11 = *(int *)(iVar22 + 0x1c);
        }
        bVar26 = *(byte *)(iVar22 + 0x24);
        iVar11 = iVar22 + 0x25;
        pbVar32 = (byte *)((int)unaff_s6 + -5);
        if (bVar26 != 0x5a) {
          if (bVar26 < 0x5b) {
            if (bVar26 != 2) {
              if (2 < bVar26) {
                if (bVar26 == 4) goto LAB_00089714;
                if (bVar26 != 0x50) goto LAB_0008965c;
                iVar23 = *(int *)(puVar37 + 0x8839c);
                pppppbVar33 = pppppbVar36;
                if ((int)pbVar32 < 4) goto LAB_000896fc;
                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);
                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);
                ppppbVar13 = local_90;
                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;
                iVar23 = (**(code **)(puVar37 + 0x8953c))
                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);
                if (iVar23 != 0) {
                  iVar23 = (**(code **)(puVar37 + 0x8953c))
                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);
                  pcVar38 = *(code **)(puVar37 + 0x88394);
                  pppppbVar36 = pppppbVar33;
                  if (iVar23 == 0) {
                    (*pcVar38)(ppppbVar13);
                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);
                    pppppbVar35 = (byte *****)local_90;
                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&
                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {
                      local_b0 = (byte ****)((int)local_90 + iVar11);
                      iVar21 = (int)pbVar32 - (int)pbVar30;
                      bVar26 = *(byte *)local_b0;
                      if ((iVar21 < 4) ||
                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))
                      {
                        iVar23 = *(int *)(puVar37 + 0x8839c);
                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {
                          if (iVar21 >= 4) goto LAB_000892a4;
LAB_00089eec:
                          uVar12 = 0x5a7;
                          goto LAB_00089ef0;
                        }
                      }
                      else {
                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);
                        iVar23 = *(int *)(puVar37 + 0x8839c);
                        if (-1 < (int)pppppbVar35) {
                          pcVar38 = *(code **)(puVar37 + 0x8844c);
                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;
LAB_000892a4:
                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);
                          pppppbVar36 = (byte *****)local_90;
                          if ((iVar23 == 0) ||
                             (pppppbVar33 = (byte *****)local_90,
                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;
                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);
                          bVar1 = *pbVar30;
                          bVar2 = pbVar30[1];
                          bVar3 = pbVar30[3];
                          bVar4 = pbVar30[2];
                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);
                          local_8c = (byte ****)
                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |
                                     (uint)bVar4 << 8);
                          unaff_s6 = (byte *****)
                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);
                          (**(code **)(puVar37 + 0x88394))(local_90);
                          if (unaff_s6 == (byte *****)0x0) {
                            pcVar38 = *(code **)(puVar37 + 0x88394);
                            if (bVar26 != 0) {
                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0
                                           ,0xc);
                              goto LAB_00089394;
                            }
                          }
                          else {
                            bVar26 = *(byte *)local_b0;
                            *(byte *)local_b0 = 1;
                            if (bVar26 == 0) {
                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;
                            }
                            else {
                              iVar23 = 0;
                            }
                            (**(code **)(puVar37 + 0x88b70))
                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),
                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);
                            (**(code **)(puVar37 + 0x88b88))
                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);
LAB_00089394:
                            pcVar38 = *(code **)(puVar37 + 0x88394);
                          }
                          (*pcVar38)(pppppbVar36);
                          goto LAB_000893a4;
                        }
                      }
                      goto LAB_000896fc;
                    }
                  }
                  else {
LAB_00089f10:
                    (*pcVar38)();
                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);
                    pppppbVar33 = pppppbVar36;
                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {
                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;
                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);
                      *(undefined4 *)(iVar22 + 0x4030) = 0;
                      goto LAB_000893ac;
                    }
                  }
LAB_000896f8:
                  iVar23 = *(int *)(puVar37 + 0x8839c);
                  goto LAB_000896fc;
                }
                (**(code **)(puVar37 + 0x88394))(ppppbVar13);
                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);
                pppppbVar36 = (byte *****)local_90;
                if (((iVar23 == 0) || ((int)local_90 < 0)) ||
                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))
                goto LAB_000896f8;
                pbVar18 = (byte *)((int)local_90 + iVar11);
                iVar21 = (int)pbVar32 - (int)pbVar30;
                local_b0 = (byte ****)(uint)*pbVar18;
                if ((iVar21 < 4) ||
                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {
                  iVar23 = *(int *)(puVar37 + 0x8839c);
                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {
                    if (iVar21 >= 4) goto LAB_0008a05c;
LAB_0008a304:
                    uVar12 = 0x55e;
LAB_00089ef0:
                    pcVar38 = *(code **)(puVar37 + 0x88ff4);
                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,
                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,
                               *(int *)(puVar37 + 0x8839c) + 0x4870);
                    pppppbVar36 = pppppbVar33;
                    goto LAB_00089f10;
                  }
LAB_000896fc:
                  pcVar38 = *(code **)(puVar37 + 0x8844c);
                }
                else {
                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);
                  iVar23 = *(int *)(puVar37 + 0x8839c);
                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;
                  pcVar38 = *(code **)(puVar37 + 0x8844c);
                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {
LAB_0008a05c:
                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);
                    ppppbVar13 = local_90;
                    if ((iVar23 == 0) ||
                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))
                    goto LAB_0008a304;
                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);
                    pppppbVar36 = (byte *****)
                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |
                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);
                    iVar23 = (**(code **)(puVar37 + 0x88ba0))
                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,
                                        pppppbVar36,iVar22);
                    if (iVar23 == 0) {
                      if ((byte *****)local_b0 != (byte *****)0x0) {
                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);
                      }
                    }
                    else {
                      bVar26 = *pbVar18;
                      *pbVar18 = 1;
                      if (bVar26 == 0) {
                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;
                      }
                      else {
                        iVar23 = 0;
                      }
                      (**(code **)(puVar37 + 0x88b70))
                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),
                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);
                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);
                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);
                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);
                      *puVar19 = uVar12;
                      puVar19[1] = pppppbVar36;
                      puVar19[2] = 0;
                      puVar20 = (undefined4 *)add234(uVar24,puVar19);
                      if (puVar19 == puVar20) {
                        (**(code **)(puVar37 + 0x88b88))
                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);
                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);
                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);
                        *puVar20 = 0;
                        if (puVar25 == (undefined4 *)0x0) {
                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;
                        }
                        else {
                          *puVar25 = puVar20;
                        }
                        puVar20[3] = puVar19;
                        puVar20[1] = 0;
                        puVar20[2] = local_b0;
                      }
                      else {
                        (**(code **)(puVar37 + 0x88394))(puVar19);
                        (**(code **)(puVar37 + 0x88b88))
                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);
                      }
                    }
                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);
                    *(undefined4 *)(iVar22 + 0x4030) = 0;
                    unaff_s6 = (byte *****)ppppbVar13;
                    goto LAB_000893ac;
                  }
                }
LAB_00089700:
                iVar11 = (*pcVar38)(iVar23 + 0x455c);
                pppppbVar36 = pppppbVar33;
                goto LAB_00089674;
              }
              if (bVar26 != 1) {
LAB_0008965c:
                iVar11 = (**(code **)(puVar37 + 0x8844c))
                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);
                goto LAB_00089674;
              }
              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));
              *(undefined4 *)(iVar22 + 8) = 0;
              FUN_000882d0(iVar22);
              *(undefined4 *)(iVar22 + 0x4030) = 0;
              goto LAB_000893ac;
            }
LAB_00089714:
            if ((bVar26 == 0x62) &&
               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {
              pppppbVar36 = pppppbVar36 + 0x1e70;
              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);
              ppppbVar13 = local_90;
              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {
                local_b0 = local_90;
                iVar23 = (**(code **)(puVar37 + 0x8953c))
                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);
                if ((iVar23 == 0) &&
                   (iVar23 = (**(code **)(puVar37 + 0x888c4))
                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0
                   )) {
                  uVar12 = *(undefined4 *)(iVar22 + 0x25);
                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);
                  local_88 = uVar12;
                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);
                  if (puVar19 == (undefined4 *)0x0) {
                    pcVar38 = *(code **)(puVar37 + 0x8844c);
                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;
LAB_0008a3a0:
                    uVar12 = (*pcVar38)(iVar11,uVar12);
                    FUN_000887e0(iVar22,uVar12);
                    (**(code **)(puVar37 + 0x88394))(uVar12);
                    *(undefined4 *)(iVar22 + 0x4030) = 0;
                  }
                  else {
                    local_68 = (byte ***)*puVar19;
                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);
                    *(undefined4 *)(iVar22 + 0x4030) = 0;
                  }
                  goto LAB_000893ac;
                }
                iVar23 = *(int *)(puVar37 + 0x8839c);
                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);
                if (iVar21 != 0) {
                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);
                  local_b0 = ppppbVar13;
                  goto LAB_00089cc8;
                }
                uVar12 = *(undefined4 *)(iVar22 + 0x25);
                (**(code **)(puVar37 + 0x88394))(ppppbVar13);
                local_88 = uVar12;
                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);
                if ((byte *****)local_b0 == (byte *****)0x0) {
                  pcVar38 = *(code **)(puVar37 + 0x8844c);
                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;
                  goto LAB_0008a3a0;
                }
                if ((int)pbVar32 < 0x11) {
                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);
                  goto LAB_00089674;
                }
                cVar5 = *(char *)(iVar22 + 0x34);
                pbVar30 = (byte *)((int)unaff_s6 + -0x16);
                cVar6 = *(char *)(iVar22 + 0x35);
                if ((int)pbVar30 < 4) {
                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);
                  (**(code **)(puVar37 + 0x88394))(0);
LAB_0008a36c:
                  pppppbVar33 = (byte *****)0xffffffff;
                }
                else {
                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);
                  pppppbVar33 = (byte *****)local_90;
                  if (iVar21 == 0) {
                    pppppbVar33 = (byte *****)0x0;
                  }
                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);
                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);
                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);
                  pppppbVar33 = (byte *****)local_90;
                  if (iVar21 == 0) goto LAB_0008a36c;
                }
                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);
                iVar21 = (int)pbVar32 - (int)pbVar30;
                unaff_s6 = (byte *****)0x0;
                if (iVar21 < 4) {
LAB_00089ec4:
                  pppppbVar33 = (byte *****)0xffffffff;
                }
                else {
                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);
                  unaff_s6 = (byte *****)local_90;
                  if (iVar14 == 0) {
                    unaff_s6 = (byte *****)0x0;
                  }
                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);
                  pppppbVar33 = (byte *****)local_90;
                  if (iVar21 == 0) goto LAB_00089ec4;
                }
                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {
                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);
                  (**(code **)(puVar37 + 0x88394))(unaff_s6);
                  goto LAB_00089674;
                }
                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;
                if (-1 < (int)ppppbVar13) {
                  pcVar38 = *(code **)(puVar37 + 0x88b94);
                  bVar26 = *pbVar32;
                  bVar10 = cVar6 != '\0';
                  bVar1 = pbVar32[1];
                  bVar2 = pbVar32[3];
                  bVar3 = pbVar32[2];
                  ((byte *****)local_b0)[6] = ppppbVar13;
                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);
                  pcVar38 = *(code **)(puVar37 + 0x88394);
                  ((byte *****)local_b0)[7] = ppppbVar15;
                  (*pcVar38)(unaff_s6);
                  ppppbVar13 = (byte ****)
                               (**(code **)(puVar37 + 0x88b98))
                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,
                                          iVar22,local_b0);
                  ((byte *****)local_b0)[5] = ppppbVar13;
                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;
                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);
                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);
                  puVar16 = (undefined1 *)
                            (**(code **)(puVar37 + 0x88390))
                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);
                  puVar16[4] = 0;
                  puVar16[5] = 0;
                  uVar27 = *(uint *)(iVar23 + -0x36a0);
                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);
                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);
                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);
                  puVar16[3] = (char)uVar12;
                  *puVar16 = (char)((uint)uVar12 >> 0x18);
                  puVar16[1] = (char)((uint)uVar12 >> 0x10);
                  puVar16[2] = (char)((uint)uVar12 >> 8);
                  puVar16[7] = 7;
                  puVar16[6] = 0;
                  puVar17 = puVar16 + 8;
                  uVar31 = (uint)puVar17 & 3;
                  *(uint *)(puVar17 + -uVar31) =
                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;
                  puVar17 = puVar16 + 0xb;
                  uVar31 = (uint)puVar17 & 3;
                  *(uint *)(puVar17 + -uVar31) =
                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |
                       uVar27 << (3 - uVar31) * 8;
                  puVar16[0xc] = uVar7;
                  puVar16[0xd] = uVar8;
                  puVar16[0xe] = uVar9;
                  puVar16[0x10] = bVar10;
                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);
                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);
                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);
                  puVar16[0x14] = (char)pppppbVar36;
                  pcVar38 = *(code **)(puVar37 + 0x89610);
                  puVar16[0xf] = cVar5 != '\0';
                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);
                  puVar17 = puVar16 + (int)pppppbVar36;
                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);
                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);
                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);
                  puVar17[0x18] = (char)unaff_s6;
                  (**(code **)(puVar37 + 0x89610))
                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],
                             unaff_s6);
                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);
                  puVar17[0x1c] = bVar2;
                  puVar17[0x19] = bVar26;
                  puVar17[0x1a] = bVar1;
                  puVar17[0x1b] = bVar3;
                  (**(code **)(puVar37 + 0x88b70))
                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),
                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,
                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);
                  (**(code **)(puVar37 + 0x88394))(puVar16);
                  *(undefined4 *)(iVar22 + 0x4030) = 0;
                  goto LAB_000893ac;
                }
                goto LAB_00089df8;
              }
            }
LAB_00089cc8:
            (**(code **)(puVar37 + 0x88b70))
                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),
                       bVar26,iVar11,pbVar32,0);
            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {
              local_88 = *(undefined4 *)(iVar22 + 0x25);
              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);
              if (iVar11 != 0) {
                if (*(int *)(iVar11 + 0x10) == 2) {
                  (**(code **)(puVar37 + 0x88b74))
                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),
                             *(undefined4 *)(iVar11 + 4));
                  FUN_00087608(iVar22,iVar11);
                  *(undefined4 *)(iVar22 + 0x4030) = 0;
                }
                else {
                  *(undefined4 *)(iVar11 + 0x10) = 1;
                  *(undefined4 *)(iVar22 + 0x4030) = 0;
                }
                goto LAB_000893ac;
              }
            }
          }
          else {
            if (bVar26 == 0x5c) {
              if (3 < (int)pbVar32) {
                pppppbVar36 = *(byte ******)(iVar22 + 0x25);
                unaff_s6 = &local_90;
                local_90 = (byte ****)pppppbVar36;
                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);
                if (iVar23 == 0) {
                  local_8c = (byte ****)pppppbVar36;
                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);
                  if (iVar11 == 0) {
                    iVar11 = (**(code **)(puVar37 + 0x8844c))
                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);
                    goto LAB_00089674;
                  }
                  share_xchannel_failure(iVar22,iVar11);
                  *(undefined4 *)(iVar22 + 0x4030) = 0;
                }
                else {
                  iVar21 = *(int *)(iVar22 + 0xc);
                  uVar12 = 0x5c;
LAB_000895b4:
                  (**(code **)(puVar37 + 0x88b70))
                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,
                             iVar11,pbVar32,0);
                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);
                  (**(code **)(puVar37 + 0x88394))(iVar23);
                  *(undefined4 *)(iVar22 + 0x4030) = 0;
                }
                goto LAB_000893ac;
              }
              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);
              goto LAB_00089674;
            }
            if (0x5b < bVar26) {
              if (100 < bVar26) goto LAB_0008965c;
              goto LAB_00089714;
            }
            if ((int)pbVar32 < 0x10) {
              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);
              goto LAB_00089674;
            }
            uVar31 = iVar22 + 0x25U & 3;
            uVar12 = *(undefined4 *)(iVar22 + 0x29);
            uVar27 = iVar22 + 0x28U & 3;
            pppppbVar36 = (byte *****)
                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |
                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &
                           -1 << (uVar27 + 1) * 8 |
                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);
            local_90 = (byte ****)pppppbVar36;
            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);
            if (iVar23 == 0) {
              local_8c = (byte ****)pppppbVar36;
              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);
              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;
              ppppbVar13 = *unaff_s6;
            }
            else {
              unaff_s6 = (byte *****)0x0;
              ppppbVar13 = (byte ****)
                           (**(code **)(puVar37 + 0x88b8c))
                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);
            }
            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;
            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);
            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);
            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);
            uVar31 = iVar22 + 0x31U & 3;
            uVar27 = iVar22 + 0x34U & 3;
            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,
                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |
                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8
                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);
            if (iVar23 != 0) {
              iVar21 = *(int *)(iVar22 + 0xc);
              uVar12 = 0x5b;
              goto LAB_000895b4;
            }
            if (unaff_s6 != (byte *****)0x0) {
              if (*(uint *)(iVar22 + 0x2d) < 0x100) {
                iVar11 = (**(code **)(puVar37 + 0x8844c))
                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));
                goto LAB_00089674;
              }
              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);
              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);
              *(undefined4 *)(iVar22 + 0x4030) = 0;
              goto LAB_000893ac;
            }
          }
LAB_000893a4:
          *(undefined4 *)(iVar22 + 0x4030) = 0;
          goto LAB_000893ac;
        }
        iVar23 = *(int *)(puVar37 + 0x8839c);
        if (3 < (int)pbVar32) {
          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);
          if (((iVar23 == 0) || ((int)local_90 < 0)) ||
             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),
             (int)(unaff_s6 + -4) <= (int)local_90)) {
            iVar23 = *(int *)(puVar37 + 0x8839c);
            goto LAB_00089d50;
          }
          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);
          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);
          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);
          unaff_s6 = (byte *****)
                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |
                     (uint)*(byte *)local_b0 << 8);
          uVar12 = (**(code **)(puVar37 + 0x88b8c))
                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);
          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,
                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |
                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |
                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |
                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);
          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);
          *pbVar18 = (byte)((uint)uVar12 >> 0x10);
          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);
          *pbVar30 = (byte)uVar12;
          (**(code **)(puVar37 + 0x88b70))
                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a
                     ,iVar11,pbVar32,0);
          *(undefined4 *)(iVar22 + 0x4030) = 0;
          goto LAB_000893ac;
        }
LAB_00089d50:
        iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);
LAB_00089674:
        while (iVar11 == 0) {
          (**(code **)(puVar37 + 0x88ff4))
                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6
                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);
LAB_0008a14c:
          iVar11 = (**(code **)(puVar37 + 0x8844c))
                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);
        }
        FUN_000887e0(iVar22,iVar11);
        (**(code **)(puVar37 + 0x88394))(iVar11);
        *(undefined4 *)(iVar22 + 0x4030) = 0;
        goto LAB_000893ac;
      }
      uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11);
LAB_000890b4:
      FUN_000887e0(iVar22,uVar12);
      (**(code **)(puVar37 + 0x88394))(uVar12);
      unaff_s5 = pbVar28;
LAB_000890e0:
      *(undefined4 *)(iVar22 + 0x10) = 0;
    } while( true );
  }
  uVar31 = *(uint *)(iVar22 + 0x4030);
  bVar26 = *pbVar28;
  pbVar34 = pbVar32 + -1;
  pbVar30 = pbVar28 + 1;
  if (bVar26 == 10) {
LAB_0008942c:
    pbVar28 = pbVar30;
    if (0x2d < uVar31) {
      pppppbVar36 = (byte *****)(iVar22 + 0x20);
      iVar11 = (**(code **)(puVar37 + 0x894d4))
                         (pppppbVar36,*(int *)(puVar37 + 0x8839c) + 0x4890,0x2e);
      if (iVar11 == 0) {
        if ((0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')) {
          *(uint *)(iVar22 + 0x4030) = uVar27;
          uVar31 = uVar27;
        }
        (**(code **)(puVar37 + 0x88b68))
                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),
                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36);
        *(undefined4 *)(iVar22 + 0x18) = 1;
        *(undefined4 *)(iVar22 + 0x4030) = 0;
        goto LAB_000893ac;
      }
    }
    uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44f4);
    goto LAB_000890b4;
  }
  pbVar18 = pbVar32;
  if (uVar31 < 0x4010) {
    uVar31 = uVar31 + 1;
    pbVar29 = pbVar28 + (int)pbVar34;
    pbVar34 = pbVar32;
    unaff_s5 = pbVar30;
    do {
      *(uint *)(iVar22 + 0x4030) = uVar31;
      *(byte *)(iVar22 + uVar31 + 0x1f) = bVar26;
      if (pbVar28 + (int)pbVar32 == unaff_s5) goto LAB_00089094;
      pbVar34 = pbVar29 + -(int)unaff_s5;
      pbVar30 = unaff_s5 + 1;
      bVar26 = *unaff_s5;
      if (bVar26 == 10) goto LAB_0008942c;
      uVar31 = uVar31 + 1;
      pbVar18 = pbVar34;
      unaff_s5 = pbVar30;
    } while (uVar31 != 0x4011);
  }
  uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44d4);
  pbVar34 = pbVar18;
  pbVar28 = pbVar30;
  goto LAB_000890b4;
}


lui gp,0x9
addiu gp,gp,0x410
addu gp,gp,t9
addiu sp,sp,-0x38
lw v0,0x4(a1)
lw t9,-0x77e4(gp)
li a2,0x61
addiu a3,sp,0x20
sw s2,0x30(sp)
sw v0,0x20(sp)
sw s1,0x2c(sp)
or s1,a0,zero
lw s2,-0x6c80(gp)
lw v0,-0x7fb8(gp)
lw a0,0xc(a0)
sw s0,0x28(sp)
or s0,a1,zero
addiu v0,v0,0x4458
sw gp,0x18(sp)
sw ra,0x34(sp)
lw v1,0x0(s2)
lw a1,0x4(s1)
lw a0,0x14(a0)
sw v0,0x14(sp)
li v0,0x4
sw v1,0x24(sp)
jalr t9
_sw v0,0x10(sp)
or a1,s0,zero
lw gp,0x18(sp)
or a0,s1,zero
lw t9,-0x77d0(gp)
bal 0x00088b40
_sw zero,0x8(s0)
lw v1,0x24(sp)
lw v0,0x0(s2)
bne v1,v0,0x00088f50
_lw gp,0x18(sp)
lw ra,0x34(sp)
lw s2,0x30(sp)
lw s1,0x2c(sp)
lw s0,0x28(sp)
jr ra
_addiu sp,sp,0x38
lw t9,-0x6fe8(gp)
jalr t9
_nop
lui gp,0x9
addiu gp,gp,0x354
addu gp,gp,t9
addiu sp,sp,-0xa8
lw v0,0x10(a0)
li v1,0x709
sw s8,0xa0(sp)
sw s3,0x8c(sp)
or s3,a0,zero
lw s8,-0x6c80(gp)
sw gp,0x20(sp)
sw s4,0x90(sp)
or s4,a3,zero
sw ra,0xa4(sp)
sw s7,0x9c(sp)
sw s6,0x98(sp)
sw s5,0x94(sp)
sw s2,0x88(sp)
sw s1,0x84(sp)
sw s0,0x80(sp)
lw a0,0x0(s8)
sw a0,0x7c(sp)
beq v0,v1,0x00089020
_slti v1,v0,0x70a
bne v1,zero,0x00089014
_li v1,0x72e
beq v0,v1,0x000893ac
_li v1,0x73b
bne v0,v1,0x000890e0
_nop
beq s4,zero,0x0008941c
_li v0,0x73b
lw v0,0x4030(s3)
addiu s4,s4,-0x1
lbu a1,0x0(a2)
addiu s5,a2,0x1
addu a0,s3,v0
addiu s6,v0,0x1
sw s6,0x4030(s3)
sb a1,0x20(a0)
lw v0,0x1c(s3)
slt v0,s6,v0
beq v0,zero,0x00089120
_or a2,s5,zero
b 0x00088fd4
_nop
bne v0,zero,0x000890e0
_nop
sw zero,0x4030(s3)
beq s4,zero,0x00089094
_li v0,0xa
lw s0,0x4030(s3)
lbu a0,0x0(a2)
addiu a3,s4,-0x1
addiu s5,a2,0x1
beq a0,v0,0x00089424
_or s1,s0,zero
sltiu v0,s0,0x4010
beq v0,zero,0x000890a0
_addu a1,a2,s4
addiu s0,s0,0x1
addu a2,a2,a3
li t3,0x4011
b 0x00089080
_li a3,0xa
subu s4,a2,s5
addiu s5,s5,0x1
lbu a0,-0x1(s5)
beq a0,a3,0x0008942c
_sltiu v0,s0,0x2e
addiu s0,s0,0x1
beq s0,t3,0x000890a0
_nop
addu v0,s3,s0
sw s0,0x4030(s3)
or s1,s0,zero
bne a1,s5,0x00089060
_sb a0,0x1f(v0)
li v0,0x709
b 0x000890e4
_sw v0,0x10(s3)
lw a0,-0x7fb8(gp)
lw t9,-0x7f08(gp)
jalr t9
_addiu a0,a0,0x44d4
lw gp,0x20(sp)
lw t9,-0x77d8(gp)
or a0,s3,zero
or a1,v0,zero
addiu t9,t9,-0x7820
bal 0x000887e0
_or s0,v0,zero
lw gp,0x20(sp)
lw t9,-0x7fc0(gp)
jalr t9
_or a0,s0,zero
lw gp,0x20(sp)
sw zero,0x10(s3)
lw v1,0x7c(sp)
lw v0,0x0(s8)
bne v1,v0,0x00089dec
_lw ra,0xa4(sp)
lw s8,0xa0(sp)
lw s7,0x9c(sp)
lw s6,0x98(sp)
lw s5,0x94(sp)
lw s4,0x90(sp)
lw s3,0x8c(sp)
lw s2,0x88(sp)
lw s1,0x84(sp)
lw s0,0x80(sp)
jr ra
_addiu sp,sp,0xa8
lbu s7,0x24(s3)
li v0,0x5a
addiu s1,s3,0x25
beq s7,v0,0x00089b50
_addiu s0,s6,-0x5
sltiu v0,s7,0x5b
beq v0,zero,0x000894e8
_li v0,0x2
beq s7,v0,0x00089710
_sltiu v0,s7,0x3
bne v0,zero,0x00089604
_li v0,0x4
beq s7,v0,0x00089710
_li v0,0x50
bne s7,v0,0x0008965c
_slti v0,s0,0x4
bne v0,zero,0x000896fc
_lw a0,-0x7fb8(gp)
lw s2,-0x7888(gp)
addiu v0,sp,0x50
or a3,zero,zero
sw v0,0x2c(sp)
or a2,v0,zero
addiu s2,s2,0x79c0
or a1,s0,zero
or t9,s2,zero
bal 0x000879c0
_or a0,s1,zero
beq v0,zero,0x000896f8
_lw gp,0x20(sp)
lw s7,0x50(sp)
beq s7,zero,0x000896f8
_lw a1,-0x7fb8(gp)
or a0,s7,zero
lw t9,-0x6e18(gp)
jalr t9
_addiu a1,a1,-0x30e8
beq v0,zero,0x00089f98
_lw gp,0x20(sp)
lw a1,-0x7fb8(gp)
or a0,s7,zero
lw t9,-0x6e18(gp)
jalr t9
_addiu a1,a1,-0x317c
or a0,s7,zero
lw gp,0x20(sp)
bne v0,zero,0x00089f10
_lw t9,-0x7fc0(gp)
jalr t9
_nop
or a2,zero,zero
lw a3,0x2c(sp)
or a1,s0,zero
or t9,s2,zero
bal 0x000879c0
_or a0,s1,zero
beq v0,zero,0x000896f8
_lw gp,0x20(sp)
lw s7,0x50(sp)
bltz s7,0x000896f8
_nop
slt v0,s7,s0
beq v0,zero,0x000896f8
_addiu t3,s7,0x1
addu v0,s1,s7
sw v0,0x30(sp)
subu v1,s0,t3
sw t3,0x44(sp)
lbu v0,0x0(v0)
addu t4,s1,t3
slti t5,v1,0x4
bne t5,zero,0x00089ed4
_sw v0,0x34(sp)
lw a3,0x2c(sp)
or a2,zero,zero
sw t5,0x40(sp)
or a1,v1,zero
sw v1,0x3c(sp)
or a0,t4,zero
or t9,s2,zero
bal 0x000879c0
_sw t4,0x38(sp)
lw gp,0x20(sp)
lw t4,0x38(sp)
lw v1,0x3c(sp)
beq v0,zero,0x00089ed4
_lw t5,0x40(sp)
lw s7,0x50(sp)
lw t3,0x44(sp)
addu s7,t3,s7
bltz s7,0x000896fc
_lw a0,-0x7fb8(gp)
addiu v0,s6,-0x8
slt v0,s7,v0
beq v0,zero,0x00089700
_lw t9,-0x7f08(gp)
lw a2,0x2c(sp)
or a3,zero,zero
or a1,v1,zero
or t9,s2,zero
bal 0x000879c0
_or a0,t4,zero
beq v0,zero,0x00089eec
_lw gp,0x20(sp)
lw s2,0x50(sp)
beq s2,zero,0x00089eec
_lw t9,-0x7f94(gp)
addu s7,s1,s7
or a0,s2,zero
lbu s6,0x0(s7)
lbu a1,0x1(s7)
lbu a2,0x3(s7)
lbu v0,0x2(s7)
sll s6,s6,0x18
sll a1,a1,0x10
or s6,s6,a2
sll v0,v0,0x8
or s6,s6,a1
jalr t9
_or s6,s6,v0
lw gp,0x20(sp)
or a2,zero,zero
lw a0,0x4048(s3)
lw a1,0x2c(sp)
sw s6,0x54(sp)
lw t9,-0x7e74(gp)
bal 0x0009fed4
_sw v0,0x50(sp)
lw gp,0x20(sp)
or s6,v0,zero
lw t9,-0x7fc0(gp)
jalr t9
_lw a0,0x50(sp)
beq s6,zero,0x00089e58
_lw gp,0x20(sp)
lw v1,0x30(sp)
li a0,0x1
lbu v0,0x0(v1)
sb a0,0x0(v1)
lw a0,0xc(s3)
lw a1,0x4(s3)
beq v0,zero,0x00089e4c
_lw a0,0x14(a0)
or v0,zero,zero
lw t9,-0x77e4(gp)
li a2,0x50
sw v0,0x14(sp)
or a3,s1,zero
jalr t9
_sw s0,0x10(sp)
or a1,s3,zero
lw gp,0x20(sp)
lw v0,0xc(s3)
lw t9,-0x77cc(gp)
jalr t9
_lw a0,0x14(v0)
lw gp,0x20(sp)
lw t9,-0x7fc0(gp)
jalr t9
_or a0,s2,zero
lw gp,0x20(sp)
sw zero,0x4030(s3)
or a2,s5,zero
addu v0,a2,s4
or s5,a2,zero
addiu a1,v0,-0x1
beq s5,v0,0x00089410
_subu s4,a1,s5
lw a0,0x4030(s3)
addiu s5,s5,0x1
addiu a2,a0,0x1
lbu t3,-0x1(s5)
addu a0,s3,a0
slti a3,a2,0x4
sw a2,0x4030(s3)
bne a3,zero,0x000893b8
_sb t3,0x20(a0)
lw a0,0x20(s3)
lw t9,-0x7e58(gp)
jalr t9
_addiu a0,a0,0x4
addiu a0,v0,-0x5
lw gp,0x20(sp)
sltiu a0,a0,0x400c
beq a0,zero,0x000894cc
_sw v0,0x1c(s3)
b 0x00089000
_lw s6,0x4030(s3)
li v0,0x72e
b 0x000890e4
_sw v0,0x10(s3)
b 0x000890e4
_sw v0,0x10(s3)
or s4,a3,zero
sltiu v0,s0,0x2e
bne v0,zero,0x000894b4
_lw a1,-0x7fb8(gp)
addiu s2,s3,0x20
lw t9,-0x6e80(gp)
li a2,0x2e
or a0,s2,zero
jalr t9
_addiu a1,a1,0x4890
bne v0,zero,0x000894b4
_lw gp,0x20(sp)
blez s0,0x00089478
_li v0,0xd
addiu s0,s0,-0x1
addu a0,s3,s0
lbu a0,0x20(a0)
bne a0,v0,0x00089478
_nop
sw s0,0x4030(s3)
or s1,s0,zero
lw v0,0xc(s3)
or a3,s1,zero
lw a2,-0x7fb8(gp)
lw t9,-0x77ec(gp)
lw a1,0x4(s3)
lw a0,0x14(v0)
addiu a2,a2,0x4524
jalr t9
_sw s2,0x10(sp)
li v0,0x1
lw gp,0x20(sp)
or a2,s5,zero
sw v0,0x18(s3)
b 0x000893ac
_sw zero,0x4030(s3)
lw a0,-0x7fb8(gp)
lw t9,-0x7f08(gp)
jalr t9
_addiu a0,a0,0x44f4
b 0x000890b4
_lw gp,0x20(sp)
lw a0,-0x7fb8(gp)
or a1,v0,zero
lw t9,-0x7f08(gp)
jalr t9
_addiu a0,a0,0x4544
b 0x000890b4
_lw gp,0x20(sp)
li v0,0x5c
beq s7,v0,0x000896b4
_sltiu v0,s7,0x5c
beq v0,zero,0x00089650
_slti v0,s0,0x10
bne v0,zero,0x00089d64
_or a2,zero,zero
lwl s2,0x25(s3)
addiu s6,sp,0x50
lwl v0,0x29(s3)
lw t9,-0x7e74(gp)
or a1,s6,zero
lw a0,0x4034(s3)
lwr s2,0x28(s3)
lwr v0,0x2c(s3)
sw s2,0x50(sp)
bal 0x0009fed4
_sw v0,0x2c(sp)
lw gp,0x20(sp)
beq v0,zero,0x0008a0fc
_or s7,v0,zero
lw v0,0xc(s3)
or a1,s3,zero
lw t9,-0x77c8(gp)
or s6,zero,zero
jalr t9
_lw a0,0x14(v0)
lw gp,0x20(sp)
srl a2,v0,0x18
lw t9,-0x7888(gp)
srl a1,v0,0x10
sb v0,0x2c(s3)
srl a0,v0,0x8
sb a2,0x29(s3)
sb a1,0x2a(s3)
addiu t9,t9,0x7b44
sb a0,0x2b(s3)
addiu a1,s3,0x403c
lwl t3,0x31(s3)
addiu a0,s3,0x4038
lw a2,0x2c(sp)
or a3,v0,zero
sw zero,0x14(sp)
sw s2,0x10(sp)
lwr t3,0x34(s3)
bal 0x00087b44
_sw t3,0x18(sp)
beq s7,zero,0x00089d7c
_lw gp,0x20(sp)
lw v0,0xc(s3)
li a2,0x5b
lw a0,0x14(v0)
or a3,s1,zero
lw a1,0x4(s3)
lw t9,-0x77e4(gp)
sw s0,0x10(sp)
jalr t9
_sw zero,0x14(sp)
or a1,s7,zero
lw gp,0x20(sp)
lw t9,-0x7e90(gp)
bal 0x0009fff0
_lw a0,0x4034(s3)
lw gp,0x20(sp)
lw t9,-0x7fc0(gp)
jalr t9
_or a0,s7,zero
or a2,s5,zero
lw gp,0x20(sp)
b 0x000893ac
_sw zero,0x4030(s3)
li v0,0x1
bne s7,v0,0x0008965c
_nop
lw v0,0x8(s3)
or a0,v0,zero
lw v0,0x0(v0)
lw t9,0x4(v0)
jalr t9
_nop
or a0,s3,zero
lw gp,0x20(sp)
lw t9,-0x77d8(gp)
addiu t9,t9,-0x7d30
bal 0x000882d0
_sw zero,0x8(s3)
or a2,s5,zero
lw gp,0x20(sp)
b 0x000893ac
_sw zero,0x4030(s3)
sltiu v0,s7,0x65
bne v0,zero,0x00089714
_li v0,0x62
lw a0,-0x7fb8(gp)
or a1,s7,zero
lw t9,-0x7f08(gp)
jalr t9
_addiu a0,a0,0x474c
lw gp,0x20(sp)
beq v0,zero,0x0008a128
_lw t9,-0x77d8(gp)
or a1,v0,zero
or a0,s3,zero
addiu t9,t9,-0x7820
bal 0x000887e0
_sw v0,0x2c(sp)
lw gp,0x20(sp)
lw v0,0x2c(sp)
lw t9,-0x7fc0(gp)
jalr t9
_or a0,v0,zero
or a2,s5,zero
lw gp,0x20(sp)
b 0x000893ac
_sw zero,0x4030(s3)
slti v0,s0,0x4
bne v0,zero,0x00089dd4
_lw t9,-0x7e74(gp)
lwl s2,0x25(s3)
addiu s6,sp,0x50
or a2,zero,zero
lw a0,0x4034(s3)
or a1,s6,zero
lwr s2,0x28(s3)
bal 0x0009fed4
_sw s2,0x50(sp)
lw gp,0x20(sp)
beq v0,zero,0x0008a168
_or s7,v0,zero
lw v0,0xc(s3)
b 0x000895b4
_li a2,0x5c
lw a0,-0x7fb8(gp)
lw t9,-0x7f08(gp)
jalr t9
_addiu a0,a0,0x455c
b 0x00089674
_lw gp,0x20(sp)
li v0,0x62
bne s7,v0,0x00089cc8
_addiu a1,s6,-0x9
slti v0,a1,0x4
bne v0,zero,0x00089cc8
_lw s2,-0x7888(gp)
addiu a2,sp,0x50
or a3,zero,zero
addiu a0,s3,0x29
addiu s2,s2,0x79c0
or t9,s2,zero
bal 0x000879c0
_sw a2,0x2c(sp)
beq v0,zero,0x00089cc8
_lw gp,0x20(sp)
lw v1,0x50(sp)
beq v1,zero,0x00089cc8
_lw a1,-0x7fb8(gp)
or a0,v1,zero
lw t9,-0x6e18(gp)
sw v1,0x30(sp)
jalr t9
_addiu a1,a1,-0x363c
lw gp,0x20(sp)
beq v0,zero,0x0008a3e4
_lw v1,0x30(sp)
lw v0,-0x7fb8(gp)
or a0,v1,zero
lw t9,-0x6e18(gp)
sw v1,0x30(sp)
addiu a1,v0,-0x36a0
jalr t9
_sw v0,0x44(sp)
lw gp,0x20(sp)
bne v0,zero,0x00089cb8
_lw v1,0x30(sp)
lwl v0,0x25(s3)
or a0,v1,zero
lw t9,-0x7fc0(gp)
lwr v0,0x28(s3)
sw v0,0x34(sp)
jalr t9
_or s7,v0,zero
or a2,zero,zero
lw gp,0x20(sp)
lw a1,0x2c(sp)
lw a0,0x403c(s3)
lw t9,-0x7e74(gp)
bal 0x0009fed4
_sw s7,0x58(sp)
lw gp,0x20(sp)
beq v0,zero,0x0008a390
_sw v0,0x30(sp)
slti v0,s0,0x11
bne v0,zero,0x0008a37c
_lw a0,-0x7fb8(gp)
lbu v0,0x34(s3)
addiu s6,s6,-0x16
sw v0,0x38(sp)
lbu v0,0x35(s3)
sw v0,0x3c(sp)
slti v0,s6,0x4
bne v0,zero,0x0008a34c
_lw t9,-0x77c4(gp)
addiu v0,s3,0x36
lw a2,0x2c(sp)
or a3,zero,zero
sw v0,0x40(sp)
or a1,s6,zero
or t9,s2,zero
bal 0x000879c0
_or a0,v0,zero
beq v0,zero,0x0008a374
_lw gp,0x20(sp)
lw s7,0x50(sp)
lw t9,-0x77c4(gp)
jalr t9
_or a0,s7,zero
or a0,s7,zero
lw gp,0x20(sp)
lw t9,-0x7fc0(gp)
jalr t9
_or s7,v0,zero
or a2,zero,zero
lw a3,0x2c(sp)
or a1,s6,zero
or t9,s2,zero
bal 0x000879c0
_lw a0,0x40(sp)
beq v0,zero,0x0008a36c
_lw gp,0x20(sp)
lw t3,0x50(sp)
addiu t3,t3,0x11
subu t4,s0,t3
slti v0,t4,0x4
bne v0,zero,0x00089ec4
_or s6,zero,zero
addu t5,s1,t3
lw a2,0x2c(sp)
or a3,zero,zero
sw t3,0x4c(sp)
or a1,t4,zero
sw t4,0x48(sp)
or a0,t5,zero
or t9,s2,zero
bal 0x000879c0
_sw t5,0x40(sp)
lw t5,0x40(sp)
lw t4,0x48(sp)
beq v0,zero,0x00089ecc
_lw t3,0x4c(sp)
lw s6,0x50(sp)
lw a3,0x2c(sp)
or a2,zero,zero
sw t3,0x40(sp)
or a1,t4,zero
or t9,s2,zero
bal 0x000879c0
_or a0,t5,zero
lw gp,0x20(sp)
beq v0,zero,0x00089ec4
_lw t3,0x40(sp)
lw v0,0x50(sp)
addu t3,t3,v0
addiu v0,t3,0x3
slt s0,v0,s0
beq s0,zero,0x00089e98
_lw t9,-0x7f08(gp)
bltz s7,0x00089df8
_addu s1,s1,t3
lw v0,0x3c(sp)
lw s2,0x30(sp)
or a0,s6,zero
lw t9,-0x77c0(gp)
lbu v1,0x0(s1)
sltu s0,zero,v0
lbu a2,0x1(s1)
addiu a1,s2,0x20
lbu a3,0x3(s1)
lbu v0,0x2(s1)
sll v1,v1,0x18
sll a2,a2,0x10
sw s7,0x18(s2)
or v1,v1,a3
sll v0,v0,0x8
or v1,v1,a2
or v1,v1,v0
jalr t9
_sw v1,0x2c(sp)
or a0,s6,zero
lw gp,0x20(sp)
lw t9,-0x7fc0(gp)
jalr t9
_sw v0,0x1c(s2)
or a3,s2,zero
lw gp,0x20(sp)
or a2,s3,zero
lw v0,0xc(s3)
or a1,s7,zero
lw t9,-0x77bc(gp)
jalr t9
_lw a0,0x14(v0)
lw gp,0x20(sp)
or s1,v0,zero
sw s1,0x14(s2)
sw s0,0x24(s2)
sw s2,0x30(sp)
lw t9,-0x6d7c(gp)
jalr t9
_lw a0,0xc(s1)
lw gp,0x20(sp)
or s2,v0,zero
lw a0,0x10(s1)
lw t9,-0x6d7c(gp)
jalr t9
_addiu s7,s2,0x1d
li a1,0x1
lw gp,0x20(sp)
addu s7,s7,v0
or s6,v0,zero
lw t9,-0x7fc4(gp)
jalr t9
_or a0,s7,zero
sra t4,s2,0x18
lw v1,0x44(sp)
or s1,v0,zero
addiu v0,v0,0x8
lw gp,0x20(sp)
sb zero,0x4(s1)
addiu a0,v1,-0x36a0
sb zero,0x5(s1)
lw a1,-0x36a0(v1)
lw v1,0x34(sp)
lbu t8,0x4(a0)
lbu t7,0x5(a0)
lbu t6,0x6(a0)
srl t3,v1,0x18
srl a3,v1,0x10
sb v1,0x3(s1)
srl a2,v1,0x8
sb t3,0x0(s1)
li a0,0x7
sb a3,0x1(s1)
sb a2,0x2(s1)
sra t3,s2,0x10
sb a0,0x7(s1)
sra a3,s2,0x8
sb zero,0x6(s1)
addiu a0,s1,0x15
swl a1,0x8(s1)
or a2,s2,zero
swr a1,0x3(v0)
sb t8,0x4(v0)
sb t7,0x5(v0)
sb t6,0x6(v0)
sb s0,0x10(s1)
sb t4,0x11(s1)
sb t3,0x12(s1)
sb a3,0x13(s1)
sb s2,0x14(s1)
lw v1,0x38(sp)
lw s0,0x30(sp)
lw t9,-0x6d44(gp)
sltu t5,zero,v1
sb t5,0xf(s1)
lw v0,0x14(s0)
jalr t9
_lw a1,0xc(v0)
addu v0,s1,s2
sra a2,s6,0x18
lw gp,0x20(sp)
sra a0,s6,0x10
sra a1,s6,0x8
sb a2,0x15(v0)
sb a0,0x16(v0)
addiu a0,s2,0x19
sb a1,0x17(v0)
or a2,s6,zero
sb s6,0x18(v0)
addu a0,s1,a0
lw v0,0x14(s0)
lw t9,-0x6d44(gp)
jalr t9
_lw a1,0x10(v0)
addu v0,s2,s6
lw v1,0x2c(sp)
or a3,s1,zero
addu v0,s1,v0
lw gp,0x20(sp)
sra a2,v1,0x18
sra a1,v1,0x10
sb v1,0x1c(v0)
sra a0,v1,0x8
sb a2,0x19(v0)
sb a1,0x1a(v0)
li a2,0x62
sb a0,0x1b(v0)
lw v0,0xc(s3)
lw t9,-0x77e4(gp)
lw a1,0x4(s3)
lw a0,0x14(v0)
sw s7,0x10(sp)
jalr t9
_sw zero,0x14(sp)
lw gp,0x20(sp)
lw t9,-0x7fc0(gp)
jalr t9
_or a0,s1,zero
or a2,s5,zero
lw gp,0x20(sp)
b 0x000893ac
_sw zero,0x4030(s3)
slti v0,s0,0x4
bne v0,zero,0x00089d50
_lw a0,-0x7fb8(gp)
lw t9,-0x7888(gp)
addiu a3,sp,0x50
or a2,zero,zero
or a1,s0,zero
addiu t9,t9,0x79c0
bal 0x000879c0
_or a0,s1,zero
beq v0,zero,0x00089d4c
_lw gp,0x20(sp)
lw a0,0x50(sp)
bltz a0,0x00089d4c
_nop
addiu v0,s6,-0x10
slt v0,a0,v0
beq v0,zero,0x00089d4c
_addu s2,s1,a0
addiu v0,a0,0x1
lw a1,0xc(s3)
lw t9,-0x77c8(gp)
addu t1,s1,v0
addiu v1,a0,0x2
addiu a0,a0,0x3
lbu v0,0x0(s2)
addu t0,s1,v1
lbu a2,0x0(t1)
addu v1,s1,a0
lw a0,0x14(a1)
sll v0,v0,0x18
sw t1,0x34(sp)
sw t0,0x30(sp)
sll a2,a2,0x10
sw v1,0x2c(sp)
or a1,s3,zero
lbu s6,0x0(t0)
or v0,v0,a2
lbu a3,0x0(v1)
sll s6,s6,0x8
or v0,v0,a3
jalr t9
_or s6,v0,s6
lbu a0,0x8(s2)
or s7,v0,zero
lbu a3,0x9(s2)
addiu a1,s3,0x403c
lw gp,0x20(sp)
lbu a2,0xa(s2)
sll v0,a0,0x18
lbu t3,0xb(s2)
sll a3,a3,0x10
sw zero,0x10(sp)
lw t9,-0x7888(gp)
sll a0,a2,0x8
or v0,v0,a3
or v0,v0,t3
li a2,0x3
or v0,v0,a0
addiu t9,t9,0x7b44
sw a2,0x14(sp)
addiu a0,s3,0x4038
sw v0,0x18(sp)
or a3,s7,zero
bal 0x00087b44
_or a2,s6,zero
srl a1,s7,0x18
lw t1,0x34(sp)
srl a0,s7,0x10
lw t0,0x30(sp)
srl v0,s7,0x8
lw v1,0x2c(sp)
li a2,0x5a
lw gp,0x20(sp)
or a3,s1,zero
sb a1,0x0(s2)
sb a0,0x0(t1)
sb v0,0x0(t0)
sb s7,0x0(v1)
lw v0,0xc(s3)
lw t9,-0x77e4(gp)
lw a1,0x4(s3)
lw a0,0x14(v0)
sw zero,0x14(sp)
jalr t9
_sw s0,0x10(sp)
or a2,s5,zero
lw gp,0x20(sp)
b 0x000893ac
_sw zero,0x4030(s3)
lw t9,-0x7fc0(gp)
jalr t9
_or a0,v1,zero
lw gp,0x20(sp)
lw v0,0xc(s3)
or a3,s1,zero
lw t9,-0x77e4(gp)
or a2,s7,zero
lw a1,0x4(s3)
lw a0,0x14(v0)
sw zero,0x14(sp)
jalr t9
_sw s0,0x10(sp)
li v0,0x61
bne s7,v0,0x000893a4
_lw gp,0x20(sp)
slti s0,s0,0x4
bne s0,zero,0x000893a4
_or a2,zero,zero
lwl v0,0x25(s3)
lw t9,-0x7e74(gp)
addiu a1,sp,0x50
lw a0,0x403c(s3)
lwr v0,0x28(s3)
bal 0x0009fed4
_sw v0,0x58(sp)
lw gp,0x20(sp)
beq v0,zero,0x000893a4
_or s0,v0,zero
lw a0,0x10(v0)
li v0,0x2
beq a0,v0,0x0008a478
_li v0,0x1
or a2,s5,zero
sw v0,0x10(s0)
b 0x000893ac
_sw zero,0x4030(s3)
lw a0,-0x7fb8(gp)
lw t9,-0x7f08(gp)
jalr t9
_addiu a0,a0,0x458c
b 0x00089674
_lw gp,0x20(sp)
lw a0,-0x7fb8(gp)
lw t9,-0x7f08(gp)
jalr t9
_addiu a0,a0,0x45ac
b 0x00089674
_lw gp,0x20(sp)
beq s6,zero,0x000893a4
_nop
lwl a3,0x2d(s3)
lwr a3,0x30(s3)
sltiu a0,a3,0x100
bne a0,zero,0x0008a1a8
_lw t9,-0x77b8(gp)
or a2,v0,zero
or a1,s6,zero
bal 0x00088d00
_or a0,s3,zero
addiu a1,s3,0x4044
lw gp,0x20(sp)
or a2,s6,zero
lw t9,-0x7888(gp)
addiu t9,t9,0x7ab8
bal 0x00087ab8
_lw a0,0x4040(s3)
or a2,s5,zero
lw gp,0x20(sp)
b 0x000893ac
_sw zero,0x4030(s3)
lw a0,-0x7fb8(gp)
lw t9,-0x7f08(gp)
jalr t9
_addiu a0,a0,0x4658
b 0x00089674
_lw gp,0x20(sp)
lw t9,-0x6fe8(gp)
jalr t9
_nop
lw v0,0x30(sp)
li a0,0xc
lw t9,-0x7888(gp)
addiu a2,sp,0x78
li a3,0x4
li a1,0x64
lw v0,0x0(v0)
addiu t9,t9,0x77b4
sw a0,0x14(sp)
addiu a0,s3,0x8
sw zero,0x10(sp)
bal 0x000877b4
_sw v0,0x78(sp)
lw gp,0x20(sp)
lw t9,-0x7fc0(gp)
jalr t9
_or a0,s6,zero
or a2,s5,zero
lw gp,0x20(sp)
b 0x000893ac
_sw zero,0x4030(s3)
lw v0,-0x7fb8(gp)
b 0x00089360
_addiu v0,v0,0x44b4
lw v0,0x34(sp)
beq v0,zero,0x00089398
_lw t9,-0x7fc0(gp)
lw a2,-0x7fb8(gp)
li v0,0xc
lw t9,-0x7888(gp)
or a3,zero,zero
li a1,0x52
sw v0,0x14(sp)
addiu a2,a2,-0x4be4
sw zero,0x10(sp)
addiu t9,t9,0x77b4
bal 0x000877b4
_addiu a0,s3,0x8
b 0x00089394
_lw gp,0x20(sp)
lw a0,-0x7fb8(gp)
jalr t9
_addiu a0,a0,0x4724
or a0,s6,zero
lw gp,0x20(sp)
lw t9,-0x7fc0(gp)
jalr t9
_sw v0,0x2c(sp)
lw gp,0x20(sp)
b 0x00089674
_lw v0,0x2c(sp)
b 0x000898fc
_li v0,-0x1
b 0x000898d0
_or s6,zero,zero
addiu v0,s6,-0x8
slt v0,s7,v0
beq v0,zero,0x000896fc
_lw a0,-0x7fb8(gp)
beq t5,zero,0x000892a4
_lw a2,0x2c(sp)
li a2,0x5a7
lw a3,-0x7fb8(gp)
lw a1,-0x7fb8(gp)
lw a0,-0x7fb8(gp)
lw t9,-0x7360(gp)
addiu a3,a3,0x4870
addiu a1,a1,0x43dc
jalr t9
_addiu a0,a0,0x457c
jalr t9
_nop
or a2,zero,zero
lw a3,0x2c(sp)
or a1,s0,zero
or t9,s2,zero
bal 0x000879c0
_or a0,s1,zero
beq v0,zero,0x000896f8
_lw gp,0x20(sp)
lw v0,0x50(sp)
bltz v0,0x000896f8
_nop
slt s0,v0,s0
beq s0,zero,0x000896f8
_nop
addu v0,s1,v0
lbu v0,0x0(v0)
beq v0,zero,0x000893a4
_lw a2,-0x7fb8(gp)
li v0,0xc
lw t9,-0x7888(gp)
or a3,zero,zero
li a1,0x52
sw v0,0x14(sp)
addiu a2,a2,-0x4be4
sw zero,0x10(sp)
addiu t9,t9,0x77b4
bal 0x000877b4
_addiu a0,s3,0x8
or a2,s5,zero
lw gp,0x20(sp)
b 0x000893ac
_sw zero,0x4030(s3)
lw t9,-0x7fc0(gp)
jalr t9
_or a0,s7,zero
or a2,zero,zero
lw a3,0x2c(sp)
or a1,s0,zero
or t9,s2,zero
bal 0x000879c0
_or a0,s1,zero
beq v0,zero,0x000896f8
_lw gp,0x20(sp)
lw s7,0x50(sp)
bltz s7,0x000896f8
_nop
slt v0,s7,s0
beq v0,zero,0x000896f8
_addiu t3,s7,0x1
addu v0,s1,s7
sw v0,0x34(sp)
subu v1,s0,t3
sw t3,0x44(sp)
lbu v0,0x0(v0)
addu t4,s1,t3
slti t5,v1,0x4
bne t5,zero,0x0008a2ec
_sw v0,0x30(sp)
lw a3,0x2c(sp)
or a2,zero,zero
sw t5,0x40(sp)
or a1,v1,zero
sw v1,0x3c(sp)
or a0,t4,zero
or t9,s2,zero
bal 0x000879c0
_sw t4,0x38(sp)
lw gp,0x20(sp)
lw t4,0x38(sp)
lw v1,0x3c(sp)
beq v0,zero,0x0008a2ec
_lw t5,0x40(sp)
lw s7,0x50(sp)
lw t3,0x44(sp)
addu s7,t3,s7
bltz s7,0x000896fc
_lw a0,-0x7fb8(gp)
addiu v0,s6,-0x8
slt v0,s7,v0
beq v0,zero,0x00089700
_lw t9,-0x7f08(gp)
lw a2,0x2c(sp)
or a3,zero,zero
or a1,v1,zero
or t9,s2,zero
bal 0x000879c0
_or a0,t4,zero
beq v0,zero,0x0008a304
_lw gp,0x20(sp)
lw s6,0x50(sp)
beq s6,zero,0x0008a304
_lw t9,-0x77b4(gp)
addu s7,s1,s7
lw a0,0xc(s3)
or a3,s3,zero
or a1,s6,zero
lbu s2,0x0(s7)
lbu a2,0x1(s7)
lbu t3,0x3(s7)
lbu v0,0x2(s7)
sll s2,s2,0x18
sll a2,a2,0x10
lw a0,0x14(a0)
or s2,s2,t3
sll v0,v0,0x8
or s2,s2,a2
or s2,s2,v0
jalr t9
_or a2,s2,zero
bne v0,zero,0x0008a210
_lw gp,0x20(sp)
lw v0,0x30(sp)
bne v0,zero,0x0008a1e0
_li v0,0xc
lw t9,-0x7fc0(gp)
jalr t9
_or a0,s6,zero
or a2,s5,zero
lw gp,0x20(sp)
b 0x000893ac
_sw zero,0x4030(s3)
lw t9,-0x7e74(gp)
or a2,zero,zero
lw a0,0x4044(s3)
or a1,s6,zero
bal 0x0009fed4
_sw s2,0x54(sp)
lw gp,0x20(sp)
beq v0,zero,0x0008a14c
_or s6,v0,zero
b 0x00089558
_lw v0,0x0(v0)
lw a3,-0x7fb8(gp)
li a2,0x6e6
lw a1,-0x7fb8(gp)
lw a0,-0x7fb8(gp)
lw t9,-0x7360(gp)
addiu a3,a3,0x4870
addiu a1,a1,0x43dc
jalr t9
_addiu a0,a0,0x4768
lw a0,-0x7fb8(gp)
or a1,s2,zero
lw t9,-0x7f08(gp)
jalr t9
_addiu a0,a0,0x45d8
b 0x00089674
_lw gp,0x20(sp)
lw t9,-0x7e74(gp)
or a2,zero,zero
lw a0,0x4044(s3)
or a1,s6,zero
bal 0x0009fed4
_sw s2,0x54(sp)
beq v0,zero,0x0008a1c4
_lw gp,0x20(sp)
lw t9,-0x77b0(gp)
or a1,v0,zero
bal 0x00088ea0
_or a0,s3,zero
or a2,s5,zero
lw gp,0x20(sp)
b 0x000893ac
_sw zero,0x4030(s3)
lw a0,-0x7fb8(gp)
or a1,a3,zero
lw t9,-0x7f08(gp)
jalr t9
_addiu a0,a0,0x4614
b 0x00089674
_lw gp,0x20(sp)
lw a0,-0x7fb8(gp)
or a1,s2,zero
lw t9,-0x7f08(gp)
jalr t9
_addiu a0,a0,0x4680
b 0x00089674
_lw gp,0x20(sp)
lw a2,-0x7fb8(gp)
lw t9,-0x7888(gp)
or a3,zero,zero
li a1,0x52
sw v0,0x14(sp)
addiu a2,a2,-0x4be4
sw zero,0x10(sp)
addiu t9,t9,0x77b4
bal 0x000877b4
_addiu a0,s3,0x8
b 0x0008a0e0
_lw gp,0x20(sp)
lw v1,0x34(sp)
li a0,0x1
lbu v0,0x0(v1)
sb a0,0x0(v1)
lw a0,0xc(s3)
lw a1,0x4(s3)
beq v0,zero,0x0008a340
_lw a0,0x14(a0)
or v0,zero,zero
lw t9,-0x77e4(gp)
li a2,0x50
or a3,s1,zero
sw v0,0x14(sp)
jalr t9
_sw s0,0x10(sp)
li a1,0xc
lw gp,0x20(sp)
lw t9,-0x7fc4(gp)
jalr t9
_li a0,0x1
or a0,s6,zero
lw gp,0x20(sp)
lw t9,-0x7f94(gp)
jalr t9
_or s0,v0,zero
or a1,s0,zero
lw gp,0x20(sp)
lw a0,0x4048(s3)
sw v0,0x0(s0)
sw s2,0x4(s0)
lw t9,-0x7e94(gp)
bal 0x0009faf8
_sw zero,0x8(s0)
bne s0,v0,0x0008a314
_lw gp,0x20(sp)
lw v0,0xc(s3)
or a1,s3,zero
lw t9,-0x77cc(gp)
jalr t9
_lw a0,0x14(v0)
li a0,0x1
lw gp,0x20(sp)
lw t9,-0x7fc4(gp)
jalr t9
_li a1,0x10
lw a0,0x4050(s3)
lw gp,0x20(sp)
beq a0,zero,0x0008a30c
_sw zero,0x0(v0)
sw v0,0x0(a0)
lw v1,0x30(sp)
sw s0,0xc(v0)
sw zero,0x4(v0)
b 0x0008a0e0
_sw v1,0x8(v0)
addiu v0,s6,-0x8
slt v0,s7,v0
beq v0,zero,0x000896fc
_lw a0,-0x7fb8(gp)
beq t5,zero,0x0008a05c
_nop
b 0x00089ef0
_li a2,0x55e
b 0x0008a2d8
_sw v0,0x404c(s3)
lw t9,-0x7fc0(gp)
jalr t9
_or a0,s0,zero
or a1,s3,zero
lw gp,0x20(sp)
lw v0,0xc(s3)
lw t9,-0x77cc(gp)
jalr t9
_lw a0,0x14(v0)
b 0x0008a0e0
_lw gp,0x20(sp)
lw v0,-0x7fb8(gp)
b 0x0008a234
_addiu v0,v0,0x44b4
jalr t9
_or a0,zero,zero
or a0,zero,zero
lw gp,0x20(sp)
lw t9,-0x7fc0(gp)
jalr t9
_or s7,v0,zero
lw gp,0x20(sp)
b 0x00089880
_li t3,-0x1
b 0x0008983c
_or s7,zero,zero
lw t9,-0x7f08(gp)
jalr t9
_addiu a0,a0,0x4724
b 0x00089674
_lw gp,0x20(sp)
lw a0,-0x7fb8(gp)
lw a1,0x34(sp)
lw t9,-0x7f08(gp)
addiu a0,a0,0x46f0
jalr t9
_nop
or a0,s3,zero
lw gp,0x20(sp)
or a1,v0,zero
lw t9,-0x77d8(gp)
addiu t9,t9,-0x7820
bal 0x000887e0
_or s0,v0,zero
lw gp,0x20(sp)
lw t9,-0x7fc0(gp)
jalr t9
_or a0,s0,zero
or a2,s5,zero
lw gp,0x20(sp)
b 0x000893ac
_sw zero,0x4030(s3)
lw v0,0xc(s3)
lw t9,-0x7a90(gp)
jalr t9
_lw a0,0x14(v0)
lw gp,0x20(sp)
bne v0,zero,0x00089778
_lw v1,0x30(sp)
lwl s0,0x25(s3)
or a0,v1,zero
lw t9,-0x7fc0(gp)
jalr t9
_lwr s0,0x28(s3)
or a2,zero,zero
lw gp,0x20(sp)
lw a1,0x2c(sp)
lw a0,0x403c(s3)
lw t9,-0x7e74(gp)
bal 0x0009fed4
_sw s0,0x58(sp)
beq v0,zero,0x0008a4b4
_lw gp,0x20(sp)
lw t9,-0x7888(gp)
li a0,0xc
lw v0,0x0(v0)
addiu a2,sp,0x78
sw a0,0x14(sp)
li a3,0x4
li a1,0x64
sw zero,0x10(sp)
addiu a0,s3,0x8
addiu t9,t9,0x77b4
bal 0x000877b4
_sw v0,0x78(sp)
or a2,s5,zero
lw gp,0x20(sp)
b 0x000893ac
_sw zero,0x4030(s3)
lw v0,0xc(s3)
lw t9,-0x77e0(gp)
lw a1,0x4(s0)
jalr t9
_lw a0,0x14(v0)
or a1,s0,zero
lw gp,0x20(sp)
lw t9,-0x7888(gp)
addiu t9,t9,0x7608
bal 0x00087608
_or a0,s3,zero
or a2,s5,zero
lw gp,0x20(sp)
b 0x000893ac
_sw zero,0x4030(s3)
lw a0,-0x7fb8(gp)
or a1,s0,zero
lw t9,-0x7f08(gp)
b 0x0008a3a0
_addiu a0,a0,0x46b8
(translation_unit "void share_xchannel_failure(int param_1,int param_2)\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  undefined4 uVar12;\n  byte ****ppppbVar13;\n  int iVar14;\n  byte ****ppppbVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  byte *pbVar18;\n  undefined4 *puVar19;\n  undefined4 *puVar20;\n  int iVar21;\n  int iVar22;\n  byte bVar26;\n  int iVar23;\n  undefined4 uVar24;\n  undefined4 *puVar25;\n  uint uVar27;\n  byte *pbVar28;\n  byte *pbVar29;\n  uint in_t3;\n  byte *pbVar30;\n  uint uVar31;\n  byte *pbVar32;\n  byte *****pppppbVar33;\n  byte *pbVar34;\n  byte *unaff_s5;\n  byte *****unaff_s6;\n  byte *****pppppbVar35;\n  byte *****pppppbVar36;\n  undefined *puVar37;\n  code *pcVar38;\n  int *piVar39;\n  byte ****local_b0;\n  byte ****local_90;\n  byte ****local_8c;\n  undefined4 local_88;\n  byte ***local_68;\n  int local_64;\n  int local_60;\n  int local_5c;\n  undefined *local_58;\n  undefined4 local_18;\n  int local_14;\n  \n  pppppbVar36 = (byte *****)PTR___stack_chk_guard_00112630;\n  local_18 = *(undefined4 *)(param_2 + 4);\n  pbVar28 = &DAT_00000061;\n  pbVar32 = (byte *)&local_18;\n  local_14 = *(int *)PTR___stack_chk_guard_00112630;\n  (*(code *)PTR_ssh_send_packet_from_downstream_00111acc)\n            (*(undefined4 *)(*(int *)(param_1 + 0xc) + 0x14),*(undefined4 *)(param_1 + 4));\n  *(undefined4 *)(param_2 + 8) = 0;\n  iVar22 = param_1;\n  share_dead_xchannel_respond(param_1,param_2);\n  if ((byte ****)local_14 == *pppppbVar36) {\n    return;\n  }\n  puVar37 = PTR___stack_chk_fail_001122c8;\n  (*(code *)PTR___stack_chk_fail_001122c8)();\n  iVar11 = *(int *)(iVar22 + 0x10);\n  piVar39 = *(int **)(puVar37 + 0x896d4);\n  local_58 = (undefined *)pppppbVar36;\n  local_64 = *piVar39;\n  pbVar34 = pbVar32;\n  local_60 = param_2;\n  local_5c = param_1;\n  if (iVar11 != 0x709) {\n    if (0x709 < iVar11) {\n      if (iVar11 == 0x72e) goto LAB_000893ac;\n      if (iVar11 != 0x73b) goto LAB_000890e0;\n      goto LAB_00088fd4;\n    }\n    if (iVar11 != 0) goto LAB_000890e0;\n    *(undefined4 *)(iVar22 + 0x4030) = 0;\n  }\n  if (pbVar32 == (byte *)0x0) {\nLAB_00089094:\n    *(undefined4 *)(iVar22 + 0x10) = 0x709;\nLAB_000890e4:\n    do {\n      if (local_64 == *piVar39) {\n        return;\n      }\n      (**(code **)(puVar37 + 0x8936c))();\n      pbVar28 = unaff_s5;\nLAB_00089df8:\n      local_68 = *local_b0;\n      FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n      (**(code **)(puVar37 + 0x88394))(unaff_s6);\n      *(undefined4 *)(iVar22 + 0x4030) = 0;\nLAB_000893ac:\n      pbVar32 = pbVar28 + (int)pbVar34;\n      unaff_s5 = pbVar28;\n      do {\n        pbVar34 = pbVar32 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar32) {\n          *(undefined4 *)(iVar22 + 0x10) = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar11 = *(int *)(iVar22 + 0x4030);\n        pbVar28 = unaff_s5 + 1;\n        iVar23 = iVar11 + 1;\n        bVar26 = *unaff_s5;\n        in_t3 = (uint)bVar26;\n        *(int *)(iVar22 + 0x4030) = iVar23;\n        *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n        unaff_s5 = pbVar28;\n      } while (iVar23 < 4);\n      iVar11 = (**(code **)(puVar37 + 0x884fc))(*(int *)(iVar22 + 0x20) + 4);\n      *(int *)(iVar22 + 0x1c) = iVar11;\n      if (iVar11 - 5U < 0x400c) {\n        unaff_s6 = *(byte ******)(iVar22 + 0x4030);\n        while (unaff_s5 = pbVar28, (int)unaff_s6 < iVar11) {\nLAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar11 = *(int *)(iVar22 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar26 = *pbVar28;\n          pbVar28 = pbVar28 + 1;\n          unaff_s6 = (byte *****)(iVar11 + 1);\n          *(byte ******)(iVar22 + 0x4030) = unaff_s6;\n          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n          iVar11 = *(int *)(iVar22 + 0x1c);\n        }\n        bVar26 = *(byte *)(iVar22 + 0x24);\n        iVar11 = iVar22 + 0x25;\n        pbVar32 = (byte *)((int)unaff_s6 + -5);\n        if (bVar26 != 0x5a) {\n          if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\n        iVar23 = *(int *)(puVar37 + 0x8839c);\n        if (3 < (int)pbVar32) {\n          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n          if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);\n          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);\n          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);\n          unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);\n          uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);\n          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);\n          *pbVar18 = (byte)((uint)uVar12 >> 0x10);\n          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);\n          *pbVar30 = (byte)uVar12;\n          (**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);\nLAB_00089674:\n        while (iVar11 == 0) {\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }\n        FUN_000887e0(iVar22,iVar11);\n        (**(code **)(puVar37 + 0x88394))(iVar11);\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n      uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11);\nLAB_000890b4:\n      FUN_000887e0(iVar22,uVar12);\n      (**(code **)(puVar37 + 0x88394))(uVar12);\n      unaff_s5 = pbVar28;\nLAB_000890e0:\n      *(undefined4 *)(iVar22 + 0x10) = 0;\n    } while( true );\n  }\n  uVar31 = *(uint *)(iVar22 + 0x4030);\n  bVar26 = *pbVar28;\n  pbVar34 = pbVar32 + -1;\n  pbVar30 = pbVar28 + 1;\n  if (bVar26 == 10) {\nLAB_0008942c:\n    pbVar28 = pbVar30;\n    if (0x2d < uVar31) {\n      pppppbVar36 = (byte *****)(iVar22 + 0x20);\n      iVar11 = (**(code **)(puVar37 + 0x894d4))\n                         (pppppbVar36,*(int *)(puVar37 + 0x8839c) + 0x4890,0x2e);\n      if (iVar11 == 0) {\n        if ((0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')) {\n          *(uint *)(iVar22 + 0x4030) = uVar27;\n          uVar31 = uVar27;\n        }\n        (**(code **)(puVar37 + 0x88b68))\n                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36);\n        *(undefined4 *)(iVar22 + 0x18) = 1;\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n    }\n    uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44f4);\n    goto LAB_000890b4;\n  }\n  pbVar18 = pbVar32;\n  if (uVar31 < 0x4010) {\n    uVar31 = uVar31 + 1;\n    pbVar29 = pbVar28 + (int)pbVar34;\n    pbVar34 = pbVar32;\n    unaff_s5 = pbVar30;\n    do {\n      *(uint *)(iVar22 + 0x4030) = uVar31;\n      *(byte *)(iVar22 + uVar31 + 0x1f) = bVar26;\n      if (pbVar28 + (int)pbVar32 == unaff_s5) goto LAB_00089094;\n      pbVar34 = pbVar29 + -(int)unaff_s5;\n      pbVar30 = unaff_s5 + 1;\n      bVar26 = *unaff_s5;\n      if (bVar26 == 10) goto LAB_0008942c;\n      uVar31 = uVar31 + 1;\n      pbVar18 = pbVar34;\n      unaff_s5 = pbVar30;\n    } while (uVar31 != 0x4011);\n  }\n  uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44d4);\n  pbVar34 = pbVar18;\n  pbVar28 = pbVar30;\n  goto LAB_000890b4;\n}\n\n" (function_definition "void share_xchannel_failure(int param_1,int param_2)\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  undefined4 uVar12;\n  byte ****ppppbVar13;\n  int iVar14;\n  byte ****ppppbVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  byte *pbVar18;\n  undefined4 *puVar19;\n  undefined4 *puVar20;\n  int iVar21;\n  int iVar22;\n  byte bVar26;\n  int iVar23;\n  undefined4 uVar24;\n  undefined4 *puVar25;\n  uint uVar27;\n  byte *pbVar28;\n  byte *pbVar29;\n  uint in_t3;\n  byte *pbVar30;\n  uint uVar31;\n  byte *pbVar32;\n  byte *****pppppbVar33;\n  byte *pbVar34;\n  byte *unaff_s5;\n  byte *****unaff_s6;\n  byte *****pppppbVar35;\n  byte *****pppppbVar36;\n  undefined *puVar37;\n  code *pcVar38;\n  int *piVar39;\n  byte ****local_b0;\n  byte ****local_90;\n  byte ****local_8c;\n  undefined4 local_88;\n  byte ***local_68;\n  int local_64;\n  int local_60;\n  int local_5c;\n  undefined *local_58;\n  undefined4 local_18;\n  int local_14;\n  \n  pppppbVar36 = (byte *****)PTR___stack_chk_guard_00112630;\n  local_18 = *(undefined4 *)(param_2 + 4);\n  pbVar28 = &DAT_00000061;\n  pbVar32 = (byte *)&local_18;\n  local_14 = *(int *)PTR___stack_chk_guard_00112630;\n  (*(code *)PTR_ssh_send_packet_from_downstream_00111acc)\n            (*(undefined4 *)(*(int *)(param_1 + 0xc) + 0x14),*(undefined4 *)(param_1 + 4));\n  *(undefined4 *)(param_2 + 8) = 0;\n  iVar22 = param_1;\n  share_dead_xchannel_respond(param_1,param_2);\n  if ((byte ****)local_14 == *pppppbVar36) {\n    return;\n  }\n  puVar37 = PTR___stack_chk_fail_001122c8;\n  (*(code *)PTR___stack_chk_fail_001122c8)();\n  iVar11 = *(int *)(iVar22 + 0x10);\n  piVar39 = *(int **)(puVar37 + 0x896d4);\n  local_58 = (undefined *)pppppbVar36;\n  local_64 = *piVar39;\n  pbVar34 = pbVar32;\n  local_60 = param_2;\n  local_5c = param_1;\n  if (iVar11 != 0x709) {\n    if (0x709 < iVar11) {\n      if (iVar11 == 0x72e) goto LAB_000893ac;\n      if (iVar11 != 0x73b) goto LAB_000890e0;\n      goto LAB_00088fd4;\n    }\n    if (iVar11 != 0) goto LAB_000890e0;\n    *(undefined4 *)(iVar22 + 0x4030) = 0;\n  }\n  if (pbVar32 == (byte *)0x0) {\nLAB_00089094:\n    *(undefined4 *)(iVar22 + 0x10) = 0x709;\nLAB_000890e4:\n    do {\n      if (local_64 == *piVar39) {\n        return;\n      }\n      (**(code **)(puVar37 + 0x8936c))();\n      pbVar28 = unaff_s5;\nLAB_00089df8:\n      local_68 = *local_b0;\n      FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n      (**(code **)(puVar37 + 0x88394))(unaff_s6);\n      *(undefined4 *)(iVar22 + 0x4030) = 0;\nLAB_000893ac:\n      pbVar32 = pbVar28 + (int)pbVar34;\n      unaff_s5 = pbVar28;\n      do {\n        pbVar34 = pbVar32 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar32) {\n          *(undefined4 *)(iVar22 + 0x10) = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar11 = *(int *)(iVar22 + 0x4030);\n        pbVar28 = unaff_s5 + 1;\n        iVar23 = iVar11 + 1;\n        bVar26 = *unaff_s5;\n        in_t3 = (uint)bVar26;\n        *(int *)(iVar22 + 0x4030) = iVar23;\n        *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n        unaff_s5 = pbVar28;\n      } while (iVar23 < 4);\n      iVar11 = (**(code **)(puVar37 + 0x884fc))(*(int *)(iVar22 + 0x20) + 4);\n      *(int *)(iVar22 + 0x1c) = iVar11;\n      if (iVar11 - 5U < 0x400c) {\n        unaff_s6 = *(byte ******)(iVar22 + 0x4030);\n        while (unaff_s5 = pbVar28, (int)unaff_s6 < iVar11) {\nLAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar11 = *(int *)(iVar22 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar26 = *pbVar28;\n          pbVar28 = pbVar28 + 1;\n          unaff_s6 = (byte *****)(iVar11 + 1);\n          *(byte ******)(iVar22 + 0x4030) = unaff_s6;\n          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n          iVar11 = *(int *)(iVar22 + 0x1c);\n        }\n        bVar26 = *(byte *)(iVar22 + 0x24);\n        iVar11 = iVar22 + 0x25;\n        pbVar32 = (byte *)((int)unaff_s6 + -5);\n        if (bVar26 != 0x5a) {\n          if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\n        iVar23 = *(int *)(puVar37 + 0x8839c);\n        if (3 < (int)pbVar32) {\n          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n          if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);\n          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);\n          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);\n          unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);\n          uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);\n          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);\n          *pbVar18 = (byte)((uint)uVar12 >> 0x10);\n          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);\n          *pbVar30 = (byte)uVar12;\n          (**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);\nLAB_00089674:\n        while (iVar11 == 0) {\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }\n        FUN_000887e0(iVar22,iVar11);\n        (**(code **)(puVar37 + 0x88394))(iVar11);\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n      uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11);\nLAB_000890b4:\n      FUN_000887e0(iVar22,uVar12);\n      (**(code **)(puVar37 + 0x88394))(uVar12);\n      unaff_s5 = pbVar28;\nLAB_000890e0:\n      *(undefined4 *)(iVar22 + 0x10) = 0;\n    } while( true );\n  }\n  uVar31 = *(uint *)(iVar22 + 0x4030);\n  bVar26 = *pbVar28;\n  pbVar34 = pbVar32 + -1;\n  pbVar30 = pbVar28 + 1;\n  if (bVar26 == 10) {\nLAB_0008942c:\n    pbVar28 = pbVar30;\n    if (0x2d < uVar31) {\n      pppppbVar36 = (byte *****)(iVar22 + 0x20);\n      iVar11 = (**(code **)(puVar37 + 0x894d4))\n                         (pppppbVar36,*(int *)(puVar37 + 0x8839c) + 0x4890,0x2e);\n      if (iVar11 == 0) {\n        if ((0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')) {\n          *(uint *)(iVar22 + 0x4030) = uVar27;\n          uVar31 = uVar27;\n        }\n        (**(code **)(puVar37 + 0x88b68))\n                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36);\n        *(undefined4 *)(iVar22 + 0x18) = 1;\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n    }\n    uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44f4);\n    goto LAB_000890b4;\n  }\n  pbVar18 = pbVar32;\n  if (uVar31 < 0x4010) {\n    uVar31 = uVar31 + 1;\n    pbVar29 = pbVar28 + (int)pbVar34;\n    pbVar34 = pbVar32;\n    unaff_s5 = pbVar30;\n    do {\n      *(uint *)(iVar22 + 0x4030) = uVar31;\n      *(byte *)(iVar22 + uVar31 + 0x1f) = bVar26;\n      if (pbVar28 + (int)pbVar32 == unaff_s5) goto LAB_00089094;\n      pbVar34 = pbVar29 + -(int)unaff_s5;\n      pbVar30 = unaff_s5 + 1;\n      bVar26 = *unaff_s5;\n      if (bVar26 == 10) goto LAB_0008942c;\n      uVar31 = uVar31 + 1;\n      pbVar18 = pbVar34;\n      unaff_s5 = pbVar30;\n    } while (uVar31 != 0x4011);\n  }\n  uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44d4);\n  pbVar34 = pbVar18;\n  pbVar28 = pbVar30;\n  goto LAB_000890b4;\n}" primitive_type (function_declarator "share_xchannel_failure(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" 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  undefined4 uVar12;\n  byte ****ppppbVar13;\n  int iVar14;\n  byte ****ppppbVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  byte *pbVar18;\n  undefined4 *puVar19;\n  undefined4 *puVar20;\n  int iVar21;\n  int iVar22;\n  byte bVar26;\n  int iVar23;\n  undefined4 uVar24;\n  undefined4 *puVar25;\n  uint uVar27;\n  byte *pbVar28;\n  byte *pbVar29;\n  uint in_t3;\n  byte *pbVar30;\n  uint uVar31;\n  byte *pbVar32;\n  byte *****pppppbVar33;\n  byte *pbVar34;\n  byte *unaff_s5;\n  byte *****unaff_s6;\n  byte *****pppppbVar35;\n  byte *****pppppbVar36;\n  undefined *puVar37;\n  code *pcVar38;\n  int *piVar39;\n  byte ****local_b0;\n  byte ****local_90;\n  byte ****local_8c;\n  undefined4 local_88;\n  byte ***local_68;\n  int local_64;\n  int local_60;\n  int local_5c;\n  undefined *local_58;\n  undefined4 local_18;\n  int local_14;\n  \n  pppppbVar36 = (byte *****)PTR___stack_chk_guard_00112630;\n  local_18 = *(undefined4 *)(param_2 + 4);\n  pbVar28 = &DAT_00000061;\n  pbVar32 = (byte *)&local_18;\n  local_14 = *(int *)PTR___stack_chk_guard_00112630;\n  (*(code *)PTR_ssh_send_packet_from_downstream_00111acc)\n            (*(undefined4 *)(*(int *)(param_1 + 0xc) + 0x14),*(undefined4 *)(param_1 + 4));\n  *(undefined4 *)(param_2 + 8) = 0;\n  iVar22 = param_1;\n  share_dead_xchannel_respond(param_1,param_2);\n  if ((byte ****)local_14 == *pppppbVar36) {\n    return;\n  }\n  puVar37 = PTR___stack_chk_fail_001122c8;\n  (*(code *)PTR___stack_chk_fail_001122c8)();\n  iVar11 = *(int *)(iVar22 + 0x10);\n  piVar39 = *(int **)(puVar37 + 0x896d4);\n  local_58 = (undefined *)pppppbVar36;\n  local_64 = *piVar39;\n  pbVar34 = pbVar32;\n  local_60 = param_2;\n  local_5c = param_1;\n  if (iVar11 != 0x709) {\n    if (0x709 < iVar11) {\n      if (iVar11 == 0x72e) goto LAB_000893ac;\n      if (iVar11 != 0x73b) goto LAB_000890e0;\n      goto LAB_00088fd4;\n    }\n    if (iVar11 != 0) goto LAB_000890e0;\n    *(undefined4 *)(iVar22 + 0x4030) = 0;\n  }\n  if (pbVar32 == (byte *)0x0) {\nLAB_00089094:\n    *(undefined4 *)(iVar22 + 0x10) = 0x709;\nLAB_000890e4:\n    do {\n      if (local_64 == *piVar39) {\n        return;\n      }\n      (**(code **)(puVar37 + 0x8936c))();\n      pbVar28 = unaff_s5;\nLAB_00089df8:\n      local_68 = *local_b0;\n      FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n      (**(code **)(puVar37 + 0x88394))(unaff_s6);\n      *(undefined4 *)(iVar22 + 0x4030) = 0;\nLAB_000893ac:\n      pbVar32 = pbVar28 + (int)pbVar34;\n      unaff_s5 = pbVar28;\n      do {\n        pbVar34 = pbVar32 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar32) {\n          *(undefined4 *)(iVar22 + 0x10) = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar11 = *(int *)(iVar22 + 0x4030);\n        pbVar28 = unaff_s5 + 1;\n        iVar23 = iVar11 + 1;\n        bVar26 = *unaff_s5;\n        in_t3 = (uint)bVar26;\n        *(int *)(iVar22 + 0x4030) = iVar23;\n        *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n        unaff_s5 = pbVar28;\n      } while (iVar23 < 4);\n      iVar11 = (**(code **)(puVar37 + 0x884fc))(*(int *)(iVar22 + 0x20) + 4);\n      *(int *)(iVar22 + 0x1c) = iVar11;\n      if (iVar11 - 5U < 0x400c) {\n        unaff_s6 = *(byte ******)(iVar22 + 0x4030);\n        while (unaff_s5 = pbVar28, (int)unaff_s6 < iVar11) {\nLAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar11 = *(int *)(iVar22 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar26 = *pbVar28;\n          pbVar28 = pbVar28 + 1;\n          unaff_s6 = (byte *****)(iVar11 + 1);\n          *(byte ******)(iVar22 + 0x4030) = unaff_s6;\n          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n          iVar11 = *(int *)(iVar22 + 0x1c);\n        }\n        bVar26 = *(byte *)(iVar22 + 0x24);\n        iVar11 = iVar22 + 0x25;\n        pbVar32 = (byte *)((int)unaff_s6 + -5);\n        if (bVar26 != 0x5a) {\n          if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\n        iVar23 = *(int *)(puVar37 + 0x8839c);\n        if (3 < (int)pbVar32) {\n          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n          if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);\n          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);\n          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);\n          unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);\n          uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);\n          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);\n          *pbVar18 = (byte)((uint)uVar12 >> 0x10);\n          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);\n          *pbVar30 = (byte)uVar12;\n          (**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);\nLAB_00089674:\n        while (iVar11 == 0) {\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }\n        FUN_000887e0(iVar22,iVar11);\n        (**(code **)(puVar37 + 0x88394))(iVar11);\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n      uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11);\nLAB_000890b4:\n      FUN_000887e0(iVar22,uVar12);\n      (**(code **)(puVar37 + 0x88394))(uVar12);\n      unaff_s5 = pbVar28;\nLAB_000890e0:\n      *(undefined4 *)(iVar22 + 0x10) = 0;\n    } while( true );\n  }\n  uVar31 = *(uint *)(iVar22 + 0x4030);\n  bVar26 = *pbVar28;\n  pbVar34 = pbVar32 + -1;\n  pbVar30 = pbVar28 + 1;\n  if (bVar26 == 10) {\nLAB_0008942c:\n    pbVar28 = pbVar30;\n    if (0x2d < uVar31) {\n      pppppbVar36 = (byte *****)(iVar22 + 0x20);\n      iVar11 = (**(code **)(puVar37 + 0x894d4))\n                         (pppppbVar36,*(int *)(puVar37 + 0x8839c) + 0x4890,0x2e);\n      if (iVar11 == 0) {\n        if ((0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')) {\n          *(uint *)(iVar22 + 0x4030) = uVar27;\n          uVar31 = uVar27;\n        }\n        (**(code **)(puVar37 + 0x88b68))\n                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36);\n        *(undefined4 *)(iVar22 + 0x18) = 1;\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n    }\n    uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44f4);\n    goto LAB_000890b4;\n  }\n  pbVar18 = pbVar32;\n  if (uVar31 < 0x4010) {\n    uVar31 = uVar31 + 1;\n    pbVar29 = pbVar28 + (int)pbVar34;\n    pbVar34 = pbVar32;\n    unaff_s5 = pbVar30;\n    do {\n      *(uint *)(iVar22 + 0x4030) = uVar31;\n      *(byte *)(iVar22 + uVar31 + 0x1f) = bVar26;\n      if (pbVar28 + (int)pbVar32 == unaff_s5) goto LAB_00089094;\n      pbVar34 = pbVar29 + -(int)unaff_s5;\n      pbVar30 = unaff_s5 + 1;\n      bVar26 = *unaff_s5;\n      if (bVar26 == 10) goto LAB_0008942c;\n      uVar31 = uVar31 + 1;\n      pbVar18 = pbVar34;\n      unaff_s5 = pbVar30;\n    } while (uVar31 != 0x4011);\n  }\n  uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44d4);\n  pbVar34 = pbVar18;\n  pbVar28 = pbVar30;\n  goto LAB_000890b4;\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 "undefined4 uVar12;" type_identifier identifier ;) (declaration "byte ****ppppbVar13;" type_identifier (pointer_declarator "****ppppbVar13" * (pointer_declarator "***ppppbVar13" * (pointer_declarator "**ppppbVar13" * (pointer_declarator "*ppppbVar13" * identifier)))) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "byte ****ppppbVar15;" type_identifier (pointer_declarator "****ppppbVar15" * (pointer_declarator "***ppppbVar15" * (pointer_declarator "**ppppbVar15" * (pointer_declarator "*ppppbVar15" * identifier)))) ;) (declaration "undefined1 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined1 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "undefined4 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "undefined4 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "byte bVar26;" type_identifier identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "undefined4 uVar24;" type_identifier identifier ;) (declaration "undefined4 *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "byte *pbVar28;" type_identifier (pointer_declarator "*pbVar28" * identifier) ;) (declaration "byte *pbVar29;" type_identifier (pointer_declarator "*pbVar29" * identifier) ;) (declaration "uint in_t3;" type_identifier identifier ;) (declaration "byte *pbVar30;" type_identifier (pointer_declarator "*pbVar30" * identifier) ;) (declaration "uint uVar31;" type_identifier identifier ;) (declaration "byte *pbVar32;" type_identifier (pointer_declarator "*pbVar32" * identifier) ;) (declaration "byte *****pppppbVar33;" type_identifier (pointer_declarator "*****pppppbVar33" * (pointer_declarator "****pppppbVar33" * (pointer_declarator "***pppppbVar33" * (pointer_declarator "**pppppbVar33" * (pointer_declarator "*pppppbVar33" * identifier))))) ;) (declaration "byte *pbVar34;" type_identifier (pointer_declarator "*pbVar34" * identifier) ;) (declaration "byte *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "byte *****unaff_s6;" type_identifier (pointer_declarator "*****unaff_s6" * (pointer_declarator "****unaff_s6" * (pointer_declarator "***unaff_s6" * (pointer_declarator "**unaff_s6" * (pointer_declarator "*unaff_s6" * 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 "byte ****local_b0;" type_identifier (pointer_declarator "****local_b0" * (pointer_declarator "***local_b0" * (pointer_declarator "**local_b0" * (pointer_declarator "*local_b0" * identifier)))) ;) (declaration "byte ****local_90;" type_identifier (pointer_declarator "****local_90" * (pointer_declarator "***local_90" * (pointer_declarator "**local_90" * (pointer_declarator "*local_90" * identifier)))) ;) (declaration "byte ****local_8c;" type_identifier (pointer_declarator "****local_8c" * (pointer_declarator "***local_8c" * (pointer_declarator "**local_8c" * (pointer_declarator "*local_8c" * identifier)))) ;) (declaration "undefined4 local_88;" type_identifier identifier ;) (declaration "byte ***local_68;" type_identifier (pointer_declarator "***local_68" * (pointer_declarator "**local_68" * (pointer_declarator "*local_68" * identifier))) ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "undefined *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "undefined4 local_18;" type_identifier identifier ;) (declaration "int local_14;" primitive_type identifier ;) (expression_statement "pppppbVar36 = (byte *****)PTR___stack_chk_guard_00112630;" (assignment_expression "pppppbVar36 = (byte *****)PTR___stack_chk_guard_00112630" identifier = (cast_expression "(byte *****)PTR___stack_chk_guard_00112630" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (expression_statement "local_18 = *(undefined4 *)(param_2 + 4);" (assignment_expression "local_18 = *(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 "pbVar28 = &DAT_00000061;" (assignment_expression "pbVar28 = &DAT_00000061" identifier = (pointer_expression "&DAT_00000061" & identifier)) ;) (expression_statement "pbVar32 = (byte *)&local_18;" (assignment_expression "pbVar32 = (byte *)&local_18" identifier = (cast_expression "(byte *)&local_18" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_18" & identifier))) ;) (expression_statement "local_14 = *(int *)PTR___stack_chk_guard_00112630;" (assignment_expression "local_14 = *(int *)PTR___stack_chk_guard_00112630" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00112630" * (cast_expression "(int *)PTR___stack_chk_guard_00112630" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "(*(code *)PTR_ssh_send_packet_from_downstream_00111acc)\n            (*(undefined4 *)(*(int *)(param_1 + 0xc) + 0x14),*(undefined4 *)(param_1 + 4));" (call_expression "(*(code *)PTR_ssh_send_packet_from_downstream_00111acc)\n            (*(undefined4 *)(*(int *)(param_1 + 0xc) + 0x14),*(undefined4 *)(param_1 + 4))" (parenthesized_expression "(*(code *)PTR_ssh_send_packet_from_downstream_00111acc)" ( (pointer_expression "*(code *)PTR_ssh_send_packet_from_downstream_00111acc" * (cast_expression "(code *)PTR_ssh_send_packet_from_downstream_00111acc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(*(int *)(param_1 + 0xc) + 0x14),*(undefined4 *)(param_1 + 4))" ( (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(param_1 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (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) )))) , (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined4 *)(param_2 + 8) = 0;" (assignment_expression "*(undefined4 *)(param_2 + 8) = 0" (pointer_expression "*(undefined4 *)(param_2 + 8)" * (cast_expression "(undefined4 *)(param_2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar22 = param_1;" (assignment_expression "iVar22 = param_1" identifier = identifier) ;) (expression_statement "share_dead_xchannel_respond(param_1,param_2);" (call_expression "share_dead_xchannel_respond(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier ))) ;) (if_statement "if ((byte ****)local_14 == *pppppbVar36) {\n    return;\n  }" if (parenthesized_expression "((byte ****)local_14 == *pppppbVar36)" ( (binary_expression "(byte ****)local_14 == *pppppbVar36" (cast_expression "(byte ****)local_14" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier) == (pointer_expression "*pppppbVar36" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "puVar37 = PTR___stack_chk_fail_001122c8;" (assignment_expression "puVar37 = PTR___stack_chk_fail_001122c8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_001122c8)();" (call_expression "(*(code *)PTR___stack_chk_fail_001122c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_001122c8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_001122c8" * (cast_expression "(code *)PTR___stack_chk_fail_001122c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar11 = *(int *)(iVar22 + 0x10);" (assignment_expression "iVar11 = *(int *)(iVar22 + 0x10)" identifier = (pointer_expression "*(int *)(iVar22 + 0x10)" * (cast_expression "(int *)(iVar22 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x10)" ( (binary_expression "iVar22 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "piVar39 = *(int **)(puVar37 + 0x896d4);" (assignment_expression "piVar39 = *(int **)(puVar37 + 0x896d4)" identifier = (pointer_expression "*(int **)(puVar37 + 0x896d4)" * (cast_expression "(int **)(puVar37 + 0x896d4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x896d4)" ( (binary_expression "puVar37 + 0x896d4" identifier + number_literal) ))))) ;) (expression_statement "local_58 = (undefined *)pppppbVar36;" (assignment_expression "local_58 = (undefined *)pppppbVar36" identifier = (cast_expression "(undefined *)pppppbVar36" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_64 = *piVar39;" (assignment_expression "local_64 = *piVar39" identifier = (pointer_expression "*piVar39" * identifier)) ;) (expression_statement "pbVar34 = pbVar32;" (assignment_expression "pbVar34 = pbVar32" identifier = identifier) ;) (expression_statement "local_60 = param_2;" (assignment_expression "local_60 = param_2" identifier = identifier) ;) (expression_statement "local_5c = param_1;" (assignment_expression "local_5c = param_1" identifier = identifier) ;) (if_statement "if (iVar11 != 0x709) {\n    if (0x709 < iVar11) {\n      if (iVar11 == 0x72e) goto LAB_000893ac;\n      if (iVar11 != 0x73b) goto LAB_000890e0;\n      goto LAB_00088fd4;\n    }\n    if (iVar11 != 0) goto LAB_000890e0;\n    *(undefined4 *)(iVar22 + 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_000893ac;\n      if (iVar11 != 0x73b) goto LAB_000890e0;\n      goto LAB_00088fd4;\n    }\n    if (iVar11 != 0) goto LAB_000890e0;\n    *(undefined4 *)(iVar22 + 0x4030) = 0;\n  }" { (if_statement "if (0x709 < iVar11) {\n      if (iVar11 == 0x72e) goto LAB_000893ac;\n      if (iVar11 != 0x73b) goto LAB_000890e0;\n      goto LAB_00088fd4;\n    }" if (parenthesized_expression "(0x709 < iVar11)" ( (binary_expression "0x709 < iVar11" number_literal < identifier) )) (compound_statement "{\n      if (iVar11 == 0x72e) goto LAB_000893ac;\n      if (iVar11 != 0x73b) goto LAB_000890e0;\n      goto LAB_00088fd4;\n    }" { (if_statement "if (iVar11 == 0x72e) goto LAB_000893ac;" if (parenthesized_expression "(iVar11 == 0x72e)" ( (binary_expression "iVar11 == 0x72e" identifier == number_literal) )) (goto_statement "goto LAB_000893ac;" goto statement_identifier ;)) (if_statement "if (iVar11 != 0x73b) goto LAB_000890e0;" if (parenthesized_expression "(iVar11 != 0x73b)" ( (binary_expression "iVar11 != 0x73b" identifier != number_literal) )) (goto_statement "goto LAB_000890e0;" goto statement_identifier ;)) (goto_statement "goto LAB_00088fd4;" goto statement_identifier ;) })) (if_statement "if (iVar11 != 0) goto LAB_000890e0;" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000890e0;" goto statement_identifier ;)) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" * (cast_expression "(undefined4 *)(iVar22 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = number_literal) ;) })) (if_statement "if (pbVar32 == (byte *)0x0) {\nLAB_00089094:\n    *(undefined4 *)(iVar22 + 0x10) = 0x709;\nLAB_000890e4:\n    do {\n      if (local_64 == *piVar39) {\n        return;\n      }\n      (**(code **)(puVar37 + 0x8936c))();\n      pbVar28 = unaff_s5;\nLAB_00089df8:\n      local_68 = *local_b0;\n      FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n      (**(code **)(puVar37 + 0x88394))(unaff_s6);\n      *(undefined4 *)(iVar22 + 0x4030) = 0;\nLAB_000893ac:\n      pbVar32 = pbVar28 + (int)pbVar34;\n      unaff_s5 = pbVar28;\n      do {\n        pbVar34 = pbVar32 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar32) {\n          *(undefined4 *)(iVar22 + 0x10) = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar11 = *(int *)(iVar22 + 0x4030);\n        pbVar28 = unaff_s5 + 1;\n        iVar23 = iVar11 + 1;\n        bVar26 = *unaff_s5;\n        in_t3 = (uint)bVar26;\n        *(int *)(iVar22 + 0x4030) = iVar23;\n        *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n        unaff_s5 = pbVar28;\n      } while (iVar23 < 4);\n      iVar11 = (**(code **)(puVar37 + 0x884fc))(*(int *)(iVar22 + 0x20) + 4);\n      *(int *)(iVar22 + 0x1c) = iVar11;\n      if (iVar11 - 5U < 0x400c) {\n        unaff_s6 = *(byte ******)(iVar22 + 0x4030);\n        while (unaff_s5 = pbVar28, (int)unaff_s6 < iVar11) {\nLAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar11 = *(int *)(iVar22 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar26 = *pbVar28;\n          pbVar28 = pbVar28 + 1;\n          unaff_s6 = (byte *****)(iVar11 + 1);\n          *(byte ******)(iVar22 + 0x4030) = unaff_s6;\n          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n          iVar11 = *(int *)(iVar22 + 0x1c);\n        }\n        bVar26 = *(byte *)(iVar22 + 0x24);\n        iVar11 = iVar22 + 0x25;\n        pbVar32 = (byte *)((int)unaff_s6 + -5);\n        if (bVar26 != 0x5a) {\n          if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\n        iVar23 = *(int *)(puVar37 + 0x8839c);\n        if (3 < (int)pbVar32) {\n          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n          if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);\n          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);\n          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);\n          unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);\n          uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);\n          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);\n          *pbVar18 = (byte)((uint)uVar12 >> 0x10);\n          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);\n          *pbVar30 = (byte)uVar12;\n          (**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);\nLAB_00089674:\n        while (iVar11 == 0) {\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }\n        FUN_000887e0(iVar22,iVar11);\n        (**(code **)(puVar37 + 0x88394))(iVar11);\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n      uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11);\nLAB_000890b4:\n      FUN_000887e0(iVar22,uVar12);\n      (**(code **)(puVar37 + 0x88394))(uVar12);\n      unaff_s5 = pbVar28;\nLAB_000890e0:\n      *(undefined4 *)(iVar22 + 0x10) = 0;\n    } while( true );\n  }" if (parenthesized_expression "(pbVar32 == (byte *)0x0)" ( (binary_expression "pbVar32 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00089094:\n    *(undefined4 *)(iVar22 + 0x10) = 0x709;\nLAB_000890e4:\n    do {\n      if (local_64 == *piVar39) {\n        return;\n      }\n      (**(code **)(puVar37 + 0x8936c))();\n      pbVar28 = unaff_s5;\nLAB_00089df8:\n      local_68 = *local_b0;\n      FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n      (**(code **)(puVar37 + 0x88394))(unaff_s6);\n      *(undefined4 *)(iVar22 + 0x4030) = 0;\nLAB_000893ac:\n      pbVar32 = pbVar28 + (int)pbVar34;\n      unaff_s5 = pbVar28;\n      do {\n        pbVar34 = pbVar32 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar32) {\n          *(undefined4 *)(iVar22 + 0x10) = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar11 = *(int *)(iVar22 + 0x4030);\n        pbVar28 = unaff_s5 + 1;\n        iVar23 = iVar11 + 1;\n        bVar26 = *unaff_s5;\n        in_t3 = (uint)bVar26;\n        *(int *)(iVar22 + 0x4030) = iVar23;\n        *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n        unaff_s5 = pbVar28;\n      } while (iVar23 < 4);\n      iVar11 = (**(code **)(puVar37 + 0x884fc))(*(int *)(iVar22 + 0x20) + 4);\n      *(int *)(iVar22 + 0x1c) = iVar11;\n      if (iVar11 - 5U < 0x400c) {\n        unaff_s6 = *(byte ******)(iVar22 + 0x4030);\n        while (unaff_s5 = pbVar28, (int)unaff_s6 < iVar11) {\nLAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar11 = *(int *)(iVar22 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar26 = *pbVar28;\n          pbVar28 = pbVar28 + 1;\n          unaff_s6 = (byte *****)(iVar11 + 1);\n          *(byte ******)(iVar22 + 0x4030) = unaff_s6;\n          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n          iVar11 = *(int *)(iVar22 + 0x1c);\n        }\n        bVar26 = *(byte *)(iVar22 + 0x24);\n        iVar11 = iVar22 + 0x25;\n        pbVar32 = (byte *)((int)unaff_s6 + -5);\n        if (bVar26 != 0x5a) {\n          if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\n        iVar23 = *(int *)(puVar37 + 0x8839c);\n        if (3 < (int)pbVar32) {\n          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n          if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);\n          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);\n          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);\n          unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);\n          uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);\n          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);\n          *pbVar18 = (byte)((uint)uVar12 >> 0x10);\n          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);\n          *pbVar30 = (byte)uVar12;\n          (**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);\nLAB_00089674:\n        while (iVar11 == 0) {\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }\n        FUN_000887e0(iVar22,iVar11);\n        (**(code **)(puVar37 + 0x88394))(iVar11);\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n      uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11);\nLAB_000890b4:\n      FUN_000887e0(iVar22,uVar12);\n      (**(code **)(puVar37 + 0x88394))(uVar12);\n      unaff_s5 = pbVar28;\nLAB_000890e0:\n      *(undefined4 *)(iVar22 + 0x10) = 0;\n    } while( true );\n  }" { (labeled_statement "LAB_00089094:\n    *(undefined4 *)(iVar22 + 0x10) = 0x709;" statement_identifier : (expression_statement "*(undefined4 *)(iVar22 + 0x10) = 0x709;" (assignment_expression "*(undefined4 *)(iVar22 + 0x10) = 0x709" (pointer_expression "*(undefined4 *)(iVar22 + 0x10)" * (cast_expression "(undefined4 *)(iVar22 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x10)" ( (binary_expression "iVar22 + 0x10" identifier + number_literal) )))) = number_literal) ;)) (labeled_statement "LAB_000890e4:\n    do {\n      if (local_64 == *piVar39) {\n        return;\n      }\n      (**(code **)(puVar37 + 0x8936c))();\n      pbVar28 = unaff_s5;\nLAB_00089df8:\n      local_68 = *local_b0;\n      FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n      (**(code **)(puVar37 + 0x88394))(unaff_s6);\n      *(undefined4 *)(iVar22 + 0x4030) = 0;\nLAB_000893ac:\n      pbVar32 = pbVar28 + (int)pbVar34;\n      unaff_s5 = pbVar28;\n      do {\n        pbVar34 = pbVar32 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar32) {\n          *(undefined4 *)(iVar22 + 0x10) = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar11 = *(int *)(iVar22 + 0x4030);\n        pbVar28 = unaff_s5 + 1;\n        iVar23 = iVar11 + 1;\n        bVar26 = *unaff_s5;\n        in_t3 = (uint)bVar26;\n        *(int *)(iVar22 + 0x4030) = iVar23;\n        *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n        unaff_s5 = pbVar28;\n      } while (iVar23 < 4);\n      iVar11 = (**(code **)(puVar37 + 0x884fc))(*(int *)(iVar22 + 0x20) + 4);\n      *(int *)(iVar22 + 0x1c) = iVar11;\n      if (iVar11 - 5U < 0x400c) {\n        unaff_s6 = *(byte ******)(iVar22 + 0x4030);\n        while (unaff_s5 = pbVar28, (int)unaff_s6 < iVar11) {\nLAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar11 = *(int *)(iVar22 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar26 = *pbVar28;\n          pbVar28 = pbVar28 + 1;\n          unaff_s6 = (byte *****)(iVar11 + 1);\n          *(byte ******)(iVar22 + 0x4030) = unaff_s6;\n          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n          iVar11 = *(int *)(iVar22 + 0x1c);\n        }\n        bVar26 = *(byte *)(iVar22 + 0x24);\n        iVar11 = iVar22 + 0x25;\n        pbVar32 = (byte *)((int)unaff_s6 + -5);\n        if (bVar26 != 0x5a) {\n          if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\n        iVar23 = *(int *)(puVar37 + 0x8839c);\n        if (3 < (int)pbVar32) {\n          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n          if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);\n          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);\n          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);\n          unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);\n          uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);\n          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);\n          *pbVar18 = (byte)((uint)uVar12 >> 0x10);\n          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);\n          *pbVar30 = (byte)uVar12;\n          (**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);\nLAB_00089674:\n        while (iVar11 == 0) {\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }\n        FUN_000887e0(iVar22,iVar11);\n        (**(code **)(puVar37 + 0x88394))(iVar11);\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n      uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11);\nLAB_000890b4:\n      FUN_000887e0(iVar22,uVar12);\n      (**(code **)(puVar37 + 0x88394))(uVar12);\n      unaff_s5 = pbVar28;\nLAB_000890e0:\n      *(undefined4 *)(iVar22 + 0x10) = 0;\n    } while( true );" statement_identifier : (do_statement "do {\n      if (local_64 == *piVar39) {\n        return;\n      }\n      (**(code **)(puVar37 + 0x8936c))();\n      pbVar28 = unaff_s5;\nLAB_00089df8:\n      local_68 = *local_b0;\n      FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n      (**(code **)(puVar37 + 0x88394))(unaff_s6);\n      *(undefined4 *)(iVar22 + 0x4030) = 0;\nLAB_000893ac:\n      pbVar32 = pbVar28 + (int)pbVar34;\n      unaff_s5 = pbVar28;\n      do {\n        pbVar34 = pbVar32 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar32) {\n          *(undefined4 *)(iVar22 + 0x10) = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar11 = *(int *)(iVar22 + 0x4030);\n        pbVar28 = unaff_s5 + 1;\n        iVar23 = iVar11 + 1;\n        bVar26 = *unaff_s5;\n        in_t3 = (uint)bVar26;\n        *(int *)(iVar22 + 0x4030) = iVar23;\n        *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n        unaff_s5 = pbVar28;\n      } while (iVar23 < 4);\n      iVar11 = (**(code **)(puVar37 + 0x884fc))(*(int *)(iVar22 + 0x20) + 4);\n      *(int *)(iVar22 + 0x1c) = iVar11;\n      if (iVar11 - 5U < 0x400c) {\n        unaff_s6 = *(byte ******)(iVar22 + 0x4030);\n        while (unaff_s5 = pbVar28, (int)unaff_s6 < iVar11) {\nLAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar11 = *(int *)(iVar22 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar26 = *pbVar28;\n          pbVar28 = pbVar28 + 1;\n          unaff_s6 = (byte *****)(iVar11 + 1);\n          *(byte ******)(iVar22 + 0x4030) = unaff_s6;\n          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n          iVar11 = *(int *)(iVar22 + 0x1c);\n        }\n        bVar26 = *(byte *)(iVar22 + 0x24);\n        iVar11 = iVar22 + 0x25;\n        pbVar32 = (byte *)((int)unaff_s6 + -5);\n        if (bVar26 != 0x5a) {\n          if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\n        iVar23 = *(int *)(puVar37 + 0x8839c);\n        if (3 < (int)pbVar32) {\n          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n          if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);\n          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);\n          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);\n          unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);\n          uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);\n          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);\n          *pbVar18 = (byte)((uint)uVar12 >> 0x10);\n          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);\n          *pbVar30 = (byte)uVar12;\n          (**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);\nLAB_00089674:\n        while (iVar11 == 0) {\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }\n        FUN_000887e0(iVar22,iVar11);\n        (**(code **)(puVar37 + 0x88394))(iVar11);\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n      uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11);\nLAB_000890b4:\n      FUN_000887e0(iVar22,uVar12);\n      (**(code **)(puVar37 + 0x88394))(uVar12);\n      unaff_s5 = pbVar28;\nLAB_000890e0:\n      *(undefined4 *)(iVar22 + 0x10) = 0;\n    } while( true );" do (compound_statement "{\n      if (local_64 == *piVar39) {\n        return;\n      }\n      (**(code **)(puVar37 + 0x8936c))();\n      pbVar28 = unaff_s5;\nLAB_00089df8:\n      local_68 = *local_b0;\n      FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n      (**(code **)(puVar37 + 0x88394))(unaff_s6);\n      *(undefined4 *)(iVar22 + 0x4030) = 0;\nLAB_000893ac:\n      pbVar32 = pbVar28 + (int)pbVar34;\n      unaff_s5 = pbVar28;\n      do {\n        pbVar34 = pbVar32 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar32) {\n          *(undefined4 *)(iVar22 + 0x10) = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar11 = *(int *)(iVar22 + 0x4030);\n        pbVar28 = unaff_s5 + 1;\n        iVar23 = iVar11 + 1;\n        bVar26 = *unaff_s5;\n        in_t3 = (uint)bVar26;\n        *(int *)(iVar22 + 0x4030) = iVar23;\n        *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n        unaff_s5 = pbVar28;\n      } while (iVar23 < 4);\n      iVar11 = (**(code **)(puVar37 + 0x884fc))(*(int *)(iVar22 + 0x20) + 4);\n      *(int *)(iVar22 + 0x1c) = iVar11;\n      if (iVar11 - 5U < 0x400c) {\n        unaff_s6 = *(byte ******)(iVar22 + 0x4030);\n        while (unaff_s5 = pbVar28, (int)unaff_s6 < iVar11) {\nLAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar11 = *(int *)(iVar22 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar26 = *pbVar28;\n          pbVar28 = pbVar28 + 1;\n          unaff_s6 = (byte *****)(iVar11 + 1);\n          *(byte ******)(iVar22 + 0x4030) = unaff_s6;\n          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n          iVar11 = *(int *)(iVar22 + 0x1c);\n        }\n        bVar26 = *(byte *)(iVar22 + 0x24);\n        iVar11 = iVar22 + 0x25;\n        pbVar32 = (byte *)((int)unaff_s6 + -5);\n        if (bVar26 != 0x5a) {\n          if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\n        iVar23 = *(int *)(puVar37 + 0x8839c);\n        if (3 < (int)pbVar32) {\n          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n          if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);\n          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);\n          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);\n          unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);\n          uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);\n          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);\n          *pbVar18 = (byte)((uint)uVar12 >> 0x10);\n          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);\n          *pbVar30 = (byte)uVar12;\n          (**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);\nLAB_00089674:\n        while (iVar11 == 0) {\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }\n        FUN_000887e0(iVar22,iVar11);\n        (**(code **)(puVar37 + 0x88394))(iVar11);\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n      uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11);\nLAB_000890b4:\n      FUN_000887e0(iVar22,uVar12);\n      (**(code **)(puVar37 + 0x88394))(uVar12);\n      unaff_s5 = pbVar28;\nLAB_000890e0:\n      *(undefined4 *)(iVar22 + 0x10) = 0;\n    }" { (if_statement "if (local_64 == *piVar39) {\n        return;\n      }" if (parenthesized_expression "(local_64 == *piVar39)" ( (binary_expression "local_64 == *piVar39" identifier == (pointer_expression "*piVar39" * identifier)) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "(**(code **)(puVar37 + 0x8936c))();" (call_expression "(**(code **)(puVar37 + 0x8936c))()" (parenthesized_expression "(**(code **)(puVar37 + 0x8936c))" ( (pointer_expression "**(code **)(puVar37 + 0x8936c)" * (pointer_expression "*(code **)(puVar37 + 0x8936c)" * (cast_expression "(code **)(puVar37 + 0x8936c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8936c)" ( (binary_expression "puVar37 + 0x8936c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pbVar28 = unaff_s5;" (assignment_expression "pbVar28 = unaff_s5" identifier = identifier) ;) (labeled_statement "LAB_00089df8:\n      local_68 = *local_b0;" statement_identifier : (expression_statement "local_68 = *local_b0;" (assignment_expression "local_68 = *local_b0" identifier = (pointer_expression "*local_b0" * identifier)) ;)) (expression_statement "FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);" (call_expression "FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc)" identifier (argument_list "(iVar22 + 8,100,&local_68,4,0,0xc)" ( (binary_expression "iVar22 + 8" identifier + number_literal) , number_literal , (pointer_expression "&local_68" & identifier) , number_literal , number_literal , number_literal ))) ;) (expression_statement "(**(code **)(puVar37 + 0x88394))(unaff_s6);" (call_expression "(**(code **)(puVar37 + 0x88394))(unaff_s6)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" ( (pointer_expression "**(code **)(puVar37 + 0x88394)" * (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(unaff_s6)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" * (cast_expression "(undefined4 *)(iVar22 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_000893ac:\n      pbVar32 = pbVar28 + (int)pbVar34;" statement_identifier : (expression_statement "pbVar32 = pbVar28 + (int)pbVar34;" (assignment_expression "pbVar32 = pbVar28 + (int)pbVar34" identifier = (binary_expression "pbVar28 + (int)pbVar34" identifier + (cast_expression "(int)pbVar34" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (expression_statement "unaff_s5 = pbVar28;" (assignment_expression "unaff_s5 = pbVar28" identifier = identifier) ;) (do_statement "do {\n        pbVar34 = pbVar32 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar32) {\n          *(undefined4 *)(iVar22 + 0x10) = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar11 = *(int *)(iVar22 + 0x4030);\n        pbVar28 = unaff_s5 + 1;\n        iVar23 = iVar11 + 1;\n        bVar26 = *unaff_s5;\n        in_t3 = (uint)bVar26;\n        *(int *)(iVar22 + 0x4030) = iVar23;\n        *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n        unaff_s5 = pbVar28;\n      } while (iVar23 < 4);" do (compound_statement "{\n        pbVar34 = pbVar32 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar32) {\n          *(undefined4 *)(iVar22 + 0x10) = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar11 = *(int *)(iVar22 + 0x4030);\n        pbVar28 = unaff_s5 + 1;\n        iVar23 = iVar11 + 1;\n        bVar26 = *unaff_s5;\n        in_t3 = (uint)bVar26;\n        *(int *)(iVar22 + 0x4030) = iVar23;\n        *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n        unaff_s5 = pbVar28;\n      }" { (expression_statement "pbVar34 = pbVar32 + (-1 - (int)unaff_s5);" (assignment_expression "pbVar34 = pbVar32 + (-1 - (int)unaff_s5)" identifier = (binary_expression "pbVar32 + (-1 - (int)unaff_s5)" identifier + (parenthesized_expression "(-1 - (int)unaff_s5)" ( (binary_expression "-1 - (int)unaff_s5" number_literal - (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (unaff_s5 == pbVar32) {\n          *(undefined4 *)(iVar22 + 0x10) = 0x72e;\n          goto LAB_000890e4;\n        }" if (parenthesized_expression "(unaff_s5 == pbVar32)" ( (binary_expression "unaff_s5 == pbVar32" identifier == identifier) )) (compound_statement "{\n          *(undefined4 *)(iVar22 + 0x10) = 0x72e;\n          goto LAB_000890e4;\n        }" { (expression_statement "*(undefined4 *)(iVar22 + 0x10) = 0x72e;" (assignment_expression "*(undefined4 *)(iVar22 + 0x10) = 0x72e" (pointer_expression "*(undefined4 *)(iVar22 + 0x10)" * (cast_expression "(undefined4 *)(iVar22 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x10)" ( (binary_expression "iVar22 + 0x10" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000890e4;" goto statement_identifier ;) })) (expression_statement "iVar11 = *(int *)(iVar22 + 0x4030);" (assignment_expression "iVar11 = *(int *)(iVar22 + 0x4030)" identifier = (pointer_expression "*(int *)(iVar22 + 0x4030)" * (cast_expression "(int *)(iVar22 + 0x4030)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) ))))) ;) (expression_statement "pbVar28 = unaff_s5 + 1;" (assignment_expression "pbVar28 = unaff_s5 + 1" identifier = (binary_expression "unaff_s5 + 1" identifier + number_literal)) ;) (expression_statement "iVar23 = iVar11 + 1;" (assignment_expression "iVar23 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "bVar26 = *unaff_s5;" (assignment_expression "bVar26 = *unaff_s5" identifier = (pointer_expression "*unaff_s5" * identifier)) ;) (expression_statement "in_t3 = (uint)bVar26;" (assignment_expression "in_t3 = (uint)bVar26" identifier = (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(int *)(iVar22 + 0x4030) = iVar23;" (assignment_expression "*(int *)(iVar22 + 0x4030) = iVar23" (pointer_expression "*(int *)(iVar22 + 0x4030)" * (cast_expression "(int *)(iVar22 + 0x4030)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)(iVar22 + iVar11 + 0x20) = bVar26;" (assignment_expression "*(byte *)(iVar22 + iVar11 + 0x20) = bVar26" (pointer_expression "*(byte *)(iVar22 + iVar11 + 0x20)" * (cast_expression "(byte *)(iVar22 + iVar11 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + iVar11 + 0x20)" ( (binary_expression "iVar22 + iVar11 + 0x20" (binary_expression "iVar22 + iVar11" identifier + identifier) + number_literal) )))) = identifier) ;) (expression_statement "unaff_s5 = pbVar28;" (assignment_expression "unaff_s5 = pbVar28" identifier = identifier) ;) }) while (parenthesized_expression "(iVar23 < 4)" ( (binary_expression "iVar23 < 4" identifier < number_literal) )) ;) (expression_statement "iVar11 = (**(code **)(puVar37 + 0x884fc))(*(int *)(iVar22 + 0x20) + 4);" (assignment_expression "iVar11 = (**(code **)(puVar37 + 0x884fc))(*(int *)(iVar22 + 0x20) + 4)" identifier = (call_expression "(**(code **)(puVar37 + 0x884fc))(*(int *)(iVar22 + 0x20) + 4)" (parenthesized_expression "(**(code **)(puVar37 + 0x884fc))" ( (pointer_expression "**(code **)(puVar37 + 0x884fc)" * (pointer_expression "*(code **)(puVar37 + 0x884fc)" * (cast_expression "(code **)(puVar37 + 0x884fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x884fc)" ( (binary_expression "puVar37 + 0x884fc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar22 + 0x20) + 4)" ( (binary_expression "*(int *)(iVar22 + 0x20) + 4" (pointer_expression "*(int *)(iVar22 + 0x20)" * (cast_expression "(int *)(iVar22 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x20)" ( (binary_expression "iVar22 + 0x20" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "*(int *)(iVar22 + 0x1c) = iVar11;" (assignment_expression "*(int *)(iVar22 + 0x1c) = iVar11" (pointer_expression "*(int *)(iVar22 + 0x1c)" * (cast_expression "(int *)(iVar22 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x1c)" ( (binary_expression "iVar22 + 0x1c" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar11 - 5U < 0x400c) {\n        unaff_s6 = *(byte ******)(iVar22 + 0x4030);\n        while (unaff_s5 = pbVar28, (int)unaff_s6 < iVar11) {\nLAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar11 = *(int *)(iVar22 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar26 = *pbVar28;\n          pbVar28 = pbVar28 + 1;\n          unaff_s6 = (byte *****)(iVar11 + 1);\n          *(byte ******)(iVar22 + 0x4030) = unaff_s6;\n          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n          iVar11 = *(int *)(iVar22 + 0x1c);\n        }\n        bVar26 = *(byte *)(iVar22 + 0x24);\n        iVar11 = iVar22 + 0x25;\n        pbVar32 = (byte *)((int)unaff_s6 + -5);\n        if (bVar26 != 0x5a) {\n          if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\n        iVar23 = *(int *)(puVar37 + 0x8839c);\n        if (3 < (int)pbVar32) {\n          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n          if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);\n          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);\n          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);\n          unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);\n          uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);\n          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);\n          *pbVar18 = (byte)((uint)uVar12 >> 0x10);\n          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);\n          *pbVar30 = (byte)uVar12;\n          (**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);\nLAB_00089674:\n        while (iVar11 == 0) {\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }\n        FUN_000887e0(iVar22,iVar11);\n        (**(code **)(puVar37 + 0x88394))(iVar11);\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }" if (parenthesized_expression "(iVar11 - 5U < 0x400c)" ( (binary_expression "iVar11 - 5U < 0x400c" (binary_expression "iVar11 - 5U" identifier - number_literal) < number_literal) )) (compound_statement "{\n        unaff_s6 = *(byte ******)(iVar22 + 0x4030);\n        while (unaff_s5 = pbVar28, (int)unaff_s6 < iVar11) {\nLAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar11 = *(int *)(iVar22 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar26 = *pbVar28;\n          pbVar28 = pbVar28 + 1;\n          unaff_s6 = (byte *****)(iVar11 + 1);\n          *(byte ******)(iVar22 + 0x4030) = unaff_s6;\n          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n          iVar11 = *(int *)(iVar22 + 0x1c);\n        }\n        bVar26 = *(byte *)(iVar22 + 0x24);\n        iVar11 = iVar22 + 0x25;\n        pbVar32 = (byte *)((int)unaff_s6 + -5);\n        if (bVar26 != 0x5a) {\n          if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\n        iVar23 = *(int *)(puVar37 + 0x8839c);\n        if (3 < (int)pbVar32) {\n          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n          if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);\n          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);\n          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);\n          unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);\n          uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);\n          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);\n          *pbVar18 = (byte)((uint)uVar12 >> 0x10);\n          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);\n          *pbVar30 = (byte)uVar12;\n          (**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);\nLAB_00089674:\n        while (iVar11 == 0) {\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }\n        FUN_000887e0(iVar22,iVar11);\n        (**(code **)(puVar37 + 0x88394))(iVar11);\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }" { (expression_statement "unaff_s6 = *(byte ******)(iVar22 + 0x4030);" (assignment_expression "unaff_s6 = *(byte ******)(iVar22 + 0x4030)" identifier = (pointer_expression "*(byte ******)(iVar22 + 0x4030)" * (cast_expression "(byte ******)(iVar22 + 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 "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) ))))) ;) (while_statement "while (unaff_s5 = pbVar28, (int)unaff_s6 < iVar11) {\nLAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar11 = *(int *)(iVar22 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar26 = *pbVar28;\n          pbVar28 = pbVar28 + 1;\n          unaff_s6 = (byte *****)(iVar11 + 1);\n          *(byte ******)(iVar22 + 0x4030) = unaff_s6;\n          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n          iVar11 = *(int *)(iVar22 + 0x1c);\n        }" while (parenthesized_expression "(unaff_s5 = pbVar28, (int)unaff_s6 < iVar11)" ( (comma_expression "unaff_s5 = pbVar28, (int)unaff_s6 < iVar11" (assignment_expression "unaff_s5 = pbVar28" identifier = identifier) , (binary_expression "(int)unaff_s6 < iVar11" (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier) < identifier)) )) (compound_statement "{\nLAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar11 = *(int *)(iVar22 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar26 = *pbVar28;\n          pbVar28 = pbVar28 + 1;\n          unaff_s6 = (byte *****)(iVar11 + 1);\n          *(byte ******)(iVar22 + 0x4030) = unaff_s6;\n          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n          iVar11 = *(int *)(iVar22 + 0x1c);\n        }" { (labeled_statement "LAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }" statement_identifier : (if_statement "if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\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 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }" { (expression_statement "*(undefined4 *)(iVar22 + 0x10) = 0x73b;" (assignment_expression "*(undefined4 *)(iVar22 + 0x10) = 0x73b" (pointer_expression "*(undefined4 *)(iVar22 + 0x10)" * (cast_expression "(undefined4 *)(iVar22 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x10)" ( (binary_expression "iVar22 + 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_000890e4;" goto statement_identifier ;) }))) (expression_statement "iVar11 = *(int *)(iVar22 + 0x4030);" (assignment_expression "iVar11 = *(int *)(iVar22 + 0x4030)" identifier = (pointer_expression "*(int *)(iVar22 + 0x4030)" * (cast_expression "(int *)(iVar22 + 0x4030)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) ))))) ;) (expression_statement "pbVar34 = pbVar34 + -1;" (assignment_expression "pbVar34 = pbVar34 + -1" identifier = (binary_expression "pbVar34 + -1" identifier + number_literal)) ;) (expression_statement "bVar26 = *pbVar28;" (assignment_expression "bVar26 = *pbVar28" identifier = (pointer_expression "*pbVar28" * identifier)) ;) (expression_statement "pbVar28 = pbVar28 + 1;" (assignment_expression "pbVar28 = pbVar28 + 1" identifier = (binary_expression "pbVar28 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s6 = (byte *****)(iVar11 + 1);" (assignment_expression "unaff_s6 = (byte *****)(iVar11 + 1)" identifier = (cast_expression "(byte *****)(iVar11 + 1)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(iVar11 + 1)" ( (binary_expression "iVar11 + 1" identifier + number_literal) )))) ;) (expression_statement "*(byte ******)(iVar22 + 0x4030) = unaff_s6;" (assignment_expression "*(byte ******)(iVar22 + 0x4030) = unaff_s6" (pointer_expression "*(byte ******)(iVar22 + 0x4030)" * (cast_expression "(byte ******)(iVar22 + 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 "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)(iVar22 + iVar11 + 0x20) = bVar26;" (assignment_expression "*(byte *)(iVar22 + iVar11 + 0x20) = bVar26" (pointer_expression "*(byte *)(iVar22 + iVar11 + 0x20)" * (cast_expression "(byte *)(iVar22 + iVar11 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + iVar11 + 0x20)" ( (binary_expression "iVar22 + iVar11 + 0x20" (binary_expression "iVar22 + iVar11" identifier + identifier) + number_literal) )))) = identifier) ;) (expression_statement "iVar11 = *(int *)(iVar22 + 0x1c);" (assignment_expression "iVar11 = *(int *)(iVar22 + 0x1c)" identifier = (pointer_expression "*(int *)(iVar22 + 0x1c)" * (cast_expression "(int *)(iVar22 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x1c)" ( (binary_expression "iVar22 + 0x1c" identifier + number_literal) ))))) ;) })) (expression_statement "bVar26 = *(byte *)(iVar22 + 0x24);" (assignment_expression "bVar26 = *(byte *)(iVar22 + 0x24)" identifier = (pointer_expression "*(byte *)(iVar22 + 0x24)" * (cast_expression "(byte *)(iVar22 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x24)" ( (binary_expression "iVar22 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = iVar22 + 0x25;" (assignment_expression "iVar11 = iVar22 + 0x25" identifier = (binary_expression "iVar22 + 0x25" identifier + number_literal)) ;) (expression_statement "pbVar32 = (byte *)((int)unaff_s6 + -5);" (assignment_expression "pbVar32 = (byte *)((int)unaff_s6 + -5)" identifier = (cast_expression "(byte *)((int)unaff_s6 + -5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s6 + -5)" ( (binary_expression "(int)unaff_s6 + -5" (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (bVar26 != 0x5a) {\n          if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }" if (parenthesized_expression "(bVar26 != 0x5a)" ( (binary_expression "bVar26 != 0x5a" identifier != number_literal) )) (compound_statement "{\n          if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }" { (if_statement "if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }" if (parenthesized_expression "(bVar26 < 0x5b)" ( (binary_expression "bVar26 < 0x5b" identifier < number_literal) )) (compound_statement "{\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }" { (if_statement "if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }" if (parenthesized_expression "(bVar26 != 2)" ( (binary_expression "bVar26 != 2" identifier != number_literal) )) (compound_statement "{\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }" { (if_statement "if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }" if (parenthesized_expression "(2 < bVar26)" ( (binary_expression "2 < bVar26" number_literal < identifier) )) (compound_statement "{\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }" { (if_statement "if (bVar26 == 4) goto LAB_00089714;" if (parenthesized_expression "(bVar26 == 4)" ( (binary_expression "bVar26 == 4" identifier == number_literal) )) (goto_statement "goto LAB_00089714;" goto statement_identifier ;)) (if_statement "if (bVar26 != 0x50) goto LAB_0008965c;" if (parenthesized_expression "(bVar26 != 0x50)" ( (binary_expression "bVar26 != 0x50" identifier != number_literal) )) (goto_statement "goto LAB_0008965c;" goto statement_identifier ;)) (expression_statement "iVar23 = *(int *)(puVar37 + 0x8839c);" (assignment_expression "iVar23 = *(int *)(puVar37 + 0x8839c)" identifier = (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) ))))) ;) (expression_statement "pppppbVar33 = pppppbVar36;" (assignment_expression "pppppbVar33 = pppppbVar36" identifier = identifier) ;) (if_statement "if ((int)pbVar32 < 4) goto LAB_000896fc;" if (parenthesized_expression "((int)pbVar32 < 4)" ( (binary_expression "(int)pbVar32 < 4" (cast_expression "(int)pbVar32" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_000896fc;" goto statement_identifier ;)) (expression_statement "pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);" (assignment_expression "pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0)" identifier = (cast_expression "(byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(*(int *)(puVar37 + 0x88acc) + 0x79c0)" ( (binary_expression "*(int *)(puVar37 + 0x88acc) + 0x79c0" (pointer_expression "*(int *)(puVar37 + 0x88acc)" * (cast_expression "(int *)(puVar37 + 0x88acc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x88acc)" ( (binary_expression "puVar37 + 0x88acc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);" (assignment_expression "iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0)" identifier = (call_expression "FUN_000879c0(iVar11,pbVar32,&local_90,0)" identifier (argument_list "(iVar11,pbVar32,&local_90,0)" ( identifier , identifier , (pointer_expression "&local_90" & identifier) , number_literal )))) ;) (expression_statement "ppppbVar13 = local_90;" (assignment_expression "ppppbVar13 = local_90" identifier = identifier) ;) (if_statement "if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;" if (parenthesized_expression "((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0))" ( (binary_expression "(iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)" (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) || (parenthesized_expression "((byte *****)local_90 == (byte *****)0x0)" ( (binary_expression "(byte *****)local_90 == (byte *****)0x0" (cast_expression "(byte *****)local_90" ( (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_000896f8;" goto statement_identifier ;)) (expression_statement "iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);" (assignment_expression "iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8)" identifier = (call_expression "(**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8)" (parenthesized_expression "(**(code **)(puVar37 + 0x8953c))" ( (pointer_expression "**(code **)(puVar37 + 0x8953c)" * (pointer_expression "*(code **)(puVar37 + 0x8953c)" * (cast_expression "(code **)(puVar37 + 0x8953c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8953c)" ( (binary_expression "puVar37 + 0x8953c" identifier + number_literal) ))))) )) (argument_list "(local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8)" ( identifier , (binary_expression "*(int *)(puVar37 + 0x8839c) + -0x30e8" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }" if (parenthesized_expression "(iVar23 != 0)" ( (binary_expression "iVar23 != 0" identifier != number_literal) )) (compound_statement "{\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }" { (expression_statement "iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);" (assignment_expression "iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c)" identifier = (call_expression "(**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c)" (parenthesized_expression "(**(code **)(puVar37 + 0x8953c))" ( (pointer_expression "**(code **)(puVar37 + 0x8953c)" * (pointer_expression "*(code **)(puVar37 + 0x8953c)" * (cast_expression "(code **)(puVar37 + 0x8953c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8953c)" ( (binary_expression "puVar37 + 0x8953c" identifier + number_literal) ))))) )) (argument_list "(ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c)" ( identifier , (binary_expression "*(int *)(puVar37 + 0x8839c) + -0x317c" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pcVar38 = *(code **)(puVar37 + 0x88394);" (assignment_expression "pcVar38 = *(code **)(puVar37 + 0x88394)" identifier = (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) ;) (expression_statement "pppppbVar36 = pppppbVar33;" (assignment_expression "pppppbVar36 = pppppbVar33" identifier = identifier) ;) (if_statement "if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }" if (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) (compound_statement "{\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }" { (expression_statement "(*pcVar38)(ppppbVar13);" (call_expression "(*pcVar38)(ppppbVar13)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(ppppbVar13)" ( identifier ))) ;) (expression_statement "iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);" (assignment_expression "iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90)" identifier = (call_expression "FUN_000879c0(iVar11,pbVar32,0,&local_90)" identifier (argument_list "(iVar11,pbVar32,0,&local_90)" ( identifier , identifier , number_literal , (pointer_expression "&local_90" & identifier) )))) ;) (expression_statement "pppppbVar35 = (byte *****)local_90;" (assignment_expression "pppppbVar35 = (byte *****)local_90" identifier = (cast_expression "(byte *****)local_90" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }" if (parenthesized_expression "(((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32))" ( (binary_expression "((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)" (parenthesized_expression "((iVar23 != 0) && (-1 < (int)local_90))" ( (binary_expression "(iVar23 != 0) && (-1 < (int)local_90)" (parenthesized_expression "(iVar23 != 0)" ( (binary_expression "iVar23 != 0" identifier != number_literal) )) && (parenthesized_expression "(-1 < (int)local_90)" ( (binary_expression "-1 < (int)local_90" number_literal < (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) && (parenthesized_expression "(pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)" ( (comma_expression "pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32" (assignment_expression "pbVar30 = (byte *)((int)local_90 + 1)" identifier = (cast_expression "(byte *)((int)local_90 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 1)" ( (binary_expression "(int)local_90 + 1" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (binary_expression "(int)local_90 < (int)pbVar32" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pbVar32" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }" { (expression_statement "local_b0 = (byte ****)((int)local_90 + iVar11);" (assignment_expression "local_b0 = (byte ****)((int)local_90 + iVar11)" identifier = (cast_expression "(byte ****)((int)local_90 + iVar11)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)local_90 + iVar11)" ( (binary_expression "(int)local_90 + iVar11" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "iVar21 = (int)pbVar32 - (int)pbVar30;" (assignment_expression "iVar21 = (int)pbVar32 - (int)pbVar30" identifier = (binary_expression "(int)pbVar32 - (int)pbVar30" (cast_expression "(int)pbVar32" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar30" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "bVar26 = *(byte *)local_b0;" (assignment_expression "bVar26 = *(byte *)local_b0" identifier = (pointer_expression "*(byte *)local_b0" * (cast_expression "(byte *)local_b0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }" if (parenthesized_expression "((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))" ( (binary_expression "(iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)" (parenthesized_expression "(iVar21 < 4)" ( (binary_expression "iVar21 < 4" identifier < number_literal) )) || (parenthesized_expression "(iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)" ( (comma_expression "iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0" (assignment_expression "iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90)" identifier = (call_expression "FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90)" identifier (argument_list "(pbVar30 + iVar11,iVar21,0,&local_90)" ( (binary_expression "pbVar30 + iVar11" identifier + identifier) , identifier , number_literal , (pointer_expression "&local_90" & identifier) )))) , (binary_expression "iVar23 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }" { (expression_statement "iVar23 = *(int *)(puVar37 + 0x8839c);" (assignment_expression "iVar23 = *(int *)(puVar37 + 0x8839c)" identifier = (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) ))))) ;) (if_statement "if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }" if (parenthesized_expression "((int)pppppbVar35 < (int)(unaff_s6 + -2))" ( (binary_expression "(int)pppppbVar35 < (int)(unaff_s6 + -2)" (cast_expression "(int)pppppbVar35" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)(unaff_s6 + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(unaff_s6 + -2)" ( (binary_expression "unaff_s6 + -2" identifier + number_literal) )))) )) (compound_statement "{\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }" { (if_statement "if (iVar21 >= 4) goto LAB_000892a4;" if (parenthesized_expression "(iVar21 >= 4)" ( (binary_expression "iVar21 >= 4" identifier >= number_literal) )) (goto_statement "goto LAB_000892a4;" goto statement_identifier ;)) (labeled_statement "LAB_00089eec:\n                          uVar12 = 0x5a7;" statement_identifier : (expression_statement "uVar12 = 0x5a7;" (assignment_expression "uVar12 = 0x5a7" identifier = number_literal) ;)) (goto_statement "goto LAB_00089ef0;" goto statement_identifier ;) })) }) (else_clause "else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }" else (compound_statement "{\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }" { (expression_statement "pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);" (assignment_expression "pppppbVar35 = (byte *****)(pbVar30 + (int)local_90)" identifier = (cast_expression "(byte *****)(pbVar30 + (int)local_90)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(pbVar30 + (int)local_90)" ( (binary_expression "pbVar30 + (int)local_90" identifier + (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar23 = *(int *)(puVar37 + 0x8839c);" (assignment_expression "iVar23 = *(int *)(puVar37 + 0x8839c)" identifier = (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) ))))) ;) (if_statement "if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }" if (parenthesized_expression "(-1 < (int)pppppbVar35)" ( (binary_expression "-1 < (int)pppppbVar35" number_literal < (cast_expression "(int)pppppbVar35" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }" { (expression_statement "pcVar38 = *(code **)(puVar37 + 0x8844c);" (assignment_expression "pcVar38 = *(code **)(puVar37 + 0x8844c)" identifier = (pointer_expression "*(code **)(puVar37 + 0x8844c)" * (cast_expression "(code **)(puVar37 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8844c)" ( (binary_expression "puVar37 + 0x8844c" identifier + number_literal) ))))) ;) (if_statement "if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;" if (parenthesized_expression "((int)(unaff_s6 + -2) <= (int)pppppbVar35)" ( (binary_expression "(int)(unaff_s6 + -2) <= (int)pppppbVar35" (cast_expression "(int)(unaff_s6 + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(unaff_s6 + -2)" ( (binary_expression "unaff_s6 + -2" identifier + number_literal) ))) <= (cast_expression "(int)pppppbVar35" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00089700;" goto statement_identifier ;)) (labeled_statement "LAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);" statement_identifier : (expression_statement "iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);" (assignment_expression "iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0)" identifier = (call_expression "FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0)" identifier (argument_list "(pbVar30 + iVar11,iVar21,&local_90,0)" ( (binary_expression "pbVar30 + iVar11" identifier + identifier) , identifier , (pointer_expression "&local_90" & identifier) , number_literal )))) ;)) (expression_statement "pppppbVar36 = (byte *****)local_90;" (assignment_expression "pppppbVar36 = (byte *****)local_90" identifier = (cast_expression "(byte *****)local_90" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;" if (parenthesized_expression "((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0))" ( (binary_expression "(iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)" (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) || (parenthesized_expression "(pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)" ( (comma_expression "pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0" (assignment_expression "pppppbVar33 = (byte *****)local_90" identifier = (cast_expression "(byte *****)local_90" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) , (binary_expression "(byte *****)local_90 == (byte *****)0x0" (cast_expression "(byte *****)local_90" ( (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_00089eec;" goto statement_identifier ;)) (expression_statement "pbVar30 = (byte *)((int)pppppbVar35 + iVar11);" (assignment_expression "pbVar30 = (byte *)((int)pppppbVar35 + iVar11)" identifier = (cast_expression "(byte *)((int)pppppbVar35 + iVar11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar35 + iVar11)" ( (binary_expression "(int)pppppbVar35 + iVar11" (cast_expression "(int)pppppbVar35" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "bVar1 = *pbVar30;" (assignment_expression "bVar1 = *pbVar30" identifier = (pointer_expression "*pbVar30" * identifier)) ;) (expression_statement "bVar2 = pbVar30[1];" (assignment_expression "bVar2 = pbVar30[1]" identifier = (subscript_expression "pbVar30[1]" identifier [ number_literal ])) ;) (expression_statement "bVar3 = pbVar30[3];" (assignment_expression "bVar3 = pbVar30[3]" identifier = (subscript_expression "pbVar30[3]" identifier [ number_literal ])) ;) (expression_statement "bVar4 = pbVar30[2];" (assignment_expression "bVar4 = pbVar30[2]" identifier = (subscript_expression "pbVar30[2]" identifier [ number_literal ])) ;) (expression_statement "local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);" (assignment_expression "local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90)" identifier = (cast_expression "(byte ****)(**(code **)(puVar37 + 0x883c0))(local_90)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(**(code **)(puVar37 + 0x883c0))(local_90)" (parenthesized_expression "(**(code **)(puVar37 + 0x883c0))" ( (pointer_expression "**(code **)(puVar37 + 0x883c0)" * (pointer_expression "*(code **)(puVar37 + 0x883c0)" * (cast_expression "(code **)(puVar37 + 0x883c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x883c0)" ( (binary_expression "puVar37 + 0x883c0" identifier + number_literal) ))))) )) (argument_list "(local_90)" ( identifier ))))) ;) (expression_statement "local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);" (assignment_expression "local_8c = (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 "unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);" (assignment_expression "unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0)" identifier = (cast_expression "(byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,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 *)(iVar22 + 0x4048),&local_90,0)" identifier (argument_list "(*(undefined4 *)(iVar22 + 0x4048),&local_90,0)" ( (pointer_expression "*(undefined4 *)(iVar22 + 0x4048)" * (cast_expression "(undefined4 *)(iVar22 + 0x4048)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4048)" ( (binary_expression "iVar22 + 0x4048" identifier + number_literal) )))) , (pointer_expression "&local_90" & identifier) , number_literal ))))) ;) (expression_statement "(**(code **)(puVar37 + 0x88394))(local_90);" (call_expression "(**(code **)(puVar37 + 0x88394))(local_90)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" ( (pointer_expression "**(code **)(puVar37 + 0x88394)" * (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(local_90)" ( identifier ))) ;) (if_statement "if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }" if (parenthesized_expression "(unaff_s6 == (byte *****)0x0)" ( (binary_expression "unaff_s6 == (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 **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }" { (expression_statement "pcVar38 = *(code **)(puVar37 + 0x88394);" (assignment_expression "pcVar38 = *(code **)(puVar37 + 0x88394)" identifier = (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) ;) (if_statement "if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }" if (parenthesized_expression "(bVar26 != 0)" ( (binary_expression "bVar26 != 0" identifier != number_literal) )) (compound_statement "{\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }" { (expression_statement "FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);" (call_expression "FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc)" identifier (argument_list "(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc)" ( (binary_expression "iVar22 + 8" identifier + number_literal) , number_literal , (binary_expression "*(int *)(puVar37 + 0x8839c) + -0x4be4" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , number_literal ))) ;) (goto_statement "goto LAB_00089394;" goto statement_identifier ;) })) }) (else_clause "else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }" else (compound_statement "{\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }" { (expression_statement "bVar26 = *(byte *)local_b0;" (assignment_expression "bVar26 = *(byte *)local_b0" identifier = (pointer_expression "*(byte *)local_b0" * (cast_expression "(byte *)local_b0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(byte *)local_b0 = 1;" (assignment_expression "*(byte *)local_b0 = 1" (pointer_expression "*(byte *)local_b0" * (cast_expression "(byte *)local_b0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (if_statement "if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }" if (parenthesized_expression "(bVar26 == 0)" ( (binary_expression "bVar26 == 0" identifier == number_literal) )) (compound_statement "{\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }" { (expression_statement "iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;" (assignment_expression "iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4" identifier = (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x44b4" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                              iVar23 = 0;\n                            }" else (compound_statement "{\n                              iVar23 = 0;\n                            }" { (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" identifier = number_literal) ;) }))) (expression_statement "(**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);" (call_expression "(**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b70))" ( (pointer_expression "**(code **)(puVar37 + 0x88b70)" * (pointer_expression "*(code **)(puVar37 + 0x88b70)" * (cast_expression "(code **)(puVar37 + 0x88b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88b70)" ( (binary_expression "puVar37 + 0x88b70" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) )))) + number_literal) )))) , (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) )))) , number_literal , identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);" (call_expression "(**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b88))" ( (pointer_expression "**(code **)(puVar37 + 0x88b88)" * (pointer_expression "*(code **)(puVar37 + 0x88b88)" * (cast_expression "(code **)(puVar37 + 0x88b88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88b88)" ( (binary_expression "puVar37 + 0x88b88" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) )))) + number_literal) )))) , identifier ))) ;) (labeled_statement "LAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);" statement_identifier : (expression_statement "pcVar38 = *(code **)(puVar37 + 0x88394);" (assignment_expression "pcVar38 = *(code **)(puVar37 + 0x88394)" identifier = (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) ;)) }))) (expression_statement "(*pcVar38)(pppppbVar36);" (call_expression "(*pcVar38)(pppppbVar36)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(pppppbVar36)" ( identifier ))) ;) (goto_statement "goto LAB_000893a4;" goto statement_identifier ;) })) }))) (goto_statement "goto LAB_000896fc;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }" else (compound_statement "{\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }" { (labeled_statement "LAB_00089f10:\n                    (*pcVar38)();" statement_identifier : (expression_statement "(*pcVar38)();" (call_expression "(*pcVar38)()" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "()" ( ))) ;)) (expression_statement "iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);" (assignment_expression "iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90)" identifier = (call_expression "FUN_000879c0(iVar11,pbVar32,0,&local_90)" identifier (argument_list "(iVar11,pbVar32,0,&local_90)" ( identifier , identifier , number_literal , (pointer_expression "&local_90" & identifier) )))) ;) (expression_statement "pppppbVar33 = pppppbVar36;" (assignment_expression "pppppbVar33 = pppppbVar36" identifier = identifier) ;) (if_statement "if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }" if (parenthesized_expression "(((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32))" ( (binary_expression "((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)" (parenthesized_expression "((iVar23 != 0) && (-1 < (int)local_90))" ( (binary_expression "(iVar23 != 0) && (-1 < (int)local_90)" (parenthesized_expression "(iVar23 != 0)" ( (binary_expression "iVar23 != 0" identifier != number_literal) )) && (parenthesized_expression "(-1 < (int)local_90)" ( (binary_expression "-1 < (int)local_90" number_literal < (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) && (parenthesized_expression "((int)local_90 < (int)pbVar32)" ( (binary_expression "(int)local_90 < (int)pbVar32" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pbVar32" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }" { (if_statement "if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;" if (parenthesized_expression "(*(byte *)((int)local_90 + iVar11) == 0)" ( (binary_expression "*(byte *)((int)local_90 + iVar11) == 0" (pointer_expression "*(byte *)((int)local_90 + iVar11)" * (cast_expression "(byte *)((int)local_90 + iVar11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + iVar11)" ( (binary_expression "(int)local_90 + iVar11" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) == number_literal) )) (goto_statement "goto LAB_000893a4;" goto statement_identifier ;)) (expression_statement "FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);" (call_expression "FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc)" identifier (argument_list "(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc)" ( (binary_expression "iVar22 + 8" identifier + number_literal) , number_literal , (binary_expression "*(int *)(puVar37 + 0x8839c) + -0x4be4" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , number_literal ))) ;) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" * (cast_expression "(undefined4 *)(iVar22 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000893ac;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);" statement_identifier : (expression_statement "iVar23 = *(int *)(puVar37 + 0x8839c);" (assignment_expression "iVar23 = *(int *)(puVar37 + 0x8839c)" identifier = (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_000896fc;" goto statement_identifier ;) })) (expression_statement "(**(code **)(puVar37 + 0x88394))(ppppbVar13);" (call_expression "(**(code **)(puVar37 + 0x88394))(ppppbVar13)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" ( (pointer_expression "**(code **)(puVar37 + 0x88394)" * (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(ppppbVar13)" ( identifier ))) ;) (expression_statement "iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);" (assignment_expression "iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90)" identifier = (call_expression "FUN_000879c0(iVar11,pbVar32,0,&local_90)" identifier (argument_list "(iVar11,pbVar32,0,&local_90)" ( identifier , identifier , number_literal , (pointer_expression "&local_90" & identifier) )))) ;) (expression_statement "pppppbVar36 = (byte *****)local_90;" (assignment_expression "pppppbVar36 = (byte *****)local_90" identifier = (cast_expression "(byte *****)local_90" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;" if (parenthesized_expression "(((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))" ( (binary_expression "((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90)" (parenthesized_expression "((iVar23 == 0) || ((int)local_90 < 0))" ( (binary_expression "(iVar23 == 0) || ((int)local_90 < 0)" (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) || (parenthesized_expression "((int)local_90 < 0)" ( (binary_expression "(int)local_90 < 0" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) ))) )) || (parenthesized_expression "(pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90)" ( (comma_expression "pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90" (assignment_expression "pbVar30 = (byte *)((int)local_90 + 1)" identifier = (cast_expression "(byte *)((int)local_90 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 1)" ( (binary_expression "(int)local_90 + 1" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (binary_expression "(int)pbVar32 <= (int)local_90" (cast_expression "(int)pbVar32" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (goto_statement "goto LAB_000896f8;" goto statement_identifier ;)) (expression_statement "pbVar18 = (byte *)((int)local_90 + iVar11);" (assignment_expression "pbVar18 = (byte *)((int)local_90 + iVar11)" identifier = (cast_expression "(byte *)((int)local_90 + iVar11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + iVar11)" ( (binary_expression "(int)local_90 + iVar11" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "iVar21 = (int)pbVar32 - (int)pbVar30;" (assignment_expression "iVar21 = (int)pbVar32 - (int)pbVar30" identifier = (binary_expression "(int)pbVar32 - (int)pbVar30" (cast_expression "(int)pbVar32" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar30" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_b0 = (byte ****)(uint)*pbVar18;" (assignment_expression "local_b0 = (byte ****)(uint)*pbVar18" identifier = (binary_expression "(byte ****)(uint)*pbVar18" (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 ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }" if (parenthesized_expression "((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))" ( (binary_expression "(iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)" (parenthesized_expression "(iVar21 < 4)" ( (binary_expression "iVar21 < 4" identifier < number_literal) )) || (parenthesized_expression "(iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)" ( (comma_expression "iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0" (assignment_expression "iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90)" identifier = (call_expression "FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90)" identifier (argument_list "(pbVar30 + iVar11,iVar21,0,&local_90)" ( (binary_expression "pbVar30 + iVar11" identifier + identifier) , identifier , number_literal , (pointer_expression "&local_90" & identifier) )))) , (binary_expression "iVar23 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }" { (expression_statement "iVar23 = *(int *)(puVar37 + 0x8839c);" (assignment_expression "iVar23 = *(int *)(puVar37 + 0x8839c)" identifier = (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) ))))) ;) (if_statement "if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }" if (parenthesized_expression "((int)pppppbVar36 < (int)(unaff_s6 + -2))" ( (binary_expression "(int)pppppbVar36 < (int)(unaff_s6 + -2)" (cast_expression "(int)pppppbVar36" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)(unaff_s6 + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(unaff_s6 + -2)" ( (binary_expression "unaff_s6 + -2" identifier + number_literal) )))) )) (compound_statement "{\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }" { (if_statement "if (iVar21 >= 4) goto LAB_0008a05c;" if (parenthesized_expression "(iVar21 >= 4)" ( (binary_expression "iVar21 >= 4" identifier >= number_literal) )) (goto_statement "goto LAB_0008a05c;" goto statement_identifier ;)) (labeled_statement "LAB_0008a304:\n                    uVar12 = 0x55e;" statement_identifier : (expression_statement "uVar12 = 0x55e;" (assignment_expression "uVar12 = 0x55e" identifier = number_literal) ;)) (labeled_statement "LAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);" statement_identifier : (expression_statement "pcVar38 = *(code **)(puVar37 + 0x88ff4);" (assignment_expression "pcVar38 = *(code **)(puVar37 + 0x88ff4)" identifier = (pointer_expression "*(code **)(puVar37 + 0x88ff4)" * (cast_expression "(code **)(puVar37 + 0x88ff4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88ff4)" ( (binary_expression "puVar37 + 0x88ff4" identifier + number_literal) ))))) ;)) (expression_statement "(*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);" (call_expression "(*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870)" ( (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x457c" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x43dc" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x4870" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pppppbVar36 = pppppbVar33;" (assignment_expression "pppppbVar36 = pppppbVar33" identifier = identifier) ;) (goto_statement "goto LAB_00089f10;" goto statement_identifier ;) })) (labeled_statement "LAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);" statement_identifier : (expression_statement "pcVar38 = *(code **)(puVar37 + 0x8844c);" (assignment_expression "pcVar38 = *(code **)(puVar37 + 0x8844c)" identifier = (pointer_expression "*(code **)(puVar37 + 0x8844c)" * (cast_expression "(code **)(puVar37 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8844c)" ( (binary_expression "puVar37 + 0x8844c" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }" else (compound_statement "{\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }" { (expression_statement "pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);" (assignment_expression "pppppbVar36 = (byte *****)(pbVar30 + (int)local_90)" identifier = (cast_expression "(byte *****)(pbVar30 + (int)local_90)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(pbVar30 + (int)local_90)" ( (binary_expression "pbVar30 + (int)local_90" identifier + (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar23 = *(int *)(puVar37 + 0x8839c);" (assignment_expression "iVar23 = *(int *)(puVar37 + 0x8839c)" identifier = (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) ))))) ;) (if_statement "if ((int)pppppbVar36 < 0) goto LAB_000896fc;" if (parenthesized_expression "((int)pppppbVar36 < 0)" ( (binary_expression "(int)pppppbVar36 < 0" (cast_expression "(int)pppppbVar36" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_000896fc;" goto statement_identifier ;)) (expression_statement "pcVar38 = *(code **)(puVar37 + 0x8844c);" (assignment_expression "pcVar38 = *(code **)(puVar37 + 0x8844c)" identifier = (pointer_expression "*(code **)(puVar37 + 0x8844c)" * (cast_expression "(code **)(puVar37 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8844c)" ( (binary_expression "puVar37 + 0x8844c" identifier + number_literal) ))))) ;) (if_statement "if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }" if (parenthesized_expression "((int)pppppbVar36 < (int)(unaff_s6 + -2))" ( (binary_expression "(int)pppppbVar36 < (int)(unaff_s6 + -2)" (cast_expression "(int)pppppbVar36" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)(unaff_s6 + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(unaff_s6 + -2)" ( (binary_expression "unaff_s6 + -2" identifier + number_literal) )))) )) (compound_statement "{\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }" { (labeled_statement "LAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);" statement_identifier : (expression_statement "iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);" (assignment_expression "iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0)" identifier = (call_expression "FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0)" identifier (argument_list "(pbVar30 + iVar11,iVar21,&local_90,0)" ( (binary_expression "pbVar30 + iVar11" identifier + identifier) , identifier , (pointer_expression "&local_90" & identifier) , number_literal )))) ;)) (expression_statement "ppppbVar13 = local_90;" (assignment_expression "ppppbVar13 = local_90" identifier = identifier) ;) (if_statement "if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;" if (parenthesized_expression "((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))" ( (binary_expression "(iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0)" (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) || (parenthesized_expression "(unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0)" ( (comma_expression "unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0" (assignment_expression "unaff_s6 = (byte *****)local_90" identifier = (cast_expression "(byte *****)local_90" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) , (binary_expression "(byte *****)local_90 == (byte *****)0x0" (cast_expression "(byte *****)local_90" ( (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_0008a304;" goto statement_identifier ;)) (expression_statement "pbVar30 = (byte *)((int)pppppbVar36 + iVar11);" (assignment_expression "pbVar30 = (byte *)((int)pppppbVar36 + iVar11)" identifier = (cast_expression "(byte *)((int)pppppbVar36 + iVar11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar36 + iVar11)" ( (binary_expression "(int)pppppbVar36 + iVar11" (cast_expression "(int)pppppbVar36" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);" (assignment_expression "pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8)" identifier = (cast_expression "(byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[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)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8)" ( (binary_expression "(uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8" (binary_expression "(uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10" (binary_expression "(uint)*pbVar30 << 0x18 | (uint)pbVar30[3]" (binary_expression "(uint)*pbVar30 << 0x18" (binary_expression "(uint)*pbVar30" (parenthesized_expression "(uint)" ( identifier )) * identifier) << number_literal) | (cast_expression "(uint)pbVar30[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar30[3]" identifier [ number_literal ]))) | (binary_expression "(uint)pbVar30[1] << 0x10" (cast_expression "(uint)pbVar30[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar30[1]" identifier [ number_literal ])) << number_literal)) | (binary_expression "(uint)pbVar30[2] << 8" (cast_expression "(uint)pbVar30[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar30[2]" identifier [ number_literal ])) << number_literal)) )))) ;) (expression_statement "iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);" (assignment_expression "iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22)" identifier = (call_expression "(**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22)" (parenthesized_expression "(**(code **)(puVar37 + 0x88ba0))" ( (pointer_expression "**(code **)(puVar37 + 0x88ba0)" * (pointer_expression "*(code **)(puVar37 + 0x88ba0)" * (cast_expression "(code **)(puVar37 + 0x88ba0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88ba0)" ( (binary_expression "puVar37 + 0x88ba0" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) )))) + number_literal) )))) , identifier , identifier , identifier )))) ;) (if_statement "if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }" if (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) (compound_statement "{\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }" { (if_statement "if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }" if (parenthesized_expression "((byte *****)local_b0 != (byte *****)0x0)" ( (binary_expression "(byte *****)local_b0 != (byte *****)0x0" (cast_expression "(byte *****)local_b0" ( (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_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }" { (expression_statement "FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);" (call_expression "FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc)" identifier (argument_list "(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc)" ( (binary_expression "iVar22 + 8" identifier + number_literal) , number_literal , (binary_expression "*(int *)(puVar37 + 0x8839c) + -0x4be4" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , number_literal ))) ;) })) }) (else_clause "else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }" else (compound_statement "{\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }" { (expression_statement "bVar26 = *pbVar18;" (assignment_expression "bVar26 = *pbVar18" identifier = (pointer_expression "*pbVar18" * identifier)) ;) (expression_statement "*pbVar18 = 1;" (assignment_expression "*pbVar18 = 1" (pointer_expression "*pbVar18" * identifier) = number_literal) ;) (if_statement "if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }" if (parenthesized_expression "(bVar26 == 0)" ( (binary_expression "bVar26 == 0" identifier == number_literal) )) (compound_statement "{\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }" { (expression_statement "iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;" (assignment_expression "iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4" identifier = (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x44b4" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                        iVar23 = 0;\n                      }" else (compound_statement "{\n                        iVar23 = 0;\n                      }" { (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" identifier = number_literal) ;) }))) (expression_statement "(**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);" (call_expression "(**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b70))" ( (pointer_expression "**(code **)(puVar37 + 0x88b70)" * (pointer_expression "*(code **)(puVar37 + 0x88b70)" * (cast_expression "(code **)(puVar37 + 0x88b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88b70)" ( (binary_expression "puVar37 + 0x88b70" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) )))) + number_literal) )))) , (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) )))) , number_literal , identifier , identifier , identifier ))) ;) (expression_statement "puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);" (assignment_expression "puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc)" identifier = (cast_expression "(undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar37 + 0x88390))(1,0xc)" (parenthesized_expression "(**(code **)(puVar37 + 0x88390))" ( (pointer_expression "**(code **)(puVar37 + 0x88390)" * (pointer_expression "*(code **)(puVar37 + 0x88390)" * (cast_expression "(code **)(puVar37 + 0x88390)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88390)" ( (binary_expression "puVar37 + 0x88390" identifier + number_literal) ))))) )) (argument_list "(1,0xc)" ( number_literal , number_literal ))))) ;) (expression_statement "uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);" (assignment_expression "uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13)" identifier = (call_expression "(**(code **)(puVar37 + 0x883c0))(ppppbVar13)" (parenthesized_expression "(**(code **)(puVar37 + 0x883c0))" ( (pointer_expression "**(code **)(puVar37 + 0x883c0)" * (pointer_expression "*(code **)(puVar37 + 0x883c0)" * (cast_expression "(code **)(puVar37 + 0x883c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x883c0)" ( (binary_expression "puVar37 + 0x883c0" identifier + number_literal) ))))) )) (argument_list "(ppppbVar13)" ( identifier )))) ;) (expression_statement "uVar24 = *(undefined4 *)(iVar22 + 0x4048);" (assignment_expression "uVar24 = *(undefined4 *)(iVar22 + 0x4048)" identifier = (pointer_expression "*(undefined4 *)(iVar22 + 0x4048)" * (cast_expression "(undefined4 *)(iVar22 + 0x4048)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4048)" ( (binary_expression "iVar22 + 0x4048" identifier + number_literal) ))))) ;) (expression_statement "*puVar19 = uVar12;" (assignment_expression "*puVar19 = uVar12" (pointer_expression "*puVar19" * identifier) = identifier) ;) (expression_statement "puVar19[1] = pppppbVar36;" (assignment_expression "puVar19[1] = pppppbVar36" (subscript_expression "puVar19[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar19[2] = 0;" (assignment_expression "puVar19[2] = 0" (subscript_expression "puVar19[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar20 = (undefined4 *)add234(uVar24,puVar19);" (assignment_expression "puVar20 = (undefined4 *)add234(uVar24,puVar19)" identifier = (cast_expression "(undefined4 *)add234(uVar24,puVar19)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "add234(uVar24,puVar19)" identifier (argument_list "(uVar24,puVar19)" ( identifier , identifier ))))) ;) (if_statement "if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }" if (parenthesized_expression "(puVar19 == puVar20)" ( (binary_expression "puVar19 == puVar20" identifier == identifier) )) (compound_statement "{\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }" { (expression_statement "(**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);" (call_expression "(**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b88))" ( (pointer_expression "**(code **)(puVar37 + 0x88b88)" * (pointer_expression "*(code **)(puVar37 + 0x88b88)" * (cast_expression "(code **)(puVar37 + 0x88b88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88b88)" ( (binary_expression "puVar37 + 0x88b88" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) )))) + number_literal) )))) , identifier ))) ;) (expression_statement "puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);" (assignment_expression "puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10)" identifier = (cast_expression "(undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar37 + 0x88390))(1,0x10)" (parenthesized_expression "(**(code **)(puVar37 + 0x88390))" ( (pointer_expression "**(code **)(puVar37 + 0x88390)" * (pointer_expression "*(code **)(puVar37 + 0x88390)" * (cast_expression "(code **)(puVar37 + 0x88390)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88390)" ( (binary_expression "puVar37 + 0x88390" identifier + number_literal) ))))) )) (argument_list "(1,0x10)" ( number_literal , number_literal ))))) ;) (expression_statement "puVar25 = *(undefined4 **)(iVar22 + 0x4050);" (assignment_expression "puVar25 = *(undefined4 **)(iVar22 + 0x4050)" identifier = (pointer_expression "*(undefined4 **)(iVar22 + 0x4050)" * (cast_expression "(undefined4 **)(iVar22 + 0x4050)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar22 + 0x4050)" ( (binary_expression "iVar22 + 0x4050" identifier + number_literal) ))))) ;) (expression_statement "*puVar20 = 0;" (assignment_expression "*puVar20 = 0" (pointer_expression "*puVar20" * identifier) = number_literal) ;) (if_statement "if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }" if (parenthesized_expression "(puVar25 == (undefined4 *)0x0)" ( (binary_expression "puVar25 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }" { (expression_statement "*(undefined4 **)(iVar22 + 0x404c) = puVar20;" (assignment_expression "*(undefined4 **)(iVar22 + 0x404c) = puVar20" (pointer_expression "*(undefined4 **)(iVar22 + 0x404c)" * (cast_expression "(undefined4 **)(iVar22 + 0x404c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar22 + 0x404c)" ( (binary_expression "iVar22 + 0x404c" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                          *puVar25 = puVar20;\n                        }" else (compound_statement "{\n                          *puVar25 = puVar20;\n                        }" { (expression_statement "*puVar25 = puVar20;" (assignment_expression "*puVar25 = puVar20" (pointer_expression "*puVar25" * identifier) = identifier) ;) }))) (expression_statement "puVar20[3] = puVar19;" (assignment_expression "puVar20[3] = puVar19" (subscript_expression "puVar20[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar20[1] = 0;" (assignment_expression "puVar20[1] = 0" (subscript_expression "puVar20[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar20[2] = local_b0;" (assignment_expression "puVar20[2] = local_b0" (subscript_expression "puVar20[2]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }" else (compound_statement "{\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }" { (expression_statement "(**(code **)(puVar37 + 0x88394))(puVar19);" (call_expression "(**(code **)(puVar37 + 0x88394))(puVar19)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" ( (pointer_expression "**(code **)(puVar37 + 0x88394)" * (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(puVar19)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);" (call_expression "(**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b88))" ( (pointer_expression "**(code **)(puVar37 + 0x88b88)" * (pointer_expression "*(code **)(puVar37 + 0x88b88)" * (cast_expression "(code **)(puVar37 + 0x88b88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88b88)" ( (binary_expression "puVar37 + 0x88b88" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) )))) + number_literal) )))) , identifier ))) ;) }))) }))) (expression_statement "(**(code **)(puVar37 + 0x88394))(ppppbVar13);" (call_expression "(**(code **)(puVar37 + 0x88394))(ppppbVar13)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" ( (pointer_expression "**(code **)(puVar37 + 0x88394)" * (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(ppppbVar13)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" * (cast_expression "(undefined4 *)(iVar22 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = number_literal) ;) (expression_statement "unaff_s6 = (byte *****)ppppbVar13;" (assignment_expression "unaff_s6 = (byte *****)ppppbVar13" identifier = (cast_expression "(byte *****)ppppbVar13" ( (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_000893ac;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);" statement_identifier : (expression_statement "iVar11 = (*pcVar38)(iVar23 + 0x455c);" (assignment_expression "iVar11 = (*pcVar38)(iVar23 + 0x455c)" identifier = (call_expression "(*pcVar38)(iVar23 + 0x455c)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(iVar23 + 0x455c)" ( (binary_expression "iVar23 + 0x455c" identifier + number_literal) )))) ;)) (expression_statement "pppppbVar36 = pppppbVar33;" (assignment_expression "pppppbVar36 = pppppbVar33" identifier = identifier) ;) (goto_statement "goto LAB_00089674;" goto statement_identifier ;) })) (if_statement "if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }" if (parenthesized_expression "(bVar26 != 1)" ( (binary_expression "bVar26 != 1" identifier != number_literal) )) (compound_statement "{\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }" { (labeled_statement "LAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);" statement_identifier : (expression_statement "iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);" (assignment_expression "iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26)" identifier = (call_expression "(**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26)" (parenthesized_expression "(**(code **)(puVar37 + 0x8844c))" ( (pointer_expression "**(code **)(puVar37 + 0x8844c)" * (pointer_expression "*(code **)(puVar37 + 0x8844c)" * (cast_expression "(code **)(puVar37 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8844c)" ( (binary_expression "puVar37 + 0x8844c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26)" ( (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x474c" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) , identifier )))) ;)) (goto_statement "goto LAB_00089674;" goto statement_identifier ;) })) (expression_statement "(**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));" (call_expression "(**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8))" (parenthesized_expression "(**(code **)(**(int **)(iVar22 + 8) + 4))" ( (pointer_expression "**(code **)(**(int **)(iVar22 + 8) + 4)" * (pointer_expression "*(code **)(**(int **)(iVar22 + 8) + 4)" * (cast_expression "(code **)(**(int **)(iVar22 + 8) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar22 + 8) + 4)" ( (binary_expression "**(int **)(iVar22 + 8) + 4" (pointer_expression "**(int **)(iVar22 + 8)" * (pointer_expression "*(int **)(iVar22 + 8)" * (cast_expression "(int **)(iVar22 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar22 + 8)" ( (binary_expression "iVar22 + 8" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(iVar22 + 8))" ( (pointer_expression "*(int **)(iVar22 + 8)" * (cast_expression "(int **)(iVar22 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar22 + 8)" ( (binary_expression "iVar22 + 8" 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 "FUN_000882d0(iVar22);" (call_expression "FUN_000882d0(iVar22)" identifier (argument_list "(iVar22)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" * (cast_expression "(undefined4 *)(iVar22 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000893ac;" goto statement_identifier ;) })) (labeled_statement "LAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }" statement_identifier : (if_statement "if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }" if (parenthesized_expression "((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9))" ( (binary_expression "(bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)" (parenthesized_expression "(bVar26 == 0x62)" ( (binary_expression "bVar26 == 0x62" identifier == number_literal) )) && (parenthesized_expression "(pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)" ( (comma_expression "pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9" (assignment_expression "pppppbVar36 = *(byte ******)(puVar37 + 0x88acc)" identifier = (pointer_expression "*(byte ******)(puVar37 + 0x88acc)" * (cast_expression "(byte ******)(puVar37 + 0x88acc)" ( (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 + 0x88acc)" ( (binary_expression "puVar37 + 0x88acc" identifier + number_literal) ))))) , (binary_expression "3 < (int)unaff_s6 + -9" number_literal < (binary_expression "(int)unaff_s6 + -9" (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal))) ))) )) (compound_statement "{\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }" { (expression_statement "pppppbVar36 = pppppbVar36 + 0x1e70;" (assignment_expression "pppppbVar36 = pppppbVar36 + 0x1e70" identifier = (binary_expression "pppppbVar36 + 0x1e70" identifier + number_literal)) ;) (expression_statement "iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);" (assignment_expression "iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0)" identifier = (call_expression "FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0)" identifier (argument_list "(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0)" ( (binary_expression "iVar22 + 0x29" identifier + number_literal) , (cast_expression "(byte *)((int)unaff_s6 + -9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s6 + -9)" ( (binary_expression "(int)unaff_s6 + -9" (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) , (pointer_expression "&local_90" & identifier) , number_literal )))) ;) (expression_statement "ppppbVar13 = local_90;" (assignment_expression "ppppbVar13 = local_90" identifier = identifier) ;) (if_statement "if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }" if (parenthesized_expression "((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0))" ( (binary_expression "(iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)" (parenthesized_expression "(iVar23 != 0)" ( (binary_expression "iVar23 != 0" identifier != number_literal) )) && (parenthesized_expression "((byte *****)local_90 != (byte *****)0x0)" ( (binary_expression "(byte *****)local_90 != (byte *****)0x0" (cast_expression "(byte *****)local_90" ( (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                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }" { (expression_statement "local_b0 = local_90;" (assignment_expression "local_b0 = local_90" identifier = identifier) ;) (expression_statement "iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);" (assignment_expression "iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c)" identifier = (call_expression "(**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c)" (parenthesized_expression "(**(code **)(puVar37 + 0x8953c))" ( (pointer_expression "**(code **)(puVar37 + 0x8953c)" * (pointer_expression "*(code **)(puVar37 + 0x8953c)" * (cast_expression "(code **)(puVar37 + 0x8953c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8953c)" ( (binary_expression "puVar37 + 0x8953c" identifier + number_literal) ))))) )) (argument_list "(local_90,*(int *)(puVar37 + 0x8839c) + -0x363c)" ( identifier , (binary_expression "*(int *)(puVar37 + 0x8839c) + -0x363c" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }" if (parenthesized_expression "((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   ))" ( (binary_expression "(iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )" (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )" ( (comma_expression "iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0" (assignment_expression "iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14))" identifier = (call_expression "(**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14))" (parenthesized_expression "(**(code **)(puVar37 + 0x888c4))" ( (pointer_expression "**(code **)(puVar37 + 0x888c4)" * (pointer_expression "*(code **)(puVar37 + 0x888c4)" * (cast_expression "(code **)(puVar37 + 0x888c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x888c4)" ( (binary_expression "puVar37 + 0x888c4" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14))" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) )))) + number_literal) )))) )))) , (binary_expression "iVar23 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }" { (expression_statement "uVar12 = *(undefined4 *)(iVar22 + 0x25);" (assignment_expression "uVar12 = *(undefined4 *)(iVar22 + 0x25)" identifier = (pointer_expression "*(undefined4 *)(iVar22 + 0x25)" * (cast_expression "(undefined4 *)(iVar22 + 0x25)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x25)" ( (binary_expression "iVar22 + 0x25" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar37 + 0x88394))(ppppbVar13);" (call_expression "(**(code **)(puVar37 + 0x88394))(ppppbVar13)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" ( (pointer_expression "**(code **)(puVar37 + 0x88394)" * (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(ppppbVar13)" ( identifier ))) ;) (expression_statement "local_88 = uVar12;" (assignment_expression "local_88 = uVar12" identifier = identifier) ;) (expression_statement "puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);" (assignment_expression "puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0)" identifier = (cast_expression "(undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0)" identifier (argument_list "(*(undefined4 *)(iVar22 + 0x403c),&local_90,0)" ( (pointer_expression "*(undefined4 *)(iVar22 + 0x403c)" * (cast_expression "(undefined4 *)(iVar22 + 0x403c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x403c)" ( (binary_expression "iVar22 + 0x403c" identifier + number_literal) )))) , (pointer_expression "&local_90" & identifier) , number_literal ))))) ;) (if_statement "if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }" if (parenthesized_expression "(puVar19 == (undefined4 *)0x0)" ( (binary_expression "puVar19 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }" { (expression_statement "pcVar38 = *(code **)(puVar37 + 0x8844c);" (assignment_expression "pcVar38 = *(code **)(puVar37 + 0x8844c)" identifier = (pointer_expression "*(code **)(puVar37 + 0x8844c)" * (cast_expression "(code **)(puVar37 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8844c)" ( (binary_expression "puVar37 + 0x8844c" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;" (assignment_expression "iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8" identifier = (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x46b8" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal)) ;) (labeled_statement "LAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);" statement_identifier : (expression_statement "uVar12 = (*pcVar38)(iVar11,uVar12);" (assignment_expression "uVar12 = (*pcVar38)(iVar11,uVar12)" identifier = (call_expression "(*pcVar38)(iVar11,uVar12)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(iVar11,uVar12)" ( identifier , identifier )))) ;)) (expression_statement "FUN_000887e0(iVar22,uVar12);" (call_expression "FUN_000887e0(iVar22,uVar12)" identifier (argument_list "(iVar22,uVar12)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar37 + 0x88394))(uVar12);" (call_expression "(**(code **)(puVar37 + 0x88394))(uVar12)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" ( (pointer_expression "**(code **)(puVar37 + 0x88394)" * (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(uVar12)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" * (cast_expression "(undefined4 *)(iVar22 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }" else (compound_statement "{\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }" { (expression_statement "local_68 = (byte ***)*puVar19;" (assignment_expression "local_68 = (byte ***)*puVar19" identifier = (cast_expression "(byte ***)*puVar19" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "*puVar19" * identifier))) ;) (expression_statement "FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);" (call_expression "FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc)" identifier (argument_list "(iVar22 + 8,100,&local_68,4,0,0xc)" ( (binary_expression "iVar22 + 8" identifier + number_literal) , number_literal , (pointer_expression "&local_68" & identifier) , number_literal , number_literal , number_literal ))) ;) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" * (cast_expression "(undefined4 *)(iVar22 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = number_literal) ;) }))) (goto_statement "goto LAB_000893ac;" goto statement_identifier ;) })) (expression_statement "iVar23 = *(int *)(puVar37 + 0x8839c);" (assignment_expression "iVar23 = *(int *)(puVar37 + 0x8839c)" identifier = (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) ))))) ;) (expression_statement "iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);" (assignment_expression "iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0)" identifier = (call_expression "(**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0)" (parenthesized_expression "(**(code **)(puVar37 + 0x8953c))" ( (pointer_expression "**(code **)(puVar37 + 0x8953c)" * (pointer_expression "*(code **)(puVar37 + 0x8953c)" * (cast_expression "(code **)(puVar37 + 0x8953c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8953c)" ( (binary_expression "puVar37 + 0x8953c" identifier + number_literal) ))))) )) (argument_list "(ppppbVar13,iVar23 + -0x36a0)" ( identifier , (binary_expression "iVar23 + -0x36a0" identifier + number_literal) )))) ;) (if_statement "if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }" if (parenthesized_expression "(iVar21 != 0)" ( (binary_expression "iVar21 != 0" identifier != number_literal) )) (compound_statement "{\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }" { (expression_statement "(**(code **)(puVar37 + 0x88394))(ppppbVar13);" (call_expression "(**(code **)(puVar37 + 0x88394))(ppppbVar13)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" ( (pointer_expression "**(code **)(puVar37 + 0x88394)" * (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(ppppbVar13)" ( identifier ))) ;) (expression_statement "local_b0 = ppppbVar13;" (assignment_expression "local_b0 = ppppbVar13" identifier = identifier) ;) (goto_statement "goto LAB_00089cc8;" goto statement_identifier ;) })) (expression_statement "uVar12 = *(undefined4 *)(iVar22 + 0x25);" (assignment_expression "uVar12 = *(undefined4 *)(iVar22 + 0x25)" identifier = (pointer_expression "*(undefined4 *)(iVar22 + 0x25)" * (cast_expression "(undefined4 *)(iVar22 + 0x25)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x25)" ( (binary_expression "iVar22 + 0x25" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar37 + 0x88394))(ppppbVar13);" (call_expression "(**(code **)(puVar37 + 0x88394))(ppppbVar13)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" ( (pointer_expression "**(code **)(puVar37 + 0x88394)" * (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(ppppbVar13)" ( identifier ))) ;) (expression_statement "local_88 = uVar12;" (assignment_expression "local_88 = uVar12" identifier = identifier) ;) (expression_statement "local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);" (assignment_expression "local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0)" identifier = (cast_expression "(byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0)" identifier (argument_list "(*(undefined4 *)(iVar22 + 0x403c),&local_90,0)" ( (pointer_expression "*(undefined4 *)(iVar22 + 0x403c)" * (cast_expression "(undefined4 *)(iVar22 + 0x403c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x403c)" ( (binary_expression "iVar22 + 0x403c" identifier + number_literal) )))) , (pointer_expression "&local_90" & identifier) , number_literal ))))) ;) (if_statement "if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }" if (parenthesized_expression "((byte *****)local_b0 == (byte *****)0x0)" ( (binary_expression "(byte *****)local_b0 == (byte *****)0x0" (cast_expression "(byte *****)local_b0" ( (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 **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }" { (expression_statement "pcVar38 = *(code **)(puVar37 + 0x8844c);" (assignment_expression "pcVar38 = *(code **)(puVar37 + 0x8844c)" identifier = (pointer_expression "*(code **)(puVar37 + 0x8844c)" * (cast_expression "(code **)(puVar37 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8844c)" ( (binary_expression "puVar37 + 0x8844c" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;" (assignment_expression "iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0" identifier = (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x46f0" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal)) ;) (goto_statement "goto LAB_0008a3a0;" goto statement_identifier ;) })) (if_statement "if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }" if (parenthesized_expression "((int)pbVar32 < 0x11)" ( (binary_expression "(int)pbVar32 < 0x11" (cast_expression "(int)pbVar32" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }" { (expression_statement "iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);" (assignment_expression "iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724)" identifier = (call_expression "(**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724)" (parenthesized_expression "(**(code **)(puVar37 + 0x8844c))" ( (pointer_expression "**(code **)(puVar37 + 0x8844c)" * (pointer_expression "*(code **)(puVar37 + 0x8844c)" * (cast_expression "(code **)(puVar37 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8844c)" ( (binary_expression "puVar37 + 0x8844c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x4724)" ( (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x4724" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_00089674;" goto statement_identifier ;) })) (expression_statement "cVar5 = *(char *)(iVar22 + 0x34);" (assignment_expression "cVar5 = *(char *)(iVar22 + 0x34)" identifier = (pointer_expression "*(char *)(iVar22 + 0x34)" * (cast_expression "(char *)(iVar22 + 0x34)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x34)" ( (binary_expression "iVar22 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "pbVar30 = (byte *)((int)unaff_s6 + -0x16);" (assignment_expression "pbVar30 = (byte *)((int)unaff_s6 + -0x16)" identifier = (cast_expression "(byte *)((int)unaff_s6 + -0x16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s6 + -0x16)" ( (binary_expression "(int)unaff_s6 + -0x16" (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "cVar6 = *(char *)(iVar22 + 0x35);" (assignment_expression "cVar6 = *(char *)(iVar22 + 0x35)" identifier = (pointer_expression "*(char *)(iVar22 + 0x35)" * (cast_expression "(char *)(iVar22 + 0x35)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x35)" ( (binary_expression "iVar22 + 0x35" identifier + number_literal) ))))) ;) (if_statement "if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }" if (parenthesized_expression "((int)pbVar30 < 4)" ( (binary_expression "(int)pbVar30 < 4" (cast_expression "(int)pbVar30" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }" { (expression_statement "ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);" (assignment_expression "ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0)" identifier = (cast_expression "(byte ****)(**(code **)(puVar37 + 0x88b90))(0)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(**(code **)(puVar37 + 0x88b90))(0)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b90))" ( (pointer_expression "**(code **)(puVar37 + 0x88b90)" * (pointer_expression "*(code **)(puVar37 + 0x88b90)" * (cast_expression "(code **)(puVar37 + 0x88b90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88b90)" ( (binary_expression "puVar37 + 0x88b90" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal ))))) ;) (expression_statement "(**(code **)(puVar37 + 0x88394))(0);" (call_expression "(**(code **)(puVar37 + 0x88394))(0)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" ( (pointer_expression "**(code **)(puVar37 + 0x88394)" * (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal ))) ;) (labeled_statement "LAB_0008a36c:\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                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }" else (compound_statement "{\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }" { (expression_statement "iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);" (assignment_expression "iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0)" identifier = (call_expression "FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0)" identifier (argument_list "(iVar22 + 0x36,pbVar30,&local_90,0)" ( (binary_expression "iVar22 + 0x36" identifier + number_literal) , identifier , (pointer_expression "&local_90" & identifier) , number_literal )))) ;) (expression_statement "pppppbVar33 = (byte *****)local_90;" (assignment_expression "pppppbVar33 = (byte *****)local_90" identifier = (cast_expression "(byte *****)local_90" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 0" identifier == number_literal) )) (compound_statement "{\n                    pppppbVar33 = (byte *****)0x0;\n                  }" { (expression_statement "pppppbVar33 = (byte *****)0x0;" (assignment_expression "pppppbVar33 = (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 "ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);" (assignment_expression "ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33)" identifier = (cast_expression "(byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(**(code **)(puVar37 + 0x88b90))(pppppbVar33)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b90))" ( (pointer_expression "**(code **)(puVar37 + 0x88b90)" * (pointer_expression "*(code **)(puVar37 + 0x88b90)" * (cast_expression "(code **)(puVar37 + 0x88b90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88b90)" ( (binary_expression "puVar37 + 0x88b90" identifier + number_literal) ))))) )) (argument_list "(pppppbVar33)" ( identifier ))))) ;) (expression_statement "(**(code **)(puVar37 + 0x88394))(pppppbVar33);" (call_expression "(**(code **)(puVar37 + 0x88394))(pppppbVar33)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" ( (pointer_expression "**(code **)(puVar37 + 0x88394)" * (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(pppppbVar33)" ( identifier ))) ;) (expression_statement "iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);" (assignment_expression "iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90)" identifier = (call_expression "FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90)" identifier (argument_list "(iVar22 + 0x36,pbVar30,0,&local_90)" ( (binary_expression "iVar22 + 0x36" identifier + number_literal) , identifier , number_literal , (pointer_expression "&local_90" & identifier) )))) ;) (expression_statement "pppppbVar33 = (byte *****)local_90;" (assignment_expression "pppppbVar33 = (byte *****)local_90" identifier = (cast_expression "(byte *****)local_90" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if (iVar21 == 0) goto LAB_0008a36c;" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0008a36c;" goto statement_identifier ;)) }))) (expression_statement "pbVar30 = (byte *)((int)pppppbVar33 + 0x11);" (assignment_expression "pbVar30 = (byte *)((int)pppppbVar33 + 0x11)" identifier = (cast_expression "(byte *)((int)pppppbVar33 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar33 + 0x11)" ( (binary_expression "(int)pppppbVar33 + 0x11" (cast_expression "(int)pppppbVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar21 = (int)pbVar32 - (int)pbVar30;" (assignment_expression "iVar21 = (int)pbVar32 - (int)pbVar30" identifier = (binary_expression "(int)pbVar32 - (int)pbVar30" (cast_expression "(int)pbVar32" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar30" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "unaff_s6 = (byte *****)0x0;" (assignment_expression "unaff_s6 = (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 (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }" if (parenthesized_expression "(iVar21 < 4)" ( (binary_expression "iVar21 < 4" identifier < number_literal) )) (compound_statement "{\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }" { (labeled_statement "LAB_00089ec4:\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                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }" else (compound_statement "{\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }" { (expression_statement "iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);" (assignment_expression "iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0)" identifier = (call_expression "FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0)" identifier (argument_list "(pbVar30 + iVar11,iVar21,&local_90,0)" ( (binary_expression "pbVar30 + iVar11" identifier + identifier) , identifier , (pointer_expression "&local_90" & identifier) , number_literal )))) ;) (expression_statement "unaff_s6 = (byte *****)local_90;" (assignment_expression "unaff_s6 = (byte *****)local_90" identifier = (cast_expression "(byte *****)local_90" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (compound_statement "{\n                    unaff_s6 = (byte *****)0x0;\n                  }" { (expression_statement "unaff_s6 = (byte *****)0x0;" (assignment_expression "unaff_s6 = (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 "iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);" (assignment_expression "iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90)" identifier = (call_expression "FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90)" identifier (argument_list "(pbVar30 + iVar11,iVar21,0,&local_90)" ( (binary_expression "pbVar30 + iVar11" identifier + identifier) , identifier , number_literal , (pointer_expression "&local_90" & identifier) )))) ;) (expression_statement "pppppbVar33 = (byte *****)local_90;" (assignment_expression "pppppbVar33 = (byte *****)local_90" identifier = (cast_expression "(byte *****)local_90" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if (iVar21 == 0) goto LAB_00089ec4;" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00089ec4;" goto statement_identifier ;)) }))) (if_statement "if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }" if (parenthesized_expression "((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3))" ( (binary_expression "(int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)" (cast_expression "(int)pbVar32" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(pbVar30 + (int)pppppbVar33 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar30 + (int)pppppbVar33 + 3)" ( (binary_expression "pbVar30 + (int)pppppbVar33 + 3" (binary_expression "pbVar30 + (int)pppppbVar33" identifier + (cast_expression "(int)pppppbVar33" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal) )))) )) (compound_statement "{\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }" { (expression_statement "iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);" (assignment_expression "iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724)" identifier = (call_expression "(**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724)" (parenthesized_expression "(**(code **)(puVar37 + 0x8844c))" ( (pointer_expression "**(code **)(puVar37 + 0x8844c)" * (pointer_expression "*(code **)(puVar37 + 0x8844c)" * (cast_expression "(code **)(puVar37 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8844c)" ( (binary_expression "puVar37 + 0x8844c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x4724)" ( (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x4724" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(puVar37 + 0x88394))(unaff_s6);" (call_expression "(**(code **)(puVar37 + 0x88394))(unaff_s6)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" ( (pointer_expression "**(code **)(puVar37 + 0x88394)" * (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(unaff_s6)" ( identifier ))) ;) (goto_statement "goto LAB_00089674;" goto statement_identifier ;) })) (expression_statement "pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;" (assignment_expression "pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11" identifier = (binary_expression "pbVar30 + (int)pppppbVar33 + iVar11" (binary_expression "pbVar30 + (int)pppppbVar33" identifier + (cast_expression "(int)pppppbVar33" ( (type_descriptor "int" primitive_type) ) identifier)) + identifier)) ;) (if_statement "if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }" if (parenthesized_expression "(-1 < (int)ppppbVar13)" ( (binary_expression "-1 < (int)ppppbVar13" number_literal < (cast_expression "(int)ppppbVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }" { (expression_statement "pcVar38 = *(code **)(puVar37 + 0x88b94);" (assignment_expression "pcVar38 = *(code **)(puVar37 + 0x88b94)" identifier = (pointer_expression "*(code **)(puVar37 + 0x88b94)" * (cast_expression "(code **)(puVar37 + 0x88b94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88b94)" ( (binary_expression "puVar37 + 0x88b94" identifier + number_literal) ))))) ;) (expression_statement "bVar26 = *pbVar32;" (assignment_expression "bVar26 = *pbVar32" identifier = (pointer_expression "*pbVar32" * 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 = pbVar32[1];" (assignment_expression "bVar1 = pbVar32[1]" identifier = (subscript_expression "pbVar32[1]" identifier [ number_literal ])) ;) (expression_statement "bVar2 = pbVar32[3];" (assignment_expression "bVar2 = pbVar32[3]" identifier = (subscript_expression "pbVar32[3]" identifier [ number_literal ])) ;) (expression_statement "bVar3 = pbVar32[2];" (assignment_expression "bVar3 = pbVar32[2]" identifier = (subscript_expression "pbVar32[2]" identifier [ number_literal ])) ;) (expression_statement "((byte *****)local_b0)[6] = ppppbVar13;" (assignment_expression "((byte *****)local_b0)[6] = ppppbVar13" (subscript_expression "((byte *****)local_b0)[6]" (parenthesized_expression "((byte *****)local_b0)" ( (cast_expression "(byte *****)local_b0" ( (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 "ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);" (assignment_expression "ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8)" identifier = (cast_expression "(byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(unaff_s6,(byte *****)local_b0 + 8)" ( identifier , (binary_expression "(byte *****)local_b0 + 8" (cast_expression "(byte *****)local_b0" ( (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 **)(puVar37 + 0x88394);" (assignment_expression "pcVar38 = *(code **)(puVar37 + 0x88394)" identifier = (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) ;) (expression_statement "((byte *****)local_b0)[7] = ppppbVar15;" (assignment_expression "((byte *****)local_b0)[7] = ppppbVar15" (subscript_expression "((byte *****)local_b0)[7]" (parenthesized_expression "((byte *****)local_b0)" ( (cast_expression "(byte *****)local_b0" ( (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)(unaff_s6);" (call_expression "(*pcVar38)(unaff_s6)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(unaff_s6)" ( identifier ))) ;) (expression_statement "ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);" (assignment_expression "ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0)" identifier = (cast_expression "(byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b98))" ( (pointer_expression "**(code **)(puVar37 + 0x88b98)" * (pointer_expression "*(code **)(puVar37 + 0x88b98)" * (cast_expression "(code **)(puVar37 + 0x88b98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88b98)" ( (binary_expression "puVar37 + 0x88b98" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) )))) + number_literal) )))) , identifier , identifier , identifier ))))) ;) (expression_statement "((byte *****)local_b0)[5] = ppppbVar13;" (assignment_expression "((byte *****)local_b0)[5] = ppppbVar13" (subscript_expression "((byte *****)local_b0)[5]" (parenthesized_expression "((byte *****)local_b0)" ( (cast_expression "(byte *****)local_b0" ( (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 *****)local_b0)[9] = (byte ****)(uint)bVar10;" (assignment_expression "((byte *****)local_b0)[9] = (byte ****)(uint)bVar10" (subscript_expression "((byte *****)local_b0)[9]" (parenthesized_expression "((byte *****)local_b0)" ( (cast_expression "(byte *****)local_b0" ( (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 "pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);" (assignment_expression "pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3])" identifier = (cast_expression "(byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3])" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (call_expression "(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3])" (parenthesized_expression "(**(code **)(puVar37 + 0x895d8))" ( (pointer_expression "**(code **)(puVar37 + 0x895d8)" * (pointer_expression "*(code **)(puVar37 + 0x895d8)" * (cast_expression "(code **)(puVar37 + 0x895d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x895d8)" ( (binary_expression "puVar37 + 0x895d8" identifier + number_literal) ))))) )) (argument_list "(ppppbVar13[3])" ( (subscript_expression "ppppbVar13[3]" identifier [ number_literal ]) ))))) ;) (expression_statement "unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);" (assignment_expression "unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4])" identifier = (cast_expression "(byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4])" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (call_expression "(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4])" (parenthesized_expression "(**(code **)(puVar37 + 0x895d8))" ( (pointer_expression "**(code **)(puVar37 + 0x895d8)" * (pointer_expression "*(code **)(puVar37 + 0x895d8)" * (cast_expression "(code **)(puVar37 + 0x895d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x895d8)" ( (binary_expression "puVar37 + 0x895d8" identifier + number_literal) ))))) )) (argument_list "(ppppbVar13[4])" ( (subscript_expression "ppppbVar13[4]" identifier [ number_literal ]) ))))) ;) (expression_statement "puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);" (assignment_expression "puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1)" identifier = (cast_expression "(undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1)" (parenthesized_expression "(**(code **)(puVar37 + 0x88390))" ( (pointer_expression "**(code **)(puVar37 + 0x88390)" * (pointer_expression "*(code **)(puVar37 + 0x88390)" * (cast_expression "(code **)(puVar37 + 0x88390)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88390)" ( (binary_expression "puVar37 + 0x88390" identifier + number_literal) ))))) )) (argument_list "((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1)" ( (binary_expression "(byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6" (cast_expression "(byte *)((int)pppppbVar36 + 0x1d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar36 + 0x1d)" ( (binary_expression "(int)pppppbVar36 + 0x1d" (cast_expression "(int)pppppbVar36" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) + (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)) , number_literal ))))) ;) (expression_statement "puVar16[4] = 0;" (assignment_expression "puVar16[4] = 0" (subscript_expression "puVar16[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar16[5] = 0;" (assignment_expression "puVar16[5] = 0" (subscript_expression "puVar16[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar27 = *(uint *)(iVar23 + -0x36a0);" (assignment_expression "uVar27 = *(uint *)(iVar23 + -0x36a0)" identifier = (pointer_expression "*(uint *)(iVar23 + -0x36a0)" * (cast_expression "(uint *)(iVar23 + -0x36a0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + -0x36a0)" ( (binary_expression "iVar23 + -0x36a0" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(undefined1 *)(iVar23 + -0x369c);" (assignment_expression "uVar7 = *(undefined1 *)(iVar23 + -0x369c)" identifier = (pointer_expression "*(undefined1 *)(iVar23 + -0x369c)" * (cast_expression "(undefined1 *)(iVar23 + -0x369c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + -0x369c)" ( (binary_expression "iVar23 + -0x369c" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(undefined1 *)(iVar23 + -0x369b);" (assignment_expression "uVar8 = *(undefined1 *)(iVar23 + -0x369b)" identifier = (pointer_expression "*(undefined1 *)(iVar23 + -0x369b)" * (cast_expression "(undefined1 *)(iVar23 + -0x369b)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + -0x369b)" ( (binary_expression "iVar23 + -0x369b" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = *(undefined1 *)(iVar23 + -0x369a);" (assignment_expression "uVar9 = *(undefined1 *)(iVar23 + -0x369a)" identifier = (pointer_expression "*(undefined1 *)(iVar23 + -0x369a)" * (cast_expression "(undefined1 *)(iVar23 + -0x369a)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + -0x369a)" ( (binary_expression "iVar23 + -0x369a" identifier + number_literal) ))))) ;) (expression_statement "puVar16[3] = (char)uVar12;" (assignment_expression "puVar16[3] = (char)uVar12" (subscript_expression "puVar16[3]" identifier [ number_literal ]) = (cast_expression "(char)uVar12" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*puVar16 = (char)((uint)uVar12 >> 0x18);" (assignment_expression "*puVar16 = (char)((uint)uVar12 >> 0x18)" (pointer_expression "*puVar16" * identifier) = (cast_expression "(char)((uint)uVar12 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar12 >> 0x18)" ( (binary_expression "(uint)uVar12 >> 0x18" (cast_expression "(uint)uVar12" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar16[1] = (char)((uint)uVar12 >> 0x10);" (assignment_expression "puVar16[1] = (char)((uint)uVar12 >> 0x10)" (subscript_expression "puVar16[1]" identifier [ number_literal ]) = (cast_expression "(char)((uint)uVar12 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar12 >> 0x10)" ( (binary_expression "(uint)uVar12 >> 0x10" (cast_expression "(uint)uVar12" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar16[2] = (char)((uint)uVar12 >> 8);" (assignment_expression "puVar16[2] = (char)((uint)uVar12 >> 8)" (subscript_expression "puVar16[2]" identifier [ number_literal ]) = (cast_expression "(char)((uint)uVar12 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar12 >> 8)" ( (binary_expression "(uint)uVar12 >> 8" (cast_expression "(uint)uVar12" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar16[7] = 7;" (assignment_expression "puVar16[7] = 7" (subscript_expression "puVar16[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar16[6] = 0;" (assignment_expression "puVar16[6] = 0" (subscript_expression "puVar16[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar17 = puVar16 + 8;" (assignment_expression "puVar17 = puVar16 + 8" identifier = (binary_expression "puVar16 + 8" identifier + number_literal)) ;) (expression_statement "uVar31 = (uint)puVar17 & 3;" (assignment_expression "uVar31 = (uint)puVar17 & 3" identifier = (binary_expression "(uint)puVar17 & 3" (cast_expression "(uint)puVar17" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "*(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;" (assignment_expression "*(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8" (pointer_expression "*(uint *)(puVar17 + -uVar31)" * (cast_expression "(uint *)(puVar17 + -uVar31)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -uVar31)" ( (binary_expression "puVar17 + -uVar31" identifier + (unary_expression "-uVar31" - identifier)) )))) = (binary_expression "*(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8" (binary_expression "*(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8" (pointer_expression "*(uint *)(puVar17 + -uVar31)" * (cast_expression "(uint *)(puVar17 + -uVar31)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -uVar31)" ( (binary_expression "puVar17 + -uVar31" identifier + (unary_expression "-uVar31" - identifier)) )))) & (binary_expression "-1 << (4 - uVar31) * 8" number_literal << (binary_expression "(4 - uVar31) * 8" (parenthesized_expression "(4 - uVar31)" ( (binary_expression "4 - uVar31" number_literal - identifier) )) * number_literal))) | (binary_expression "uVar27 >> uVar31 * 8" identifier >> (binary_expression "uVar31 * 8" identifier * number_literal)))) ;) (expression_statement "puVar17 = puVar16 + 0xb;" (assignment_expression "puVar17 = puVar16 + 0xb" identifier = (binary_expression "puVar16 + 0xb" identifier + number_literal)) ;) (expression_statement "uVar31 = (uint)puVar17 & 3;" (assignment_expression "uVar31 = (uint)puVar17 & 3" identifier = (binary_expression "(uint)puVar17 & 3" (cast_expression "(uint)puVar17" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "*(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;" (assignment_expression "*(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8" (pointer_expression "*(uint *)(puVar17 + -uVar31)" * (cast_expression "(uint *)(puVar17 + -uVar31)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -uVar31)" ( (binary_expression "puVar17 + -uVar31" identifier + (unary_expression "-uVar31" - identifier)) )))) = (binary_expression "*(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8" (binary_expression "*(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8" (pointer_expression "*(uint *)(puVar17 + -uVar31)" * (cast_expression "(uint *)(puVar17 + -uVar31)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -uVar31)" ( (binary_expression "puVar17 + -uVar31" identifier + (unary_expression "-uVar31" - identifier)) )))) & (binary_expression "0xffffffffU >> (uVar31 + 1) * 8" number_literal >> (binary_expression "(uVar31 + 1) * 8" (parenthesized_expression "(uVar31 + 1)" ( (binary_expression "uVar31 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "uVar27 << (3 - uVar31) * 8" identifier << (binary_expression "(3 - uVar31) * 8" (parenthesized_expression "(3 - uVar31)" ( (binary_expression "3 - uVar31" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "puVar16[0xc] = uVar7;" (assignment_expression "puVar16[0xc] = uVar7" (subscript_expression "puVar16[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar16[0xd] = uVar8;" (assignment_expression "puVar16[0xd] = uVar8" (subscript_expression "puVar16[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar16[0xe] = uVar9;" (assignment_expression "puVar16[0xe] = uVar9" (subscript_expression "puVar16[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar16[0x10] = bVar10;" (assignment_expression "puVar16[0x10] = bVar10" (subscript_expression "puVar16[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);" (assignment_expression "puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18)" (subscript_expression "puVar16[0x11]" identifier [ number_literal ]) = (cast_expression "(char)((uint)pppppbVar36 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)pppppbVar36 >> 0x18)" ( (binary_expression "(uint)pppppbVar36 >> 0x18" (cast_expression "(uint)pppppbVar36" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);" (assignment_expression "puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10)" (subscript_expression "puVar16[0x12]" identifier [ number_literal ]) = (cast_expression "(char)((uint)pppppbVar36 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)pppppbVar36 >> 0x10)" ( (binary_expression "(uint)pppppbVar36 >> 0x10" (cast_expression "(uint)pppppbVar36" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);" (assignment_expression "puVar16[0x13] = (char)((uint)pppppbVar36 >> 8)" (subscript_expression "puVar16[0x13]" identifier [ number_literal ]) = (cast_expression "(char)((uint)pppppbVar36 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)pppppbVar36 >> 8)" ( (binary_expression "(uint)pppppbVar36 >> 8" (cast_expression "(uint)pppppbVar36" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar16[0x14] = (char)pppppbVar36;" (assignment_expression "puVar16[0x14] = (char)pppppbVar36" (subscript_expression "puVar16[0x14]" identifier [ number_literal ]) = (cast_expression "(char)pppppbVar36" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pcVar38 = *(code **)(puVar37 + 0x89610);" (assignment_expression "pcVar38 = *(code **)(puVar37 + 0x89610)" identifier = (pointer_expression "*(code **)(puVar37 + 0x89610)" * (cast_expression "(code **)(puVar37 + 0x89610)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x89610)" ( (binary_expression "puVar37 + 0x89610" identifier + number_literal) ))))) ;) (expression_statement "puVar16[0xf] = cVar5 != '\0';" (assignment_expression "puVar16[0xf] = cVar5 != '\0'" (subscript_expression "puVar16[0xf]" identifier [ number_literal ]) = (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ;) (expression_statement "(*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);" (call_expression "(*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36)" ( (binary_expression "puVar16 + 0x15" identifier + number_literal) , (subscript_expression "((byte *****)local_b0)[5][3]" (subscript_expression "((byte *****)local_b0)[5]" (parenthesized_expression "((byte *****)local_b0)" ( (cast_expression "(byte *****)local_b0" ( (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 "puVar17 = puVar16 + (int)pppppbVar36;" (assignment_expression "puVar17 = puVar16 + (int)pppppbVar36" identifier = (binary_expression "puVar16 + (int)pppppbVar36" identifier + (cast_expression "(int)pppppbVar36" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);" (assignment_expression "puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18)" (subscript_expression "puVar17[0x15]" identifier [ number_literal ]) = (cast_expression "(char)((uint)unaff_s6 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)unaff_s6 >> 0x18)" ( (binary_expression "(uint)unaff_s6 >> 0x18" (cast_expression "(uint)unaff_s6" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);" (assignment_expression "puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10)" (subscript_expression "puVar17[0x16]" identifier [ number_literal ]) = (cast_expression "(char)((uint)unaff_s6 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)unaff_s6 >> 0x10)" ( (binary_expression "(uint)unaff_s6 >> 0x10" (cast_expression "(uint)unaff_s6" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar17[0x17] = (char)((uint)unaff_s6 >> 8);" (assignment_expression "puVar17[0x17] = (char)((uint)unaff_s6 >> 8)" (subscript_expression "puVar17[0x17]" identifier [ number_literal ]) = (cast_expression "(char)((uint)unaff_s6 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)unaff_s6 >> 8)" ( (binary_expression "(uint)unaff_s6 >> 8" (cast_expression "(uint)unaff_s6" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar17[0x18] = (char)unaff_s6;" (assignment_expression "puVar17[0x18] = (char)unaff_s6" (subscript_expression "puVar17[0x18]" identifier [ number_literal ]) = (cast_expression "(char)unaff_s6" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "(**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);" (call_expression "(**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6)" (parenthesized_expression "(**(code **)(puVar37 + 0x89610))" ( (pointer_expression "**(code **)(puVar37 + 0x89610)" * (pointer_expression "*(code **)(puVar37 + 0x89610)" * (cast_expression "(code **)(puVar37 + 0x89610)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x89610)" ( (binary_expression "puVar37 + 0x89610" identifier + number_literal) ))))) )) (argument_list "(puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6)" ( (binary_expression "puVar16 + (int)((int)pppppbVar36 + 0x19)" identifier + (cast_expression "(int)((int)pppppbVar36 + 0x19)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pppppbVar36 + 0x19)" ( (binary_expression "(int)pppppbVar36 + 0x19" (cast_expression "(int)pppppbVar36" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (subscript_expression "((byte *****)local_b0)[5][4]" (subscript_expression "((byte *****)local_b0)[5]" (parenthesized_expression "((byte *****)local_b0)" ( (cast_expression "(byte *****)local_b0" ( (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 "puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);" (assignment_expression "puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6)" identifier = (binary_expression "puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6)" identifier + (cast_expression "(int)((int)pppppbVar36 + (int)unaff_s6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pppppbVar36 + (int)unaff_s6)" ( (binary_expression "(int)pppppbVar36 + (int)unaff_s6" (cast_expression "(int)pppppbVar36" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "puVar17[0x1c] = bVar2;" (assignment_expression "puVar17[0x1c] = bVar2" (subscript_expression "puVar17[0x1c]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[0x19] = bVar26;" (assignment_expression "puVar17[0x19] = bVar26" (subscript_expression "puVar17[0x19]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[0x1a] = bVar1;" (assignment_expression "puVar17[0x1a] = bVar1" (subscript_expression "puVar17[0x1a]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[0x1b] = bVar3;" (assignment_expression "puVar17[0x1b] = bVar3" (subscript_expression "puVar17[0x1b]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);" (call_expression "(**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b70))" ( (pointer_expression "**(code **)(puVar37 + 0x88b70)" * (pointer_expression "*(code **)(puVar37 + 0x88b70)" * (cast_expression "(code **)(puVar37 + 0x88b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88b70)" ( (binary_expression "puVar37 + 0x88b70" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) )))) + number_literal) )))) , (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) )))) , number_literal , identifier , (binary_expression "(byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6" (cast_expression "(byte *)((int)pppppbVar36 + 0x1d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar36 + 0x1d)" ( (binary_expression "(int)pppppbVar36 + 0x1d" (cast_expression "(int)pppppbVar36" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) + (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)) , number_literal ))) ;) (expression_statement "(**(code **)(puVar37 + 0x88394))(puVar16);" (call_expression "(**(code **)(puVar37 + 0x88394))(puVar16)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" ( (pointer_expression "**(code **)(puVar37 + 0x88394)" * (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(puVar16)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" * (cast_expression "(undefined4 *)(iVar22 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000893ac;" goto statement_identifier ;) })) (goto_statement "goto LAB_00089df8;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);" statement_identifier : (expression_statement "(**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);" (call_expression "(**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b70))" ( (pointer_expression "**(code **)(puVar37 + 0x88b70)" * (pointer_expression "*(code **)(puVar37 + 0x88b70)" * (cast_expression "(code **)(puVar37 + 0x88b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88b70)" ( (binary_expression "puVar37 + 0x88b70" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) )))) + number_literal) )))) , (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) )))) , identifier , identifier , identifier , number_literal ))) ;)) (if_statement "if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }" if (parenthesized_expression "((bVar26 == 0x61) && (3 < (int)pbVar32))" ( (binary_expression "(bVar26 == 0x61) && (3 < (int)pbVar32)" (parenthesized_expression "(bVar26 == 0x61)" ( (binary_expression "bVar26 == 0x61" identifier == number_literal) )) && (parenthesized_expression "(3 < (int)pbVar32)" ( (binary_expression "3 < (int)pbVar32" number_literal < (cast_expression "(int)pbVar32" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }" { (expression_statement "local_88 = *(undefined4 *)(iVar22 + 0x25);" (assignment_expression "local_88 = *(undefined4 *)(iVar22 + 0x25)" identifier = (pointer_expression "*(undefined4 *)(iVar22 + 0x25)" * (cast_expression "(undefined4 *)(iVar22 + 0x25)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x25)" ( (binary_expression "iVar22 + 0x25" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);" (assignment_expression "iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0)" identifier = (call_expression "find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0)" identifier (argument_list "(*(undefined4 *)(iVar22 + 0x403c),&local_90,0)" ( (pointer_expression "*(undefined4 *)(iVar22 + 0x403c)" * (cast_expression "(undefined4 *)(iVar22 + 0x403c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x403c)" ( (binary_expression "iVar22 + 0x403c" identifier + number_literal) )))) , (pointer_expression "&local_90" & identifier) , number_literal )))) ;) (if_statement "if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }" { (if_statement "if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }" if (parenthesized_expression "(*(int *)(iVar11 + 0x10) == 2)" ( (binary_expression "*(int *)(iVar11 + 0x10) == 2" (pointer_expression "*(int *)(iVar11 + 0x10)" * (cast_expression "(int *)(iVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }" { (expression_statement "(**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));" (call_expression "(**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4))" (parenthesized_expression "(**(code **)(puVar37 + 0x88b74))" ( (pointer_expression "**(code **)(puVar37 + 0x88b74)" * (pointer_expression "*(code **)(puVar37 + 0x88b74)" * (cast_expression "(code **)(puVar37 + 0x88b74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88b74)" ( (binary_expression "puVar37 + 0x88b74" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4))" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) )))) + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar11 + 4)" * (cast_expression "(undefined4 *)(iVar11 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_00087608(iVar22,iVar11);" (call_expression "FUN_00087608(iVar22,iVar11)" identifier (argument_list "(iVar22,iVar11)" ( identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" * (cast_expression "(undefined4 *)(iVar22 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }" else (compound_statement "{\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }" { (expression_statement "*(undefined4 *)(iVar11 + 0x10) = 1;" (assignment_expression "*(undefined4 *)(iVar11 + 0x10) = 1" (pointer_expression "*(undefined4 *)(iVar11 + 0x10)" * (cast_expression "(undefined4 *)(iVar11 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" * (cast_expression "(undefined4 *)(iVar22 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = number_literal) ;) }))) (goto_statement "goto LAB_000893ac;" goto statement_identifier ;) })) })) }) (else_clause "else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }" else (compound_statement "{\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }" { (if_statement "if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }" if (parenthesized_expression "(bVar26 == 0x5c)" ( (binary_expression "bVar26 == 0x5c" identifier == number_literal) )) (compound_statement "{\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }" { (if_statement "if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }" if (parenthesized_expression "(3 < (int)pbVar32)" ( (binary_expression "3 < (int)pbVar32" number_literal < (cast_expression "(int)pbVar32" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }" { (expression_statement "pppppbVar36 = *(byte ******)(iVar22 + 0x25);" (assignment_expression "pppppbVar36 = *(byte ******)(iVar22 + 0x25)" identifier = (pointer_expression "*(byte ******)(iVar22 + 0x25)" * (cast_expression "(byte ******)(iVar22 + 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 "(iVar22 + 0x25)" ( (binary_expression "iVar22 + 0x25" identifier + number_literal) ))))) ;) (expression_statement "unaff_s6 = &local_90;" (assignment_expression "unaff_s6 = &local_90" identifier = (pointer_expression "&local_90" & identifier)) ;) (expression_statement "local_90 = (byte ****)pppppbVar36;" (assignment_expression "local_90 = (byte ****)pppppbVar36" identifier = (cast_expression "(byte ****)pppppbVar36" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (expression_statement "iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);" (assignment_expression "iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0)" identifier = (call_expression "find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0)" identifier (argument_list "(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0)" ( (pointer_expression "*(undefined4 *)(iVar22 + 0x4034)" * (cast_expression "(undefined4 *)(iVar22 + 0x4034)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4034)" ( (binary_expression "iVar22 + 0x4034" identifier + number_literal) )))) , identifier , number_literal )))) ;) (if_statement "if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }" if (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) (compound_statement "{\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }" { (expression_statement "local_8c = (byte ****)pppppbVar36;" (assignment_expression "local_8c = (byte ****)pppppbVar36" identifier = (cast_expression "(byte ****)pppppbVar36" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (expression_statement "iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);" (assignment_expression "iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0)" identifier = (call_expression "find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0)" identifier (argument_list "(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0)" ( (pointer_expression "*(undefined4 *)(iVar22 + 0x4044)" * (cast_expression "(undefined4 *)(iVar22 + 0x4044)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4044)" ( (binary_expression "iVar22 + 0x4044" identifier + number_literal) )))) , identifier , number_literal )))) ;) (if_statement "if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }" { (expression_statement "iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);" (assignment_expression "iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36)" identifier = (call_expression "(**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36)" (parenthesized_expression "(**(code **)(puVar37 + 0x8844c))" ( (pointer_expression "**(code **)(puVar37 + 0x8844c)" * (pointer_expression "*(code **)(puVar37 + 0x8844c)" * (cast_expression "(code **)(puVar37 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8844c)" ( (binary_expression "puVar37 + 0x8844c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36)" ( (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x4680" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) , identifier )))) ;) (goto_statement "goto LAB_00089674;" goto statement_identifier ;) })) (expression_statement "share_xchannel_failure(iVar22,iVar11);" (call_expression "share_xchannel_failure(iVar22,iVar11)" identifier (argument_list "(iVar22,iVar11)" ( identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" * (cast_expression "(undefined4 *)(iVar22 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }" else (compound_statement "{\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }" { (expression_statement "iVar21 = *(int *)(iVar22 + 0xc);" (assignment_expression "iVar21 = *(int *)(iVar22 + 0xc)" identifier = (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = 0x5c;" (assignment_expression "uVar12 = 0x5c" identifier = number_literal) ;) (labeled_statement "LAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);" statement_identifier : (expression_statement "(**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);" (call_expression "(**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b70))" ( (pointer_expression "**(code **)(puVar37 + 0x88b70)" * (pointer_expression "*(code **)(puVar37 + 0x88b70)" * (cast_expression "(code **)(puVar37 + 0x88b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88b70)" ( (binary_expression "puVar37 + 0x88b70" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0)" ( (pointer_expression "*(undefined4 *)(iVar21 + 0x14)" * (cast_expression "(undefined4 *)(iVar21 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x14)" ( (binary_expression "iVar21 + 0x14" identifier + number_literal) )))) , (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) )))) , identifier , identifier , identifier , number_literal ))) ;)) (expression_statement "del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);" (call_expression "del234(*(undefined4 *)(iVar22 + 0x4034),iVar23)" identifier (argument_list "(*(undefined4 *)(iVar22 + 0x4034),iVar23)" ( (pointer_expression "*(undefined4 *)(iVar22 + 0x4034)" * (cast_expression "(undefined4 *)(iVar22 + 0x4034)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4034)" ( (binary_expression "iVar22 + 0x4034" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "(**(code **)(puVar37 + 0x88394))(iVar23);" (call_expression "(**(code **)(puVar37 + 0x88394))(iVar23)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" ( (pointer_expression "**(code **)(puVar37 + 0x88394)" * (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(iVar23)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" * (cast_expression "(undefined4 *)(iVar22 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = number_literal) ;) }))) (goto_statement "goto LAB_000893ac;" goto statement_identifier ;) })) (expression_statement "iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);" (assignment_expression "iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658)" identifier = (call_expression "(**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658)" (parenthesized_expression "(**(code **)(puVar37 + 0x8844c))" ( (pointer_expression "**(code **)(puVar37 + 0x8844c)" * (pointer_expression "*(code **)(puVar37 + 0x8844c)" * (cast_expression "(code **)(puVar37 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8844c)" ( (binary_expression "puVar37 + 0x8844c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x4658)" ( (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x4658" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_00089674;" goto statement_identifier ;) })) (if_statement "if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }" if (parenthesized_expression "(0x5b < bVar26)" ( (binary_expression "0x5b < bVar26" number_literal < identifier) )) (compound_statement "{\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }" { (if_statement "if (100 < bVar26) goto LAB_0008965c;" if (parenthesized_expression "(100 < bVar26)" ( (binary_expression "100 < bVar26" number_literal < identifier) )) (goto_statement "goto LAB_0008965c;" goto statement_identifier ;)) (goto_statement "goto LAB_00089714;" goto statement_identifier ;) })) (if_statement "if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }" if (parenthesized_expression "((int)pbVar32 < 0x10)" ( (binary_expression "(int)pbVar32 < 0x10" (cast_expression "(int)pbVar32" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }" { (expression_statement "iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);" (assignment_expression "iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac)" identifier = (call_expression "(**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac)" (parenthesized_expression "(**(code **)(puVar37 + 0x8844c))" ( (pointer_expression "**(code **)(puVar37 + 0x8844c)" * (pointer_expression "*(code **)(puVar37 + 0x8844c)" * (cast_expression "(code **)(puVar37 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8844c)" ( (binary_expression "puVar37 + 0x8844c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x45ac)" ( (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x45ac" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_00089674;" goto statement_identifier ;) })) (expression_statement "uVar31 = iVar22 + 0x25U & 3;" (assignment_expression "uVar31 = iVar22 + 0x25U & 3" identifier = (binary_expression "iVar22 + 0x25U & 3" (binary_expression "iVar22 + 0x25U" identifier + number_literal) & number_literal)) ;) (expression_statement "uVar12 = *(undefined4 *)(iVar22 + 0x29);" (assignment_expression "uVar12 = *(undefined4 *)(iVar22 + 0x29)" identifier = (pointer_expression "*(undefined4 *)(iVar22 + 0x29)" * (cast_expression "(undefined4 *)(iVar22 + 0x29)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x29)" ( (binary_expression "iVar22 + 0x29" identifier + number_literal) ))))) ;) (expression_statement "uVar27 = iVar22 + 0x28U & 3;" (assignment_expression "uVar27 = iVar22 + 0x28U & 3" identifier = (binary_expression "iVar22 + 0x28U & 3" (binary_expression "iVar22 + 0x28U" identifier + number_literal) & number_literal)) ;) (expression_statement "pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);" (assignment_expression "pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8)" identifier = (cast_expression "(byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8)" ( (binary_expression "(*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8" (binary_expression "(*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8" (parenthesized_expression "(*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8)" ( (binary_expression "*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8" (binary_expression "*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8" (pointer_expression "*(int *)((iVar22 + 0x25U) - uVar31)" * (cast_expression "(int *)((iVar22 + 0x25U) - uVar31)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar22 + 0x25U) - uVar31)" ( (binary_expression "(iVar22 + 0x25U) - uVar31" (parenthesized_expression "(iVar22 + 0x25U)" ( (binary_expression "iVar22 + 0x25U" identifier + number_literal) )) - identifier) )))) << (binary_expression "uVar31 * 8" identifier * number_literal)) | (binary_expression "(uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8" (cast_expression "(uint)pppppbVar36" ( (type_descriptor "uint" type_identifier) ) identifier) & (binary_expression "0xffffffffU >> (4 - uVar31) * 8" number_literal >> (binary_expression "(4 - uVar31) * 8" (parenthesized_expression "(4 - uVar31)" ( (binary_expression "4 - uVar31" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar27 + 1) * 8" number_literal << (binary_expression "(uVar27 + 1) * 8" (parenthesized_expression "(uVar27 + 1)" ( (binary_expression "uVar27 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "*(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8" (pointer_expression "*(uint *)((iVar22 + 0x28U) - uVar27)" * (cast_expression "(uint *)((iVar22 + 0x28U) - uVar27)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar22 + 0x28U) - uVar27)" ( (binary_expression "(iVar22 + 0x28U) - uVar27" (parenthesized_expression "(iVar22 + 0x28U)" ( (binary_expression "iVar22 + 0x28U" identifier + number_literal) )) - identifier) )))) >> (binary_expression "(3 - uVar27) * 8" (parenthesized_expression "(3 - uVar27)" ( (binary_expression "3 - uVar27" number_literal - identifier) )) * number_literal))) )))) ;) (expression_statement "local_90 = (byte ****)pppppbVar36;" (assignment_expression "local_90 = (byte ****)pppppbVar36" identifier = (cast_expression "(byte ****)pppppbVar36" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (expression_statement "iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);" (assignment_expression "iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90)" identifier = (call_expression "find234(*(undefined4 *)(iVar22 + 0x4034),&local_90)" identifier (argument_list "(*(undefined4 *)(iVar22 + 0x4034),&local_90)" ( (pointer_expression "*(undefined4 *)(iVar22 + 0x4034)" * (cast_expression "(undefined4 *)(iVar22 + 0x4034)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4034)" ( (binary_expression "iVar22 + 0x4034" identifier + number_literal) )))) , (pointer_expression "&local_90" & identifier) )))) ;) (if_statement "if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }" if (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) (compound_statement "{\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }" { (expression_statement "local_8c = (byte ****)pppppbVar36;" (assignment_expression "local_8c = (byte ****)pppppbVar36" identifier = (cast_expression "(byte ****)pppppbVar36" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (expression_statement "unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);" (assignment_expression "unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0)" identifier = (cast_expression "(byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,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 *)(iVar22 + 0x4044),&local_90,0)" identifier (argument_list "(*(undefined4 *)(iVar22 + 0x4044),&local_90,0)" ( (pointer_expression "*(undefined4 *)(iVar22 + 0x4044)" * (cast_expression "(undefined4 *)(iVar22 + 0x4044)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4044)" ( (binary_expression "iVar22 + 0x4044" identifier + number_literal) )))) , (pointer_expression "&local_90" & identifier) , number_literal ))))) ;) (if_statement "if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;" if (parenthesized_expression "(unaff_s6 == (byte *****)0x0)" ( (binary_expression "unaff_s6 == (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_0008a14c;" goto statement_identifier ;)) (expression_statement "ppppbVar13 = *unaff_s6;" (assignment_expression "ppppbVar13 = *unaff_s6" identifier = (pointer_expression "*unaff_s6" * identifier)) ;) }) (else_clause "else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }" else (compound_statement "{\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }" { (expression_statement "unaff_s6 = (byte *****)0x0;" (assignment_expression "unaff_s6 = (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 "ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);" (assignment_expression "ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" identifier = (cast_expression "(byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b8c))" ( (pointer_expression "**(code **)(puVar37 + 0x88b8c)" * (pointer_expression "*(code **)(puVar37 + 0x88b8c)" * (cast_expression "(code **)(puVar37 + 0x88b8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88b8c)" ( (binary_expression "puVar37 + 0x88b8c" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) )))) + number_literal) )))) , identifier ))))) ;) }))) (expression_statement "*(char *)(iVar22 + 0x2c) = (char)ppppbVar13;" (assignment_expression "*(char *)(iVar22 + 0x2c) = (char)ppppbVar13" (pointer_expression "*(char *)(iVar22 + 0x2c)" * (cast_expression "(char *)(iVar22 + 0x2c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x2c)" ( (binary_expression "iVar22 + 0x2c" identifier + number_literal) )))) = (cast_expression "(char)ppppbVar13" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);" (assignment_expression "*(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18)" (pointer_expression "*(char *)(iVar22 + 0x29)" * (cast_expression "(char *)(iVar22 + 0x29)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x29)" ( (binary_expression "iVar22 + 0x29" identifier + number_literal) )))) = (cast_expression "(char)((uint)ppppbVar13 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)ppppbVar13 >> 0x18)" ( (binary_expression "(uint)ppppbVar13 >> 0x18" (cast_expression "(uint)ppppbVar13" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);" (assignment_expression "*(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10)" (pointer_expression "*(char *)(iVar22 + 0x2a)" * (cast_expression "(char *)(iVar22 + 0x2a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x2a)" ( (binary_expression "iVar22 + 0x2a" identifier + number_literal) )))) = (cast_expression "(char)((uint)ppppbVar13 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)ppppbVar13 >> 0x10)" ( (binary_expression "(uint)ppppbVar13 >> 0x10" (cast_expression "(uint)ppppbVar13" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);" (assignment_expression "*(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8)" (pointer_expression "*(char *)(iVar22 + 0x2b)" * (cast_expression "(char *)(iVar22 + 0x2b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x2b)" ( (binary_expression "iVar22 + 0x2b" identifier + number_literal) )))) = (cast_expression "(char)((uint)ppppbVar13 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)ppppbVar13 >> 8)" ( (binary_expression "(uint)ppppbVar13 >> 8" (cast_expression "(uint)ppppbVar13" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar31 = iVar22 + 0x31U & 3;" (assignment_expression "uVar31 = iVar22 + 0x31U & 3" identifier = (binary_expression "iVar22 + 0x31U & 3" (binary_expression "iVar22 + 0x31U" identifier + number_literal) & number_literal)) ;) (expression_statement "uVar27 = iVar22 + 0x34U & 3;" (assignment_expression "uVar27 = iVar22 + 0x34U & 3" identifier = (binary_expression "iVar22 + 0x34U & 3" (binary_expression "iVar22 + 0x34U" identifier + number_literal) & number_literal)) ;) (expression_statement "uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);" (assignment_expression "uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8)" identifier = (call_expression "FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8)" identifier (argument_list "(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8)" ( (binary_expression "iVar22 + 0x4038" identifier + number_literal) , (binary_expression "iVar22 + 0x403c" identifier + number_literal) , identifier , identifier , identifier , number_literal , (binary_expression "(*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8" (binary_expression "(*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8" (parenthesized_expression "(*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8)" ( (binary_expression "*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8" (binary_expression "*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8" (pointer_expression "*(int *)((iVar22 + 0x31U) - uVar31)" * (cast_expression "(int *)((iVar22 + 0x31U) - uVar31)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar22 + 0x31U) - uVar31)" ( (binary_expression "(iVar22 + 0x31U) - uVar31" (parenthesized_expression "(iVar22 + 0x31U)" ( (binary_expression "iVar22 + 0x31U" identifier + number_literal) )) - identifier) )))) << (binary_expression "uVar31 * 8" identifier * number_literal)) | (binary_expression "in_t3 & 0xffffffffU >> (4 - uVar31) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar31) * 8" number_literal >> (binary_expression "(4 - uVar31) * 8" (parenthesized_expression "(4 - uVar31)" ( (binary_expression "4 - uVar31" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar27 + 1) * 8" number_literal << (binary_expression "(uVar27 + 1) * 8" (parenthesized_expression "(uVar27 + 1)" ( (binary_expression "uVar27 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "*(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8" (pointer_expression "*(uint *)((iVar22 + 0x34U) - uVar27)" * (cast_expression "(uint *)((iVar22 + 0x34U) - uVar27)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar22 + 0x34U) - uVar27)" ( (binary_expression "(iVar22 + 0x34U) - uVar27" (parenthesized_expression "(iVar22 + 0x34U)" ( (binary_expression "iVar22 + 0x34U" identifier + number_literal) )) - identifier) )))) >> (binary_expression "(3 - uVar27) * 8" (parenthesized_expression "(3 - uVar27)" ( (binary_expression "3 - uVar27" number_literal - identifier) )) * number_literal))) )))) ;) (if_statement "if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }" if (parenthesized_expression "(iVar23 != 0)" ( (binary_expression "iVar23 != 0" identifier != number_literal) )) (compound_statement "{\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }" { (expression_statement "iVar21 = *(int *)(iVar22 + 0xc);" (assignment_expression "iVar21 = *(int *)(iVar22 + 0xc)" identifier = (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = 0x5b;" (assignment_expression "uVar12 = 0x5b" identifier = number_literal) ;) (goto_statement "goto LAB_000895b4;" goto statement_identifier ;) })) (if_statement "if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }" if (parenthesized_expression "(unaff_s6 != (byte *****)0x0)" ( (binary_expression "unaff_s6 != (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 *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }" { (if_statement "if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }" if (parenthesized_expression "(*(uint *)(iVar22 + 0x2d) < 0x100)" ( (binary_expression "*(uint *)(iVar22 + 0x2d) < 0x100" (pointer_expression "*(uint *)(iVar22 + 0x2d)" * (cast_expression "(uint *)(iVar22 + 0x2d)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x2d)" ( (binary_expression "iVar22 + 0x2d" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }" { (expression_statement "iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));" (assignment_expression "iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d))" identifier = (call_expression "(**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d))" (parenthesized_expression "(**(code **)(puVar37 + 0x8844c))" ( (pointer_expression "**(code **)(puVar37 + 0x8844c)" * (pointer_expression "*(code **)(puVar37 + 0x8844c)" * (cast_expression "(code **)(puVar37 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8844c)" ( (binary_expression "puVar37 + 0x8844c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d))" ( (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x4614" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(uint *)(iVar22 + 0x2d)" * (cast_expression "(uint *)(iVar22 + 0x2d)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x2d)" ( (binary_expression "iVar22 + 0x2d" identifier + number_literal) )))) )))) ;) (goto_statement "goto LAB_00089674;" goto statement_identifier ;) })) (expression_statement "share_xchannel_confirmation(iVar22,unaff_s6,uVar12);" (call_expression "share_xchannel_confirmation(iVar22,unaff_s6,uVar12)" identifier (argument_list "(iVar22,unaff_s6,uVar12)" ( identifier , identifier , identifier ))) ;) (expression_statement "FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);" (call_expression "FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6)" identifier (argument_list "(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6)" ( (pointer_expression "*(undefined4 *)(iVar22 + 0x4040)" * (cast_expression "(undefined4 *)(iVar22 + 0x4040)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4040)" ( (binary_expression "iVar22 + 0x4040" identifier + number_literal) )))) , (binary_expression "iVar22 + 0x4044" identifier + number_literal) , identifier ))) ;) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" * (cast_expression "(undefined4 *)(iVar22 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000893ac;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;" statement_identifier : (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" * (cast_expression "(undefined4 *)(iVar22 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = number_literal) ;)) (goto_statement "goto LAB_000893ac;" goto statement_identifier ;) })) (expression_statement "iVar23 = *(int *)(puVar37 + 0x8839c);" (assignment_expression "iVar23 = *(int *)(puVar37 + 0x8839c)" identifier = (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) ))))) ;) (if_statement "if (3 < (int)pbVar32) {\n          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n          if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);\n          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);\n          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);\n          unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);\n          uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);\n          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);\n          *pbVar18 = (byte)((uint)uVar12 >> 0x10);\n          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);\n          *pbVar30 = (byte)uVar12;\n          (**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }" if (parenthesized_expression "(3 < (int)pbVar32)" ( (binary_expression "3 < (int)pbVar32" number_literal < (cast_expression "(int)pbVar32" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n          if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);\n          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);\n          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);\n          unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);\n          uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);\n          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);\n          *pbVar18 = (byte)((uint)uVar12 >> 0x10);\n          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);\n          *pbVar30 = (byte)uVar12;\n          (**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }" { (expression_statement "iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);" (assignment_expression "iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90)" identifier = (call_expression "FUN_000879c0(iVar11,pbVar32,0,&local_90)" identifier (argument_list "(iVar11,pbVar32,0,&local_90)" ( identifier , identifier , number_literal , (pointer_expression "&local_90" & identifier) )))) ;) (if_statement "if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }" if (parenthesized_expression "(((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90))" ( (binary_expression "((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)" (parenthesized_expression "((iVar23 == 0) || ((int)local_90 < 0))" ( (binary_expression "(iVar23 == 0) || ((int)local_90 < 0)" (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) || (parenthesized_expression "((int)local_90 < 0)" ( (binary_expression "(int)local_90 < 0" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) ))) )) || (parenthesized_expression "(pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)" ( (comma_expression "pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90" (assignment_expression "pppppbVar36 = (byte *****)((int)local_90 + iVar11)" identifier = (cast_expression "(byte *****)((int)local_90 + iVar11)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_90 + iVar11)" ( (binary_expression "(int)local_90 + iVar11" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) , (binary_expression "(int)(unaff_s6 + -4) <= (int)local_90" (cast_expression "(int)(unaff_s6 + -4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(unaff_s6 + -4)" ( (binary_expression "unaff_s6 + -4" identifier + number_literal) ))) <= (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }" { (expression_statement "iVar23 = *(int *)(puVar37 + 0x8839c);" (assignment_expression "iVar23 = *(int *)(puVar37 + 0x8839c)" identifier = (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00089d50;" goto statement_identifier ;) })) (expression_statement "pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);" (assignment_expression "pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26)" identifier = (cast_expression "(byte *)((int)local_90 + iVar22 + 0x26)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + iVar22 + 0x26)" ( (binary_expression "(int)local_90 + iVar22 + 0x26" (binary_expression "(int)local_90 + iVar22" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);" (assignment_expression "local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27)" identifier = (cast_expression "(byte ****)((int)local_90 + iVar22 + 0x27)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)local_90 + iVar22 + 0x27)" ( (binary_expression "(int)local_90 + iVar22 + 0x27" (binary_expression "(int)local_90 + iVar22" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);" (assignment_expression "pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28)" identifier = (cast_expression "(byte *)((int)local_90 + iVar22 + 0x28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + iVar22 + 0x28)" ( (binary_expression "(int)local_90 + iVar22 + 0x28" (binary_expression "(int)local_90 + iVar22" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);" (assignment_expression "unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8)" identifier = (cast_expression "(byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 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 *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8)" ( (binary_expression "(uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8" (binary_expression "(uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30" (binary_expression "(uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10" (binary_expression "(uint)*(byte *)pppppbVar36 << 0x18" (binary_expression "(uint)*(byte *)pppppbVar36" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)pppppbVar36" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) << number_literal) | (binary_expression "(uint)*pbVar18 << 0x10" (binary_expression "(uint)*pbVar18" (parenthesized_expression "(uint)" ( identifier )) * identifier) << number_literal)) | (binary_expression "(uint)*pbVar30" (parenthesized_expression "(uint)" ( identifier )) * identifier)) | (binary_expression "(uint)*(byte *)local_b0 << 8" (binary_expression "(uint)*(byte *)local_b0" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)local_b0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) << number_literal)) )))) ;) (expression_statement "uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);" (assignment_expression "uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" identifier = (call_expression "(**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b8c))" ( (pointer_expression "**(code **)(puVar37 + 0x88b8c)" * (pointer_expression "*(code **)(puVar37 + 0x88b8c)" * (cast_expression "(code **)(puVar37 + 0x88b8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88b8c)" ( (binary_expression "puVar37 + 0x88b8c" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) )))) + number_literal) )))) , identifier )))) ;) (expression_statement "FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);" (call_expression "FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8)" identifier (argument_list "(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8)" ( (binary_expression "iVar22 + 0x4038" identifier + number_literal) , (binary_expression "iVar22 + 0x403c" identifier + number_literal) , identifier , identifier , number_literal , number_literal , (binary_expression "(uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8" (binary_expression "(uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb)" (binary_expression "(uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10" (binary_expression "(uint)*(byte *)(pppppbVar36 + 2) << 0x18" (binary_expression "(uint)*(byte *)(pppppbVar36 + 2)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(pppppbVar36 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppbVar36 + 2)" ( (binary_expression "pppppbVar36 + 2" identifier + number_literal) )))) << number_literal) | (binary_expression "(uint)*(byte *)((int)pppppbVar36 + 9) << 0x10" (binary_expression "(uint)*(byte *)((int)pppppbVar36 + 9)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)pppppbVar36 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar36 + 9)" ( (binary_expression "(int)pppppbVar36 + 9" (cast_expression "(int)pppppbVar36" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) << number_literal)) | (binary_expression "(uint)*(byte *)((int)pppppbVar36 + 0xb)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)pppppbVar36 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar36 + 0xb)" ( (binary_expression "(int)pppppbVar36 + 0xb" (cast_expression "(int)pppppbVar36" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) | (binary_expression "(uint)*(byte *)((int)pppppbVar36 + 10) << 8" (binary_expression "(uint)*(byte *)((int)pppppbVar36 + 10)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)pppppbVar36 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar36 + 10)" ( (binary_expression "(int)pppppbVar36 + 10" (cast_expression "(int)pppppbVar36" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) << number_literal)) ))) ;) (expression_statement "*(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);" (assignment_expression "*(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18)" (pointer_expression "*(byte *)pppppbVar36" * (cast_expression "(byte *)pppppbVar36" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (call_expression "(byte)((uint)uVar12 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)uVar12 >> 0x18)" ( (binary_expression "(uint)uVar12 >> 0x18" (cast_expression "(uint)uVar12" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*pbVar18 = (byte)((uint)uVar12 >> 0x10);" (assignment_expression "*pbVar18 = (byte)((uint)uVar12 >> 0x10)" (pointer_expression "*pbVar18" * identifier) = (call_expression "(byte)((uint)uVar12 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)uVar12 >> 0x10)" ( (binary_expression "(uint)uVar12 >> 0x10" (cast_expression "(uint)uVar12" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(byte *)local_b0 = (byte)((uint)uVar12 >> 8);" (assignment_expression "*(byte *)local_b0 = (byte)((uint)uVar12 >> 8)" (pointer_expression "*(byte *)local_b0" * (cast_expression "(byte *)local_b0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (call_expression "(byte)((uint)uVar12 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)uVar12 >> 8)" ( (binary_expression "(uint)uVar12 >> 8" (cast_expression "(uint)uVar12" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*pbVar30 = (byte)uVar12;" (assignment_expression "*pbVar30 = (byte)uVar12" (pointer_expression "*pbVar30" * identifier) = (cast_expression "(byte)uVar12" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "(**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);" (call_expression "(**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b70))" ( (pointer_expression "**(code **)(puVar37 + 0x88b70)" * (pointer_expression "*(code **)(puVar37 + 0x88b70)" * (cast_expression "(code **)(puVar37 + 0x88b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88b70)" ( (binary_expression "puVar37 + 0x88b70" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) )))) + number_literal) )))) , (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) )))) , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" * (cast_expression "(undefined4 *)(iVar22 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000893ac;" goto statement_identifier ;) })) (labeled_statement "LAB_00089d50:\n        iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);" statement_identifier : (expression_statement "iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);" (assignment_expression "iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c)" identifier = (call_expression "(**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c)" (parenthesized_expression "(**(code **)(puVar37 + 0x8844c))" ( (pointer_expression "**(code **)(puVar37 + 0x8844c)" * (pointer_expression "*(code **)(puVar37 + 0x8844c)" * (cast_expression "(code **)(puVar37 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8844c)" ( (binary_expression "puVar37 + 0x8844c" identifier + number_literal) ))))) )) (argument_list "(iVar23 + 0x458c)" ( (binary_expression "iVar23 + 0x458c" identifier + number_literal) )))) ;)) (labeled_statement "LAB_00089674:\n        while (iVar11 == 0) {\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }" statement_identifier : (while_statement "while (iVar11 == 0) {\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }" while (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }" { (expression_statement "(**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);" (call_expression "(**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870)" (parenthesized_expression "(**(code **)(puVar37 + 0x88ff4))" ( (pointer_expression "**(code **)(puVar37 + 0x88ff4)" * (pointer_expression "*(code **)(puVar37 + 0x88ff4)" * (cast_expression "(code **)(puVar37 + 0x88ff4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88ff4)" ( (binary_expression "puVar37 + 0x88ff4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870)" ( (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x4768" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x43dc" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x4870" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);" statement_identifier : (expression_statement "iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);" (assignment_expression "iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36)" identifier = (call_expression "(**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36)" (parenthesized_expression "(**(code **)(puVar37 + 0x8844c))" ( (pointer_expression "**(code **)(puVar37 + 0x8844c)" * (pointer_expression "*(code **)(puVar37 + 0x8844c)" * (cast_expression "(code **)(puVar37 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8844c)" ( (binary_expression "puVar37 + 0x8844c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36)" ( (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x45d8" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) , identifier )))) ;)) }))) (expression_statement "FUN_000887e0(iVar22,iVar11);" (call_expression "FUN_000887e0(iVar22,iVar11)" identifier (argument_list "(iVar22,iVar11)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar37 + 0x88394))(iVar11);" (call_expression "(**(code **)(puVar37 + 0x88394))(iVar11)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" ( (pointer_expression "**(code **)(puVar37 + 0x88394)" * (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(iVar11)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" * (cast_expression "(undefined4 *)(iVar22 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000893ac;" goto statement_identifier ;) })) (expression_statement "uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11);" (assignment_expression "uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11)" identifier = (call_expression "(**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11)" (parenthesized_expression "(**(code **)(puVar37 + 0x8844c))" ( (pointer_expression "**(code **)(puVar37 + 0x8844c)" * (pointer_expression "*(code **)(puVar37 + 0x8844c)" * (cast_expression "(code **)(puVar37 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8844c)" ( (binary_expression "puVar37 + 0x8844c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11)" ( (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x4544" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) , identifier )))) ;) (labeled_statement "LAB_000890b4:\n      FUN_000887e0(iVar22,uVar12);" statement_identifier : (expression_statement "FUN_000887e0(iVar22,uVar12);" (call_expression "FUN_000887e0(iVar22,uVar12)" identifier (argument_list "(iVar22,uVar12)" ( identifier , identifier ))) ;)) (expression_statement "(**(code **)(puVar37 + 0x88394))(uVar12);" (call_expression "(**(code **)(puVar37 + 0x88394))(uVar12)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" ( (pointer_expression "**(code **)(puVar37 + 0x88394)" * (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(uVar12)" ( identifier ))) ;) (expression_statement "unaff_s5 = pbVar28;" (assignment_expression "unaff_s5 = pbVar28" identifier = identifier) ;) (labeled_statement "LAB_000890e0:\n      *(undefined4 *)(iVar22 + 0x10) = 0;" statement_identifier : (expression_statement "*(undefined4 *)(iVar22 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x10)" * (cast_expression "(undefined4 *)(iVar22 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x10)" ( (binary_expression "iVar22 + 0x10" identifier + number_literal) )))) = number_literal) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) })) (expression_statement "uVar31 = *(uint *)(iVar22 + 0x4030);" (assignment_expression "uVar31 = *(uint *)(iVar22 + 0x4030)" identifier = (pointer_expression "*(uint *)(iVar22 + 0x4030)" * (cast_expression "(uint *)(iVar22 + 0x4030)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) ))))) ;) (expression_statement "bVar26 = *pbVar28;" (assignment_expression "bVar26 = *pbVar28" identifier = (pointer_expression "*pbVar28" * identifier)) ;) (expression_statement "pbVar34 = pbVar32 + -1;" (assignment_expression "pbVar34 = pbVar32 + -1" identifier = (binary_expression "pbVar32 + -1" identifier + number_literal)) ;) (expression_statement "pbVar30 = pbVar28 + 1;" (assignment_expression "pbVar30 = pbVar28 + 1" identifier = (binary_expression "pbVar28 + 1" identifier + number_literal)) ;) (if_statement "if (bVar26 == 10) {\nLAB_0008942c:\n    pbVar28 = pbVar30;\n    if (0x2d < uVar31) {\n      pppppbVar36 = (byte *****)(iVar22 + 0x20);\n      iVar11 = (**(code **)(puVar37 + 0x894d4))\n                         (pppppbVar36,*(int *)(puVar37 + 0x8839c) + 0x4890,0x2e);\n      if (iVar11 == 0) {\n        if ((0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')) {\n          *(uint *)(iVar22 + 0x4030) = uVar27;\n          uVar31 = uVar27;\n        }\n        (**(code **)(puVar37 + 0x88b68))\n                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36);\n        *(undefined4 *)(iVar22 + 0x18) = 1;\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n    }\n    uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44f4);\n    goto LAB_000890b4;\n  }" if (parenthesized_expression "(bVar26 == 10)" ( (binary_expression "bVar26 == 10" identifier == number_literal) )) (compound_statement "{\nLAB_0008942c:\n    pbVar28 = pbVar30;\n    if (0x2d < uVar31) {\n      pppppbVar36 = (byte *****)(iVar22 + 0x20);\n      iVar11 = (**(code **)(puVar37 + 0x894d4))\n                         (pppppbVar36,*(int *)(puVar37 + 0x8839c) + 0x4890,0x2e);\n      if (iVar11 == 0) {\n        if ((0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')) {\n          *(uint *)(iVar22 + 0x4030) = uVar27;\n          uVar31 = uVar27;\n        }\n        (**(code **)(puVar37 + 0x88b68))\n                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36);\n        *(undefined4 *)(iVar22 + 0x18) = 1;\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n    }\n    uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44f4);\n    goto LAB_000890b4;\n  }" { (labeled_statement "LAB_0008942c:\n    pbVar28 = pbVar30;" statement_identifier : (expression_statement "pbVar28 = pbVar30;" (assignment_expression "pbVar28 = pbVar30" identifier = identifier) ;)) (if_statement "if (0x2d < uVar31) {\n      pppppbVar36 = (byte *****)(iVar22 + 0x20);\n      iVar11 = (**(code **)(puVar37 + 0x894d4))\n                         (pppppbVar36,*(int *)(puVar37 + 0x8839c) + 0x4890,0x2e);\n      if (iVar11 == 0) {\n        if ((0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')) {\n          *(uint *)(iVar22 + 0x4030) = uVar27;\n          uVar31 = uVar27;\n        }\n        (**(code **)(puVar37 + 0x88b68))\n                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36);\n        *(undefined4 *)(iVar22 + 0x18) = 1;\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n    }" if (parenthesized_expression "(0x2d < uVar31)" ( (binary_expression "0x2d < uVar31" number_literal < identifier) )) (compound_statement "{\n      pppppbVar36 = (byte *****)(iVar22 + 0x20);\n      iVar11 = (**(code **)(puVar37 + 0x894d4))\n                         (pppppbVar36,*(int *)(puVar37 + 0x8839c) + 0x4890,0x2e);\n      if (iVar11 == 0) {\n        if ((0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')) {\n          *(uint *)(iVar22 + 0x4030) = uVar27;\n          uVar31 = uVar27;\n        }\n        (**(code **)(puVar37 + 0x88b68))\n                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36);\n        *(undefined4 *)(iVar22 + 0x18) = 1;\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n    }" { (expression_statement "pppppbVar36 = (byte *****)(iVar22 + 0x20);" (assignment_expression "pppppbVar36 = (byte *****)(iVar22 + 0x20)" identifier = (cast_expression "(byte *****)(iVar22 + 0x20)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(iVar22 + 0x20)" ( (binary_expression "iVar22 + 0x20" identifier + number_literal) )))) ;) (expression_statement "iVar11 = (**(code **)(puVar37 + 0x894d4))\n                         (pppppbVar36,*(int *)(puVar37 + 0x8839c) + 0x4890,0x2e);" (assignment_expression "iVar11 = (**(code **)(puVar37 + 0x894d4))\n                         (pppppbVar36,*(int *)(puVar37 + 0x8839c) + 0x4890,0x2e)" identifier = (call_expression "(**(code **)(puVar37 + 0x894d4))\n                         (pppppbVar36,*(int *)(puVar37 + 0x8839c) + 0x4890,0x2e)" (parenthesized_expression "(**(code **)(puVar37 + 0x894d4))" ( (pointer_expression "**(code **)(puVar37 + 0x894d4)" * (pointer_expression "*(code **)(puVar37 + 0x894d4)" * (cast_expression "(code **)(puVar37 + 0x894d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x894d4)" ( (binary_expression "puVar37 + 0x894d4" identifier + number_literal) ))))) )) (argument_list "(pppppbVar36,*(int *)(puVar37 + 0x8839c) + 0x4890,0x2e)" ( identifier , (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x4890" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (if_statement "if (iVar11 == 0) {\n        if ((0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')) {\n          *(uint *)(iVar22 + 0x4030) = uVar27;\n          uVar31 = uVar27;\n        }\n        (**(code **)(puVar37 + 0x88b68))\n                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36);\n        *(undefined4 *)(iVar22 + 0x18) = 1;\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n        if ((0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')) {\n          *(uint *)(iVar22 + 0x4030) = uVar27;\n          uVar31 = uVar27;\n        }\n        (**(code **)(puVar37 + 0x88b68))\n                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36);\n        *(undefined4 *)(iVar22 + 0x18) = 1;\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }" { (if_statement "if ((0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')) {\n          *(uint *)(iVar22 + 0x4030) = uVar27;\n          uVar31 = uVar27;\n        }" if (parenthesized_expression "((0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r'))" ( (binary_expression "(0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')" (parenthesized_expression "(0 < (int)uVar31)" ( (binary_expression "0 < (int)uVar31" number_literal < (cast_expression "(int)uVar31" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')" ( (comma_expression "uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r'" (assignment_expression "uVar27 = uVar31 - 1" identifier = (binary_expression "uVar31 - 1" identifier - number_literal)) , (binary_expression "*(char *)(iVar22 + uVar27 + 0x20) == '\r'" (pointer_expression "*(char *)(iVar22 + uVar27 + 0x20)" * (cast_expression "(char *)(iVar22 + uVar27 + 0x20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + uVar27 + 0x20)" ( (binary_expression "iVar22 + uVar27 + 0x20" (binary_expression "iVar22 + uVar27" identifier + identifier) + number_literal) )))) == (char_literal "'\r'" ' escape_sequence '))) ))) )) (compound_statement "{\n          *(uint *)(iVar22 + 0x4030) = uVar27;\n          uVar31 = uVar27;\n        }" { (expression_statement "*(uint *)(iVar22 + 0x4030) = uVar27;" (assignment_expression "*(uint *)(iVar22 + 0x4030) = uVar27" (pointer_expression "*(uint *)(iVar22 + 0x4030)" * (cast_expression "(uint *)(iVar22 + 0x4030)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar31 = uVar27;" (assignment_expression "uVar31 = uVar27" identifier = identifier) ;) })) (expression_statement "(**(code **)(puVar37 + 0x88b68))\n                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36);" (call_expression "(**(code **)(puVar37 + 0x88b68))\n                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b68))" ( (pointer_expression "**(code **)(puVar37 + 0x88b68)" * (pointer_expression "*(code **)(puVar37 + 0x88b68)" * (cast_expression "(code **)(puVar37 + 0x88b68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88b68)" ( (binary_expression "puVar37 + 0x88b68" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) )))) + number_literal) )))) , (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) )))) , (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x4524" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) , identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(iVar22 + 0x18) = 1;" (assignment_expression "*(undefined4 *)(iVar22 + 0x18) = 1" (pointer_expression "*(undefined4 *)(iVar22 + 0x18)" * (cast_expression "(undefined4 *)(iVar22 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x18)" ( (binary_expression "iVar22 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" * (cast_expression "(undefined4 *)(iVar22 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000893ac;" goto statement_identifier ;) })) })) (expression_statement "uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44f4);" (assignment_expression "uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44f4)" identifier = (call_expression "(**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44f4)" (parenthesized_expression "(**(code **)(puVar37 + 0x8844c))" ( (pointer_expression "**(code **)(puVar37 + 0x8844c)" * (pointer_expression "*(code **)(puVar37 + 0x8844c)" * (cast_expression "(code **)(puVar37 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8844c)" ( (binary_expression "puVar37 + 0x8844c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x44f4)" ( (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x44f4" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_000890b4;" goto statement_identifier ;) })) (expression_statement "pbVar18 = pbVar32;" (assignment_expression "pbVar18 = pbVar32" identifier = identifier) ;) (if_statement "if (uVar31 < 0x4010) {\n    uVar31 = uVar31 + 1;\n    pbVar29 = pbVar28 + (int)pbVar34;\n    pbVar34 = pbVar32;\n    unaff_s5 = pbVar30;\n    do {\n      *(uint *)(iVar22 + 0x4030) = uVar31;\n      *(byte *)(iVar22 + uVar31 + 0x1f) = bVar26;\n      if (pbVar28 + (int)pbVar32 == unaff_s5) goto LAB_00089094;\n      pbVar34 = pbVar29 + -(int)unaff_s5;\n      pbVar30 = unaff_s5 + 1;\n      bVar26 = *unaff_s5;\n      if (bVar26 == 10) goto LAB_0008942c;\n      uVar31 = uVar31 + 1;\n      pbVar18 = pbVar34;\n      unaff_s5 = pbVar30;\n    } while (uVar31 != 0x4011);\n  }" if (parenthesized_expression "(uVar31 < 0x4010)" ( (binary_expression "uVar31 < 0x4010" identifier < number_literal) )) (compound_statement "{\n    uVar31 = uVar31 + 1;\n    pbVar29 = pbVar28 + (int)pbVar34;\n    pbVar34 = pbVar32;\n    unaff_s5 = pbVar30;\n    do {\n      *(uint *)(iVar22 + 0x4030) = uVar31;\n      *(byte *)(iVar22 + uVar31 + 0x1f) = bVar26;\n      if (pbVar28 + (int)pbVar32 == unaff_s5) goto LAB_00089094;\n      pbVar34 = pbVar29 + -(int)unaff_s5;\n      pbVar30 = unaff_s5 + 1;\n      bVar26 = *unaff_s5;\n      if (bVar26 == 10) goto LAB_0008942c;\n      uVar31 = uVar31 + 1;\n      pbVar18 = pbVar34;\n      unaff_s5 = pbVar30;\n    } while (uVar31 != 0x4011);\n  }" { (expression_statement "uVar31 = uVar31 + 1;" (assignment_expression "uVar31 = uVar31 + 1" identifier = (binary_expression "uVar31 + 1" identifier + number_literal)) ;) (expression_statement "pbVar29 = pbVar28 + (int)pbVar34;" (assignment_expression "pbVar29 = pbVar28 + (int)pbVar34" identifier = (binary_expression "pbVar28 + (int)pbVar34" identifier + (cast_expression "(int)pbVar34" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pbVar34 = pbVar32;" (assignment_expression "pbVar34 = pbVar32" identifier = identifier) ;) (expression_statement "unaff_s5 = pbVar30;" (assignment_expression "unaff_s5 = pbVar30" identifier = identifier) ;) (do_statement "do {\n      *(uint *)(iVar22 + 0x4030) = uVar31;\n      *(byte *)(iVar22 + uVar31 + 0x1f) = bVar26;\n      if (pbVar28 + (int)pbVar32 == unaff_s5) goto LAB_00089094;\n      pbVar34 = pbVar29 + -(int)unaff_s5;\n      pbVar30 = unaff_s5 + 1;\n      bVar26 = *unaff_s5;\n      if (bVar26 == 10) goto LAB_0008942c;\n      uVar31 = uVar31 + 1;\n      pbVar18 = pbVar34;\n      unaff_s5 = pbVar30;\n    } while (uVar31 != 0x4011);" do (compound_statement "{\n      *(uint *)(iVar22 + 0x4030) = uVar31;\n      *(byte *)(iVar22 + uVar31 + 0x1f) = bVar26;\n      if (pbVar28 + (int)pbVar32 == unaff_s5) goto LAB_00089094;\n      pbVar34 = pbVar29 + -(int)unaff_s5;\n      pbVar30 = unaff_s5 + 1;\n      bVar26 = *unaff_s5;\n      if (bVar26 == 10) goto LAB_0008942c;\n      uVar31 = uVar31 + 1;\n      pbVar18 = pbVar34;\n      unaff_s5 = pbVar30;\n    }" { (expression_statement "*(uint *)(iVar22 + 0x4030) = uVar31;" (assignment_expression "*(uint *)(iVar22 + 0x4030) = uVar31" (pointer_expression "*(uint *)(iVar22 + 0x4030)" * (cast_expression "(uint *)(iVar22 + 0x4030)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)(iVar22 + uVar31 + 0x1f) = bVar26;" (assignment_expression "*(byte *)(iVar22 + uVar31 + 0x1f) = bVar26" (pointer_expression "*(byte *)(iVar22 + uVar31 + 0x1f)" * (cast_expression "(byte *)(iVar22 + uVar31 + 0x1f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + uVar31 + 0x1f)" ( (binary_expression "iVar22 + uVar31 + 0x1f" (binary_expression "iVar22 + uVar31" identifier + identifier) + number_literal) )))) = identifier) ;) (if_statement "if (pbVar28 + (int)pbVar32 == unaff_s5) goto LAB_00089094;" if (parenthesized_expression "(pbVar28 + (int)pbVar32 == unaff_s5)" ( (binary_expression "pbVar28 + (int)pbVar32 == unaff_s5" (binary_expression "pbVar28 + (int)pbVar32" identifier + (cast_expression "(int)pbVar32" ( (type_descriptor "int" primitive_type) ) identifier)) == identifier) )) (goto_statement "goto LAB_00089094;" goto statement_identifier ;)) (expression_statement "pbVar34 = pbVar29 + -(int)unaff_s5;" (assignment_expression "pbVar34 = pbVar29 + -(int)unaff_s5" identifier = (binary_expression "pbVar29 + -(int)unaff_s5" identifier + (unary_expression "-(int)unaff_s5" - (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "pbVar30 = unaff_s5 + 1;" (assignment_expression "pbVar30 = unaff_s5 + 1" identifier = (binary_expression "unaff_s5 + 1" identifier + number_literal)) ;) (expression_statement "bVar26 = *unaff_s5;" (assignment_expression "bVar26 = *unaff_s5" identifier = (pointer_expression "*unaff_s5" * identifier)) ;) (if_statement "if (bVar26 == 10) goto LAB_0008942c;" if (parenthesized_expression "(bVar26 == 10)" ( (binary_expression "bVar26 == 10" identifier == number_literal) )) (goto_statement "goto LAB_0008942c;" goto statement_identifier ;)) (expression_statement "uVar31 = uVar31 + 1;" (assignment_expression "uVar31 = uVar31 + 1" identifier = (binary_expression "uVar31 + 1" identifier + number_literal)) ;) (expression_statement "pbVar18 = pbVar34;" (assignment_expression "pbVar18 = pbVar34" identifier = identifier) ;) (expression_statement "unaff_s5 = pbVar30;" (assignment_expression "unaff_s5 = pbVar30" identifier = identifier) ;) }) while (parenthesized_expression "(uVar31 != 0x4011)" ( (binary_expression "uVar31 != 0x4011" identifier != number_literal) )) ;) })) (expression_statement "uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44d4);" (assignment_expression "uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44d4)" identifier = (call_expression "(**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44d4)" (parenthesized_expression "(**(code **)(puVar37 + 0x8844c))" ( (pointer_expression "**(code **)(puVar37 + 0x8844c)" * (pointer_expression "*(code **)(puVar37 + 0x8844c)" * (cast_expression "(code **)(puVar37 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8844c)" ( (binary_expression "puVar37 + 0x8844c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x44d4)" ( (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x44d4" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pbVar34 = pbVar18;" (assignment_expression "pbVar34 = pbVar18" identifier = identifier) ;) (expression_statement "pbVar28 = pbVar30;" (assignment_expression "pbVar28 = pbVar30" identifier = identifier) ;) (goto_statement "goto LAB_000890b4;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nvoid share_xchannel_failure(ssh_sharing_connstate *cs,share_xchannel *xc)\n\n{\n  char cVar1;\n  byte bVar2;\n  byte bVar3;\n  byte bVar4;\n  uchar uVar5;\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  byte *pbVar16;\n  char *pcVar17;\n  uint upstream_id;\n  void *e;\n  plug_function_table *server_id;\n  ssh_sharing_state *psVar18;\n  Socket ppsVar19;\n  int iVar20;\n  int iVar21;\n  undefined1 *puVar22;\n  undefined1 *puVar23;\n  share_channel *psVar24;\n  share_xchannel *xc_00;\n  share_forwarding *e_00;\n  share_forwarding *psVar25;\n  share_globreq *psVar26;\n  undefined4 *puVar27;\n  int iVar28;\n  int iVar29;\n  ssh_sharing_connstate *cs_00;\n  byte bVar31;\n  tree234 *t;\n  share_globreq *psVar30;\n  uint uVar32;\n  byte *pbVar33;\n  byte *pbVar34;\n  undefined4 uVar35;\n  uint uVar36;\n  uint in_t3;\n  undefined *puVar37;\n  uchar *puVar38;\n  ssh_sharing_connstate *psVar39;\n  byte *pbVar40;\n  byte *pbVar41;\n  byte *unaff_s5;\n  byte *pbVar42;\n  ssh_sharing_connstate *unaff_s6;\n  ssh_sharing_connstate *psVar43;\n  uchar *puVar44;\n  ssh_sharing_connstate *psVar45;\n  uchar *puVar46;\n  undefined *puVar47;\n  code *pcVar48;\n  int *piVar49;\n  ssh_sharing_connstate *psStack_b0;\n  ssh_sharing_connstate *psStack_90;\n  ssh_sharing_connstate *psStack_8c;\n  Socket ppsStack_88;\n  plug_function_table *ppStack_68;\n  int iStack_64;\n  share_xchannel *psStack_60;\n  ssh_sharing_connstate *psStack_5c;\n  undefined *puStack_58;\n  uchar id [4];\n  \n  psVar45 = (ssh_sharing_connstate *)PTR___stack_chk_guard_00112630;\n  id = (uchar  [4])xc->server_id;\n  pbVar33 = &DAT_00000061;\n  pbVar16 = id;\n  iVar28 = *(int *)PTR___stack_chk_guard_00112630;\n  (*(code *)PTR_ssh_send_packet_from_downstream_00111acc)(cs->parent->ssh,cs->id);\n  xc->live = 0;\n  cs_00 = cs;\n  share_dead_xchannel_respond(cs,xc);\n  if (iVar28 == *(int *)psVar45) {\n    return;\n  }\n  puVar47 = PTR___stack_chk_fail_001122c8;\n  (*(code *)PTR___stack_chk_fail_001122c8)();\n  iVar28 = cs_00->crLine;\n  piVar49 = *(int **)(puVar47 + 0x896d4);\n  puStack_58 = (undefined *)psVar45;\n  iStack_64 = *piVar49;\n  pbVar40 = pbVar16;\n  psStack_60 = xc;\n  psStack_5c = cs;\n  if (iVar28 != 0x709) {\n    if (0x709 < iVar28) {\n      if (iVar28 == 0x72e) goto LAB_000893ac;\n      if (iVar28 != 0x73b) goto LAB_000890e0;\n      goto LAB_00088fd4;\n    }\n    if (iVar28 != 0) goto LAB_000890e0;\n    cs_00->recvlen = 0;\n  }\n  if (pbVar16 == (byte *)0x0) {\nLAB_00089094:\n    cs_00->crLine = 0x709;\nLAB_000890e4:\n    do {\n      if (iStack_64 == *piVar49) {\n        return;\n      }\n      (**(code **)(puVar47 + 0x8936c))();\n      pbVar33 = unaff_s5;\nLAB_00089df8:\n      ppStack_68 = psStack_b0->fn;\n      send_packet_to_downstream\n                ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,(share_channel *)0x0,\n                 (share_channel *)0xc);\n      (**(code **)(puVar47 + 0x88394))(unaff_s6);\n      cs_00->recvlen = 0;\nLAB_000893ac:\n      pbVar16 = pbVar33 + (int)pbVar40;\n      unaff_s5 = pbVar33;\n      do {\n        pbVar40 = pbVar16 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar16) {\n          cs_00->crLine = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar28 = cs_00->recvlen;\n        pbVar33 = unaff_s5 + 1;\n        iVar29 = iVar28 + 1;\n        bVar31 = *unaff_s5;\n        in_t3 = (uint)bVar31;\n        cs_00->recvlen = iVar29;\n        cs_00->recvbuf[iVar28] = bVar31;\n        unaff_s5 = pbVar33;\n      } while (iVar29 < 4);\n      iVar28 = (**(code **)(puVar47 + 0x884fc))(*(int *)cs_00->recvbuf + 4);\n      cs_00->curr_packetlen = iVar28;\n      if ((undefined1 *)(iVar28 + -5) < &DAT_0000400c) {\n        unaff_s6 = (ssh_sharing_connstate *)cs_00->recvlen;\n        while (unaff_s5 = pbVar33, (int)unaff_s6 < iVar28) {\nLAB_00088fd4:\n          if (pbVar40 == (byte *)0x0) {\n            cs_00->crLine = 0x73b;\n            pbVar40 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar28 = cs_00->recvlen;\n          pbVar40 = pbVar40 + -1;\n          bVar31 = *pbVar33;\n          pbVar33 = pbVar33 + 1;\n          unaff_s6 = (ssh_sharing_connstate *)(iVar28 + 1);\n          cs_00->recvlen = (int)unaff_s6;\n          cs_00->recvbuf[iVar28] = bVar31;\n          iVar28 = cs_00->curr_packetlen;\n        }\n        bVar31 = cs_00->recvbuf[4];\n        puVar38 = cs_00->recvbuf + 5;\n        puVar23 = (undefined1 *)((int)&unaff_s6[-1].globreq_head + 3);\n        if (bVar31 != 0x5a) {\n          if (bVar31 < 0x5b) {\n            if (bVar31 != 2) {\n              if (2 < bVar31) {\n                if (bVar31 == 4) goto LAB_00089714;\n                if (bVar31 != 0x50) goto LAB_0008965c;\n                iVar28 = *(int *)(puVar47 + 0x8839c);\n                psVar39 = psVar45;\n                if ((int)puVar23 < 4) goto LAB_000896fc;\n                psVar39 = (ssh_sharing_connstate *)(*(int *)(puVar47 + 0x88acc) + 0x79c0);\n                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)&psStack_90,(int *)0x0);\n                psVar43 = psStack_90;\n                if ((iVar28 == 0) || (psStack_90 == (ssh_sharing_connstate *)0x0))\n                goto LAB_000896f8;\n                iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x30e8);\n                if (iVar28 != 0) {\n                  iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                     (psVar43,*(int *)(puVar47 + 0x8839c) + -0x317c);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psVar45 = psVar39;\n                  if (iVar28 == 0) {\n                    (*pcVar48)(psVar43);\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar43 = psStack_90;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                       (int)psStack_90 < (int)puVar23)) {\n                      psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90);\n                      iVar29 = (int)puVar23 - (int)puVar37;\n                      cVar1 = *(char *)&psStack_b0->fn;\n                      if ((iVar29 < 4) ||\n                         (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                                   (int *)&psStack_90), iVar28 == 0)) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if ((int)psVar43 < (int)&unaff_s6[-1].globreq_head) {\n                          if (iVar29 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar35 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        psVar43 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if (-1 < (int)psVar43) {\n                          pcVar48 = *(code **)(puVar47 + 0x8844c);\n                          if ((int)&unaff_s6[-1].globreq_head <= (int)psVar43) goto LAB_00089700;\nLAB_000892a4:\n                          iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,\n                                                   (char **)&psStack_90,(int *)0x0);\n                          psVar45 = psStack_90;\n                          if ((iVar28 == 0) ||\n                             (psVar39 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_00089eec;\n                          puVar44 = puVar38 + (int)psVar43;\n                          bVar31 = *puVar44;\n                          bVar2 = puVar44[1];\n                          bVar3 = puVar44[3];\n                          bVar4 = puVar44[2];\n                          psStack_90 = (ssh_sharing_connstate *)\n                                       (**(code **)(puVar47 + 0x883c0))(psStack_90);\n                          psStack_8c = (ssh_sharing_connstate *)\n                                       ((uint)bVar31 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                       (uint)bVar4 << 8);\n                          unaff_s6 = (ssh_sharing_connstate *)\n                                     find234(cs_00->forwardings,&psStack_90,(cmpfn234)0x0);\n                          (**(code **)(puVar47 + 0x88394))(psStack_90);\n                          if (unaff_s6 == (ssh_sharing_connstate *)0x0) {\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                            if (cVar1 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            cVar1 = *(char *)&psStack_b0->fn;\n                            *(undefined1 *)&psStack_b0->fn = 1;\n                            if (cVar1 == '\0') {\n                              iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar28 = 0;\n                            }\n                            (**(code **)(puVar47 + 0x88b70))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                            (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\nLAB_00089394:\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                          }\n                          (*pcVar48)(psVar45);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar48)();\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar39 = psVar45;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       ((int)psStack_90 < (int)puVar23)) {\n                      if (puVar38[(int)psStack_90] == '\0') goto LAB_000893a4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar47 + 0x88394))(psVar43);\n                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                psVar45 = psStack_90;\n                if (((iVar28 == 0) || ((int)psStack_90 < 0)) ||\n                   (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                   (int)puVar23 <= (int)psStack_90)) goto LAB_000896f8;\n                puVar44 = puVar38 + (int)psStack_90;\n                iVar29 = (int)puVar23 - (int)puVar37;\n                psStack_b0 = (ssh_sharing_connstate *)(uint)*puVar44;\n                if ((iVar29 < 4) ||\n                   (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                             (int *)&psStack_90), iVar28 == 0)) {\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\n                    if (iVar29 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar35 = 0x55e;\nLAB_00089ef0:\n                    pcVar48 = *(code **)(puVar47 + 0x88ff4);\n                    (*pcVar48)(*(int *)(puVar47 + 0x8839c) + 0x457c,\n                               *(int *)(puVar47 + 0x8839c) + 0x43dc,uVar35,\n                               *(int *)(puVar47 + 0x8839c) + 0x4870);\n                    psVar45 = psVar39;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                }\n                else {\n                  psVar45 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < 0) goto LAB_000896fc;\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\nLAB_0008a05c:\n                    iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)&psStack_90,\n                                             (int *)0x0);\n                    psVar43 = psStack_90;\n                    if ((iVar28 == 0) ||\n                       (unaff_s6 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_0008a304;\n                    puVar46 = puVar38 + (int)psVar45;\n                    psVar45 = (ssh_sharing_connstate *)\n                              ((uint)*puVar46 << 0x18 | (uint)puVar46[3] | (uint)puVar46[1] << 0x10\n                              | (uint)puVar46[2] << 8);\n                    iVar28 = (**(code **)(puVar47 + 0x88ba0))\n                                       (cs_00->parent->ssh,psStack_90,psVar45,cs_00);\n                    if (iVar28 == 0) {\n                      if (psStack_b0 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar31 = *puVar44;\n                      *puVar44 = 1;\n                      if (bVar31 == 0) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar28 = 0;\n                      }\n                      (**(code **)(puVar47 + 0x88b70))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                      e_00 = (share_forwarding *)(**(code **)(puVar47 + 0x88390))(1,0xc);\n                      pcVar17 = (char *)(**(code **)(puVar47 + 0x883c0))(psVar43);\n                      t = cs_00->forwardings;\n                      e_00->host = pcVar17;\n                      e_00->port = (int)psVar45;\n                      e_00->active = 0;\n                      psVar25 = (share_forwarding *)add234(t,e_00);\n                      if (e_00 == psVar25) {\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                        psVar26 = (share_globreq *)(**(code **)(puVar47 + 0x88390))(1,0x10);\n                        psVar30 = cs_00->globreq_tail;\n                        psVar26->next = (share_globreq *)0x0;\n                        if (psVar30 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar26;\n                        }\n                        else {\n                          psVar30->next = psVar26;\n                        }\n                        psVar26->fwd = e_00;\n                        psVar26->type = 0;\n                        psVar26->want_reply = (int)psStack_b0;\n                      }\n                      else {\n                        (**(code **)(puVar47 + 0x88394))(e_00);\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(puVar47 + 0x88394))(psVar43);\n                    cs_00->recvlen = 0;\n                    unaff_s6 = psVar43;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                pcVar17 = (char *)(*pcVar48)(iVar28 + 0x455c);\n                psVar45 = psVar39;\n                goto LAB_00089674;\n              }\n              if (bVar31 != 1) {\nLAB_0008965c:\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x474c,bVar31);\n                goto LAB_00089674;\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_000893ac;\n            }\nLAB_00089714:\n            puVar22 = (undefined1 *)((int)&unaff_s6[-1].forwardings + 3);\n            if ((bVar31 == 0x62) &&\n               (psVar45 = *(ssh_sharing_connstate **)(puVar47 + 0x88acc), 3 < (int)puVar22)) {\n              psVar45 = (ssh_sharing_connstate *)(psVar45[1].recvbuf + 0x394c);\n              iVar28 = getstring_inner(cs_00->recvbuf + 9,(int)puVar22,(char **)&psStack_90,\n                                       (int *)0x0);\n              psVar39 = psStack_90;\n              if ((iVar28 != 0) && (psStack_90 != (ssh_sharing_connstate *)0x0)) {\n                psStack_b0 = psStack_90;\n                iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x363c);\n                if ((iVar28 == 0) &&\n                   (iVar28 = (**(code **)(puVar47 + 0x888c4))(cs_00->parent->ssh), iVar28 == 0)) {\n                  ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  ppsStack_88 = ppsVar19;\n                  puVar27 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                  if (puVar27 == (undefined4 *)0x0) {\n                    pcVar48 = *(code **)(puVar47 + 0x8844c);\n                    iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    pcVar17 = (char *)(*pcVar48)(iVar28,ppsVar19);\n                    share_disconnect(cs_00,pcVar17);\n                    (**(code **)(puVar47 + 0x88394))(pcVar17);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_68 = (plug_function_table *)*puVar27;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar28 = *(int *)(puVar47 + 0x8839c);\n                iVar29 = (**(code **)(puVar47 + 0x8953c))(psVar39,iVar28 + -0x36a0);\n                if (iVar29 != 0) {\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  psStack_b0 = psVar39;\n                  goto LAB_00089cc8;\n                }\n                ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                (**(code **)(puVar47 + 0x88394))(psVar39);\n                ppsStack_88 = ppsVar19;\n                psStack_b0 = (ssh_sharing_connstate *)\n                             find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                if (psStack_b0 == (ssh_sharing_connstate *)0x0) {\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)puVar23 < 0x11) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                uVar5 = cs_00->recvbuf[0x14];\n                puVar22 = (undefined1 *)((int)&unaff_s6[-1].channels_by_server + 2);\n                uVar6 = cs_00->recvbuf[0x15];\n                if ((int)puVar22 < 4) {\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(0);\n                  (**(code **)(puVar47 + 0x88394))(0);\nLAB_0008a36c:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar29 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)&psStack_90,\n                                           (int *)0x0);\n                  psVar39 = psStack_90;\n                  if (iVar29 == 0) {\n                    psVar39 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(psVar39);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  iVar20 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_0008a36c;\n                }\n                puVar44 = (uchar *)((int)&psVar39->crLine + 1);\n                iVar20 = (int)puVar23 - (int)puVar44;\n                unaff_s6 = (ssh_sharing_connstate *)0x0;\n                if (iVar20 < 4) {\nLAB_00089ec4:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar21 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)&psStack_90,\n                                           (int *)0x0);\n                  unaff_s6 = psStack_90;\n                  if (iVar21 == 0) {\n                    unaff_s6 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar20 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_00089ec4;\n                }\n                if ((int)puVar23 <= (int)(puVar44 + (int)psVar39 + 3)) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar47 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                puVar38 = puVar38 + (int)(puVar44 + (int)psVar39);\n                if (-1 < iVar29) {\n                  pcVar48 = *(code **)(puVar47 + 0x88b94);\n                  uVar7 = *puVar38;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar38[1];\n                  uVar8 = puVar38[3];\n                  uVar9 = puVar38[2];\n                  psStack_b0->got_verstring = iVar29;\n                  iVar20 = (*pcVar48)(unaff_s6,psStack_b0->recvbuf);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psStack_b0->curr_packetlen = iVar20;\n                  (*pcVar48)(unaff_s6);\n                  iVar29 = (**(code **)(puVar47 + 0x88b98))\n                                     (cs_00->parent->ssh,iVar29,cs_00,psStack_b0);\n                  psStack_b0->sent_verstring = iVar29;\n                  *(uint *)(psStack_b0->recvbuf + 4) = (uint)bVar13;\n                  psVar45 = (ssh_sharing_connstate *)\n                            (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0xc));\n                  unaff_s6 = (ssh_sharing_connstate *)\n                             (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0x10));\n                  puVar38 = (uchar *)((int)&psVar45->curr_packetlen + 1) + (int)unaff_s6;\n                  puVar22 = (undefined1 *)(**(code **)(puVar47 + 0x88390))(puVar38,1);\n                  puVar22[4] = 0;\n                  puVar22[5] = 0;\n                  uVar32 = *(uint *)(iVar28 + -0x36a0);\n                  uVar10 = *(undefined1 *)(iVar28 + -0x369c);\n                  uVar11 = *(undefined1 *)(iVar28 + -0x369b);\n                  uVar12 = *(undefined1 *)(iVar28 + -0x369a);\n                  puVar22[3] = (char)ppsVar19;\n                  *puVar22 = (char)((uint)ppsVar19 >> 0x18);\n                  puVar22[1] = (char)((uint)ppsVar19 >> 0x10);\n                  puVar22[2] = (char)((uint)ppsVar19 >> 8);\n                  puVar22[7] = 7;\n                  puVar22[6] = 0;\n                  puVar23 = puVar22 + 8;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & -1 << (4 - uVar36) * 8 | uVar32 >> uVar36 * 8;\n                  puVar23 = puVar22 + 0xb;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & 0xffffffffU >> (uVar36 + 1) * 8 |\n                       uVar32 << (3 - uVar36) * 8;\n                  puVar22[0xc] = uVar10;\n                  puVar22[0xd] = uVar11;\n                  puVar22[0xe] = uVar12;\n                  puVar22[0x10] = bVar13;\n                  puVar22[0x11] = (char)((uint)psVar45 >> 0x18);\n                  puVar22[0x12] = (char)((uint)psVar45 >> 0x10);\n                  puVar22[0x13] = (char)((uint)psVar45 >> 8);\n                  puVar22[0x14] = (char)psVar45;\n                  pcVar48 = *(code **)(puVar47 + 0x89610);\n                  puVar22[0xf] = uVar5 != '\0';\n                  (*pcVar48)(puVar22 + 0x15,*(undefined4 *)(psStack_b0->sent_verstring + 0xc),\n                             psVar45);\n                  puVar23 = puVar22 + (int)psVar45;\n                  puVar23[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar23[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar23[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar23[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar47 + 0x89610))\n                            (puVar22 + (int)((int)&psVar45->got_verstring + 1),\n                             *(undefined4 *)(psStack_b0->sent_verstring + 0x10),unaff_s6);\n                  puVar23 = puVar22 + (int)(unaff_s6->recvbuf + (int)(psVar45->recvbuf + -0x40));\n                  puVar23[0x1c] = uVar8;\n                  puVar23[0x19] = uVar7;\n                  puVar23[0x1a] = uVar6;\n                  puVar23[0x1b] = uVar9;\n                  (**(code **)(puVar47 + 0x88b70))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar22,puVar38,0);\n                  (**(code **)(puVar47 + 0x88394))(puVar22);\n                  cs_00->recvlen = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar47 + 0x88b70))(cs_00->parent->ssh,cs_00->id,bVar31,puVar38,puVar23,0);\n            if ((bVar31 == 0x61) && (3 < (int)puVar23)) {\n              ppsStack_88 = *(Socket *)(cs_00->recvbuf + 5);\n              psVar24 = (share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n              if (psVar24 != (share_channel *)0x0) {\n                if (psVar24->state == 2) {\n                  (**(code **)(puVar47 + 0x88b74))(cs_00->parent->ssh,psVar24->upstream_id);\n                  share_remove_channel(cs_00,psVar24);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar24->state = 1;\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar31 == 0x5c) {\n              if (3 < (int)puVar23) {\n                psVar45 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                unaff_s6 = (ssh_sharing_connstate *)&psStack_90;\n                psStack_90 = psVar45;\n                e = find234(cs_00->halfchannels,unaff_s6,(cmpfn234)0x0);\n                if (e == (void *)0x0) {\n                  psStack_8c = psVar45;\n                  xc_00 = (share_xchannel *)\n                          find234(cs_00->xchannels_by_server,unaff_s6,(cmpfn234)0x0);\n                  if (xc_00 == (share_xchannel *)0x0) {\n                    pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                                (*(int *)(puVar47 + 0x8839c) + 0x4680,psVar45);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(cs_00,xc_00);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar18 = cs_00->parent;\n                  uVar35 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar47 + 0x88b70))(psVar18->ssh,cs_00->id,uVar35,puVar38,puVar23,0);\n                  del234(cs_00->halfchannels,e);\n                  (**(code **)(puVar47 + 0x88394))(e);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }\n              pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar31) {\n              if (100 < bVar31) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)puVar23 < 0x10) {\n              pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar36 = (uint)(cs_00->recvbuf + 5) & 3;\n            upstream_id = *(uint *)(cs_00->recvbuf + 9);\n            uVar32 = (uint)(cs_00->recvbuf + 8) & 3;\n            psVar45 = (ssh_sharing_connstate *)\n                      ((*(int *)(cs_00->recvbuf + 5 + -uVar36) << uVar36 * 8 |\n                       (uint)psVar45 & 0xffffffffU >> (4 - uVar36) * 8) & -1 << (uVar32 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar32) >> (3 - uVar32) * 8);\n            psStack_90 = psVar45;\n            e = find234(cs_00->halfchannels,&psStack_90,(cmpfn234)0x0);\n            if (e == (void *)0x0) {\n              psStack_8c = psVar45;\n              unaff_s6 = (ssh_sharing_connstate *)\n                         find234(cs_00->xchannels_by_server,&psStack_90,(cmpfn234)0x0);\n              if (unaff_s6 == (ssh_sharing_connstate *)0x0) goto LAB_0008a14c;\n              server_id = unaff_s6->fn;\n            }\n            else {\n              unaff_s6 = (ssh_sharing_connstate *)0x0;\n              server_id = (plug_function_table *)\n                          (**(code **)(puVar47 + 0x88b8c))(cs_00->parent->ssh,cs_00);\n            }\n            cs_00->recvbuf[0xc] = (uchar)server_id;\n            cs_00->recvbuf[9] = (uchar)((uint)server_id >> 0x18);\n            cs_00->recvbuf[10] = (uchar)((uint)server_id >> 0x10);\n            cs_00->recvbuf[0xb] = (uchar)((uint)server_id >> 8);\n            uVar36 = (uint)(cs_00->recvbuf + 0x11) & 3;\n            uVar32 = (uint)(cs_00->recvbuf + 0x14) & 3;\n            psVar24 = share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)server_id\n                                        ,(int)psVar45,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar36) << uVar36 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar36) * 8) &\n                                         -1 << (uVar32 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar32) >>\n                                        (3 - uVar32) * 8));\n            if (e != (void *)0x0) {\n              psVar18 = cs_00->parent;\n              uVar35 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (ssh_sharing_connstate *)0x0) {\n              uVar36 = *(uint *)(cs_00->recvbuf + 0xd);\n              if (uVar36 < 0x100) {\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x4614,uVar36);\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(cs_00,(share_xchannel *)unaff_s6,psVar24,uVar36);\n              share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,unaff_s6);\n              cs_00->recvlen = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          cs_00->recvlen = 0;\n          goto LAB_000893ac;\n        }\n        iVar28 = *(int *)(puVar47 + 0x8839c);\n        if (3 < (int)puVar23) {\n          iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n          if (((iVar28 == 0) || ((int)psStack_90 < 0)) ||\n             (psVar45 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90),\n             (int)&unaff_s6[-1].xchannels_by_server <= (int)psStack_90)) {\n            iVar28 = *(int *)(puVar47 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pppVar14 = &psStack_90->fn;\n          pppVar15 = &psStack_90->fn;\n          psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)((int)&psStack_90->fn + 2));\n          unaff_s6 = (ssh_sharing_connstate *)\n                     ((uint)*(byte *)&psVar45->fn << 0x18 |\n                      (uint)puVar38[(int)((int)pppVar14 + 1)] << 0x10 |\n                      (uint)puVar38[(int)((int)pppVar15 + 3)] | (uint)*(byte *)&psStack_b0->fn << 8)\n          ;\n          uVar36 = (**(code **)(puVar47 + 0x88b8c))(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)unaff_s6,uVar36,0,3,\n                            (ssh_sharing_connstate *)\n                            ((uint)*(byte *)&psVar45->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 3) |\n                            (uint)*(uchar *)((int)&psVar45->sock + 2) << 8));\n          *(char *)&psVar45->fn = (char)(uVar36 >> 0x18);\n          puVar38[(int)((int)pppVar14 + 1)] = (byte)(uVar36 >> 0x10);\n          *(char *)&psStack_b0->fn = (char)(uVar36 >> 8);\n          puVar38[(int)((int)pppVar15 + 3)] = (byte)uVar36;\n          (**(code **)(puVar47 + 0x88b70))(cs_00->parent->ssh,cs_00->id,0x5a,puVar38,puVar23,0);\n          cs_00->recvlen = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))(iVar28 + 0x458c);\nLAB_00089674:\n        while (pcVar17 == (char *)0x0) {\n          (**(code **)(puVar47 + 0x88ff4))\n                    (*(int *)(puVar47 + 0x8839c) + 0x4768,*(int *)(puVar47 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar47 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                      (*(int *)(puVar47 + 0x8839c) + 0x45d8,psVar45);\n        }\n        share_disconnect(cs_00,pcVar17);\n        (**(code **)(puVar47 + 0x88394))(pcVar17);\n        cs_00->recvlen = 0;\n        goto LAB_000893ac;\n      }\n      pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                  (*(int *)(puVar47 + 0x8839c) + 0x4544,iVar28);\nLAB_000890b4:\n      share_disconnect(cs_00,pcVar17);\n      (**(code **)(puVar47 + 0x88394))(pcVar17);\n      unaff_s5 = pbVar33;\nLAB_000890e0:\n      cs_00->crLine = 0;\n    } while( true );\n  }\n  uVar36 = cs_00->recvlen;\n  bVar31 = *pbVar33;\n  pbVar40 = pbVar16 + -1;\n  pbVar42 = pbVar33 + 1;\n  if (bVar31 == 10) {\nLAB_0008942c:\n    pbVar33 = pbVar42;\n    if (0x2d < uVar36) {\n      psVar45 = (ssh_sharing_connstate *)cs_00->recvbuf;\n      iVar28 = (**(code **)(puVar47 + 0x894d4))(psVar45,*(int *)(puVar47 + 0x8839c) + 0x4890,0x2e);\n      if (iVar28 == 0) {\n        if ((0 < (int)uVar36) && (cs_00->recvbuf[uVar36 - 1] == '\r')) {\n          cs_00->recvlen = uVar36 - 1;\n          uVar36 = uVar36 - 1;\n        }\n        (**(code **)(puVar47 + 0x88b68))\n                  (cs_00->parent->ssh,cs_00->id,*(int *)(puVar47 + 0x8839c) + 0x4524,uVar36,psVar45)\n        ;\n        cs_00->got_verstring = 1;\n        cs_00->recvlen = 0;\n        goto LAB_000893ac;\n      }\n    }\n    pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))(*(int *)(puVar47 + 0x8839c) + 0x44f4);\n    goto LAB_000890b4;\n  }\n  pbVar41 = pbVar16;\n  if (uVar36 < 0x4010) {\n    uVar36 = uVar36 + 1;\n    pbVar34 = pbVar33 + (int)pbVar40;\n    pbVar40 = pbVar16;\n    unaff_s5 = pbVar42;\n    do {\n      cs_00->recvlen = uVar36;\n      cs_00->recvbuf[uVar36 - 1] = bVar31;\n      if (pbVar33 + (int)pbVar16 == unaff_s5) goto LAB_00089094;\n      pbVar40 = pbVar34 + -(int)unaff_s5;\n      pbVar42 = unaff_s5 + 1;\n      bVar31 = *unaff_s5;\n      if (bVar31 == 10) goto LAB_0008942c;\n      uVar36 = uVar36 + 1;\n      pbVar41 = pbVar40;\n      unaff_s5 = pbVar42;\n    } while (uVar36 != 0x4011);\n  }\n  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))(*(int *)(puVar47 + 0x8839c) + 0x44d4);\n  pbVar40 = pbVar41;\n  pbVar33 = pbVar42;\n  goto LAB_000890b4;\n}\n\n" comment (function_definition "void share_xchannel_failure(ssh_sharing_connstate *cs,share_xchannel *xc)\n\n{\n  char cVar1;\n  byte bVar2;\n  byte bVar3;\n  byte bVar4;\n  uchar uVar5;\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  byte *pbVar16;\n  char *pcVar17;\n  uint upstream_id;\n  void *e;\n  plug_function_table *server_id;\n  ssh_sharing_state *psVar18;\n  Socket ppsVar19;\n  int iVar20;\n  int iVar21;\n  undefined1 *puVar22;\n  undefined1 *puVar23;\n  share_channel *psVar24;\n  share_xchannel *xc_00;\n  share_forwarding *e_00;\n  share_forwarding *psVar25;\n  share_globreq *psVar26;\n  undefined4 *puVar27;\n  int iVar28;\n  int iVar29;\n  ssh_sharing_connstate *cs_00;\n  byte bVar31;\n  tree234 *t;\n  share_globreq *psVar30;\n  uint uVar32;\n  byte *pbVar33;\n  byte *pbVar34;\n  undefined4 uVar35;\n  uint uVar36;\n  uint in_t3;\n  undefined *puVar37;\n  uchar *puVar38;\n  ssh_sharing_connstate *psVar39;\n  byte *pbVar40;\n  byte *pbVar41;\n  byte *unaff_s5;\n  byte *pbVar42;\n  ssh_sharing_connstate *unaff_s6;\n  ssh_sharing_connstate *psVar43;\n  uchar *puVar44;\n  ssh_sharing_connstate *psVar45;\n  uchar *puVar46;\n  undefined *puVar47;\n  code *pcVar48;\n  int *piVar49;\n  ssh_sharing_connstate *psStack_b0;\n  ssh_sharing_connstate *psStack_90;\n  ssh_sharing_connstate *psStack_8c;\n  Socket ppsStack_88;\n  plug_function_table *ppStack_68;\n  int iStack_64;\n  share_xchannel *psStack_60;\n  ssh_sharing_connstate *psStack_5c;\n  undefined *puStack_58;\n  uchar id [4];\n  \n  psVar45 = (ssh_sharing_connstate *)PTR___stack_chk_guard_00112630;\n  id = (uchar  [4])xc->server_id;\n  pbVar33 = &DAT_00000061;\n  pbVar16 = id;\n  iVar28 = *(int *)PTR___stack_chk_guard_00112630;\n  (*(code *)PTR_ssh_send_packet_from_downstream_00111acc)(cs->parent->ssh,cs->id);\n  xc->live = 0;\n  cs_00 = cs;\n  share_dead_xchannel_respond(cs,xc);\n  if (iVar28 == *(int *)psVar45) {\n    return;\n  }\n  puVar47 = PTR___stack_chk_fail_001122c8;\n  (*(code *)PTR___stack_chk_fail_001122c8)();\n  iVar28 = cs_00->crLine;\n  piVar49 = *(int **)(puVar47 + 0x896d4);\n  puStack_58 = (undefined *)psVar45;\n  iStack_64 = *piVar49;\n  pbVar40 = pbVar16;\n  psStack_60 = xc;\n  psStack_5c = cs;\n  if (iVar28 != 0x709) {\n    if (0x709 < iVar28) {\n      if (iVar28 == 0x72e) goto LAB_000893ac;\n      if (iVar28 != 0x73b) goto LAB_000890e0;\n      goto LAB_00088fd4;\n    }\n    if (iVar28 != 0) goto LAB_000890e0;\n    cs_00->recvlen = 0;\n  }\n  if (pbVar16 == (byte *)0x0) {\nLAB_00089094:\n    cs_00->crLine = 0x709;\nLAB_000890e4:\n    do {\n      if (iStack_64 == *piVar49) {\n        return;\n      }\n      (**(code **)(puVar47 + 0x8936c))();\n      pbVar33 = unaff_s5;\nLAB_00089df8:\n      ppStack_68 = psStack_b0->fn;\n      send_packet_to_downstream\n                ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,(share_channel *)0x0,\n                 (share_channel *)0xc);\n      (**(code **)(puVar47 + 0x88394))(unaff_s6);\n      cs_00->recvlen = 0;\nLAB_000893ac:\n      pbVar16 = pbVar33 + (int)pbVar40;\n      unaff_s5 = pbVar33;\n      do {\n        pbVar40 = pbVar16 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar16) {\n          cs_00->crLine = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar28 = cs_00->recvlen;\n        pbVar33 = unaff_s5 + 1;\n        iVar29 = iVar28 + 1;\n        bVar31 = *unaff_s5;\n        in_t3 = (uint)bVar31;\n        cs_00->recvlen = iVar29;\n        cs_00->recvbuf[iVar28] = bVar31;\n        unaff_s5 = pbVar33;\n      } while (iVar29 < 4);\n      iVar28 = (**(code **)(puVar47 + 0x884fc))(*(int *)cs_00->recvbuf + 4);\n      cs_00->curr_packetlen = iVar28;\n      if ((undefined1 *)(iVar28 + -5) < &DAT_0000400c) {\n        unaff_s6 = (ssh_sharing_connstate *)cs_00->recvlen;\n        while (unaff_s5 = pbVar33, (int)unaff_s6 < iVar28) {\nLAB_00088fd4:\n          if (pbVar40 == (byte *)0x0) {\n            cs_00->crLine = 0x73b;\n            pbVar40 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar28 = cs_00->recvlen;\n          pbVar40 = pbVar40 + -1;\n          bVar31 = *pbVar33;\n          pbVar33 = pbVar33 + 1;\n          unaff_s6 = (ssh_sharing_connstate *)(iVar28 + 1);\n          cs_00->recvlen = (int)unaff_s6;\n          cs_00->recvbuf[iVar28] = bVar31;\n          iVar28 = cs_00->curr_packetlen;\n        }\n        bVar31 = cs_00->recvbuf[4];\n        puVar38 = cs_00->recvbuf + 5;\n        puVar23 = (undefined1 *)((int)&unaff_s6[-1].globreq_head + 3);\n        if (bVar31 != 0x5a) {\n          if (bVar31 < 0x5b) {\n            if (bVar31 != 2) {\n              if (2 < bVar31) {\n                if (bVar31 == 4) goto LAB_00089714;\n                if (bVar31 != 0x50) goto LAB_0008965c;\n                iVar28 = *(int *)(puVar47 + 0x8839c);\n                psVar39 = psVar45;\n                if ((int)puVar23 < 4) goto LAB_000896fc;\n                psVar39 = (ssh_sharing_connstate *)(*(int *)(puVar47 + 0x88acc) + 0x79c0);\n                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)&psStack_90,(int *)0x0);\n                psVar43 = psStack_90;\n                if ((iVar28 == 0) || (psStack_90 == (ssh_sharing_connstate *)0x0))\n                goto LAB_000896f8;\n                iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x30e8);\n                if (iVar28 != 0) {\n                  iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                     (psVar43,*(int *)(puVar47 + 0x8839c) + -0x317c);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psVar45 = psVar39;\n                  if (iVar28 == 0) {\n                    (*pcVar48)(psVar43);\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar43 = psStack_90;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                       (int)psStack_90 < (int)puVar23)) {\n                      psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90);\n                      iVar29 = (int)puVar23 - (int)puVar37;\n                      cVar1 = *(char *)&psStack_b0->fn;\n                      if ((iVar29 < 4) ||\n                         (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                                   (int *)&psStack_90), iVar28 == 0)) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if ((int)psVar43 < (int)&unaff_s6[-1].globreq_head) {\n                          if (iVar29 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar35 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        psVar43 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if (-1 < (int)psVar43) {\n                          pcVar48 = *(code **)(puVar47 + 0x8844c);\n                          if ((int)&unaff_s6[-1].globreq_head <= (int)psVar43) goto LAB_00089700;\nLAB_000892a4:\n                          iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,\n                                                   (char **)&psStack_90,(int *)0x0);\n                          psVar45 = psStack_90;\n                          if ((iVar28 == 0) ||\n                             (psVar39 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_00089eec;\n                          puVar44 = puVar38 + (int)psVar43;\n                          bVar31 = *puVar44;\n                          bVar2 = puVar44[1];\n                          bVar3 = puVar44[3];\n                          bVar4 = puVar44[2];\n                          psStack_90 = (ssh_sharing_connstate *)\n                                       (**(code **)(puVar47 + 0x883c0))(psStack_90);\n                          psStack_8c = (ssh_sharing_connstate *)\n                                       ((uint)bVar31 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                       (uint)bVar4 << 8);\n                          unaff_s6 = (ssh_sharing_connstate *)\n                                     find234(cs_00->forwardings,&psStack_90,(cmpfn234)0x0);\n                          (**(code **)(puVar47 + 0x88394))(psStack_90);\n                          if (unaff_s6 == (ssh_sharing_connstate *)0x0) {\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                            if (cVar1 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            cVar1 = *(char *)&psStack_b0->fn;\n                            *(undefined1 *)&psStack_b0->fn = 1;\n                            if (cVar1 == '\0') {\n                              iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar28 = 0;\n                            }\n                            (**(code **)(puVar47 + 0x88b70))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                            (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\nLAB_00089394:\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                          }\n                          (*pcVar48)(psVar45);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar48)();\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar39 = psVar45;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       ((int)psStack_90 < (int)puVar23)) {\n                      if (puVar38[(int)psStack_90] == '\0') goto LAB_000893a4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar47 + 0x88394))(psVar43);\n                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                psVar45 = psStack_90;\n                if (((iVar28 == 0) || ((int)psStack_90 < 0)) ||\n                   (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                   (int)puVar23 <= (int)psStack_90)) goto LAB_000896f8;\n                puVar44 = puVar38 + (int)psStack_90;\n                iVar29 = (int)puVar23 - (int)puVar37;\n                psStack_b0 = (ssh_sharing_connstate *)(uint)*puVar44;\n                if ((iVar29 < 4) ||\n                   (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                             (int *)&psStack_90), iVar28 == 0)) {\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\n                    if (iVar29 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar35 = 0x55e;\nLAB_00089ef0:\n                    pcVar48 = *(code **)(puVar47 + 0x88ff4);\n                    (*pcVar48)(*(int *)(puVar47 + 0x8839c) + 0x457c,\n                               *(int *)(puVar47 + 0x8839c) + 0x43dc,uVar35,\n                               *(int *)(puVar47 + 0x8839c) + 0x4870);\n                    psVar45 = psVar39;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                }\n                else {\n                  psVar45 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < 0) goto LAB_000896fc;\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\nLAB_0008a05c:\n                    iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)&psStack_90,\n                                             (int *)0x0);\n                    psVar43 = psStack_90;\n                    if ((iVar28 == 0) ||\n                       (unaff_s6 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_0008a304;\n                    puVar46 = puVar38 + (int)psVar45;\n                    psVar45 = (ssh_sharing_connstate *)\n                              ((uint)*puVar46 << 0x18 | (uint)puVar46[3] | (uint)puVar46[1] << 0x10\n                              | (uint)puVar46[2] << 8);\n                    iVar28 = (**(code **)(puVar47 + 0x88ba0))\n                                       (cs_00->parent->ssh,psStack_90,psVar45,cs_00);\n                    if (iVar28 == 0) {\n                      if (psStack_b0 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar31 = *puVar44;\n                      *puVar44 = 1;\n                      if (bVar31 == 0) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar28 = 0;\n                      }\n                      (**(code **)(puVar47 + 0x88b70))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                      e_00 = (share_forwarding *)(**(code **)(puVar47 + 0x88390))(1,0xc);\n                      pcVar17 = (char *)(**(code **)(puVar47 + 0x883c0))(psVar43);\n                      t = cs_00->forwardings;\n                      e_00->host = pcVar17;\n                      e_00->port = (int)psVar45;\n                      e_00->active = 0;\n                      psVar25 = (share_forwarding *)add234(t,e_00);\n                      if (e_00 == psVar25) {\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                        psVar26 = (share_globreq *)(**(code **)(puVar47 + 0x88390))(1,0x10);\n                        psVar30 = cs_00->globreq_tail;\n                        psVar26->next = (share_globreq *)0x0;\n                        if (psVar30 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar26;\n                        }\n                        else {\n                          psVar30->next = psVar26;\n                        }\n                        psVar26->fwd = e_00;\n                        psVar26->type = 0;\n                        psVar26->want_reply = (int)psStack_b0;\n                      }\n                      else {\n                        (**(code **)(puVar47 + 0x88394))(e_00);\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(puVar47 + 0x88394))(psVar43);\n                    cs_00->recvlen = 0;\n                    unaff_s6 = psVar43;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                pcVar17 = (char *)(*pcVar48)(iVar28 + 0x455c);\n                psVar45 = psVar39;\n                goto LAB_00089674;\n              }\n              if (bVar31 != 1) {\nLAB_0008965c:\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x474c,bVar31);\n                goto LAB_00089674;\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_000893ac;\n            }\nLAB_00089714:\n            puVar22 = (undefined1 *)((int)&unaff_s6[-1].forwardings + 3);\n            if ((bVar31 == 0x62) &&\n               (psVar45 = *(ssh_sharing_connstate **)(puVar47 + 0x88acc), 3 < (int)puVar22)) {\n              psVar45 = (ssh_sharing_connstate *)(psVar45[1].recvbuf + 0x394c);\n              iVar28 = getstring_inner(cs_00->recvbuf + 9,(int)puVar22,(char **)&psStack_90,\n                                       (int *)0x0);\n              psVar39 = psStack_90;\n              if ((iVar28 != 0) && (psStack_90 != (ssh_sharing_connstate *)0x0)) {\n                psStack_b0 = psStack_90;\n                iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x363c);\n                if ((iVar28 == 0) &&\n                   (iVar28 = (**(code **)(puVar47 + 0x888c4))(cs_00->parent->ssh), iVar28 == 0)) {\n                  ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  ppsStack_88 = ppsVar19;\n                  puVar27 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                  if (puVar27 == (undefined4 *)0x0) {\n                    pcVar48 = *(code **)(puVar47 + 0x8844c);\n                    iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    pcVar17 = (char *)(*pcVar48)(iVar28,ppsVar19);\n                    share_disconnect(cs_00,pcVar17);\n                    (**(code **)(puVar47 + 0x88394))(pcVar17);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_68 = (plug_function_table *)*puVar27;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar28 = *(int *)(puVar47 + 0x8839c);\n                iVar29 = (**(code **)(puVar47 + 0x8953c))(psVar39,iVar28 + -0x36a0);\n                if (iVar29 != 0) {\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  psStack_b0 = psVar39;\n                  goto LAB_00089cc8;\n                }\n                ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                (**(code **)(puVar47 + 0x88394))(psVar39);\n                ppsStack_88 = ppsVar19;\n                psStack_b0 = (ssh_sharing_connstate *)\n                             find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                if (psStack_b0 == (ssh_sharing_connstate *)0x0) {\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)puVar23 < 0x11) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                uVar5 = cs_00->recvbuf[0x14];\n                puVar22 = (undefined1 *)((int)&unaff_s6[-1].channels_by_server + 2);\n                uVar6 = cs_00->recvbuf[0x15];\n                if ((int)puVar22 < 4) {\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(0);\n                  (**(code **)(puVar47 + 0x88394))(0);\nLAB_0008a36c:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar29 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)&psStack_90,\n                                           (int *)0x0);\n                  psVar39 = psStack_90;\n                  if (iVar29 == 0) {\n                    psVar39 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(psVar39);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  iVar20 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_0008a36c;\n                }\n                puVar44 = (uchar *)((int)&psVar39->crLine + 1);\n                iVar20 = (int)puVar23 - (int)puVar44;\n                unaff_s6 = (ssh_sharing_connstate *)0x0;\n                if (iVar20 < 4) {\nLAB_00089ec4:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar21 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)&psStack_90,\n                                           (int *)0x0);\n                  unaff_s6 = psStack_90;\n                  if (iVar21 == 0) {\n                    unaff_s6 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar20 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_00089ec4;\n                }\n                if ((int)puVar23 <= (int)(puVar44 + (int)psVar39 + 3)) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar47 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                puVar38 = puVar38 + (int)(puVar44 + (int)psVar39);\n                if (-1 < iVar29) {\n                  pcVar48 = *(code **)(puVar47 + 0x88b94);\n                  uVar7 = *puVar38;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar38[1];\n                  uVar8 = puVar38[3];\n                  uVar9 = puVar38[2];\n                  psStack_b0->got_verstring = iVar29;\n                  iVar20 = (*pcVar48)(unaff_s6,psStack_b0->recvbuf);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psStack_b0->curr_packetlen = iVar20;\n                  (*pcVar48)(unaff_s6);\n                  iVar29 = (**(code **)(puVar47 + 0x88b98))\n                                     (cs_00->parent->ssh,iVar29,cs_00,psStack_b0);\n                  psStack_b0->sent_verstring = iVar29;\n                  *(uint *)(psStack_b0->recvbuf + 4) = (uint)bVar13;\n                  psVar45 = (ssh_sharing_connstate *)\n                            (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0xc));\n                  unaff_s6 = (ssh_sharing_connstate *)\n                             (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0x10));\n                  puVar38 = (uchar *)((int)&psVar45->curr_packetlen + 1) + (int)unaff_s6;\n                  puVar22 = (undefined1 *)(**(code **)(puVar47 + 0x88390))(puVar38,1);\n                  puVar22[4] = 0;\n                  puVar22[5] = 0;\n                  uVar32 = *(uint *)(iVar28 + -0x36a0);\n                  uVar10 = *(undefined1 *)(iVar28 + -0x369c);\n                  uVar11 = *(undefined1 *)(iVar28 + -0x369b);\n                  uVar12 = *(undefined1 *)(iVar28 + -0x369a);\n                  puVar22[3] = (char)ppsVar19;\n                  *puVar22 = (char)((uint)ppsVar19 >> 0x18);\n                  puVar22[1] = (char)((uint)ppsVar19 >> 0x10);\n                  puVar22[2] = (char)((uint)ppsVar19 >> 8);\n                  puVar22[7] = 7;\n                  puVar22[6] = 0;\n                  puVar23 = puVar22 + 8;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & -1 << (4 - uVar36) * 8 | uVar32 >> uVar36 * 8;\n                  puVar23 = puVar22 + 0xb;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & 0xffffffffU >> (uVar36 + 1) * 8 |\n                       uVar32 << (3 - uVar36) * 8;\n                  puVar22[0xc] = uVar10;\n                  puVar22[0xd] = uVar11;\n                  puVar22[0xe] = uVar12;\n                  puVar22[0x10] = bVar13;\n                  puVar22[0x11] = (char)((uint)psVar45 >> 0x18);\n                  puVar22[0x12] = (char)((uint)psVar45 >> 0x10);\n                  puVar22[0x13] = (char)((uint)psVar45 >> 8);\n                  puVar22[0x14] = (char)psVar45;\n                  pcVar48 = *(code **)(puVar47 + 0x89610);\n                  puVar22[0xf] = uVar5 != '\0';\n                  (*pcVar48)(puVar22 + 0x15,*(undefined4 *)(psStack_b0->sent_verstring + 0xc),\n                             psVar45);\n                  puVar23 = puVar22 + (int)psVar45;\n                  puVar23[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar23[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar23[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar23[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar47 + 0x89610))\n                            (puVar22 + (int)((int)&psVar45->got_verstring + 1),\n                             *(undefined4 *)(psStack_b0->sent_verstring + 0x10),unaff_s6);\n                  puVar23 = puVar22 + (int)(unaff_s6->recvbuf + (int)(psVar45->recvbuf + -0x40));\n                  puVar23[0x1c] = uVar8;\n                  puVar23[0x19] = uVar7;\n                  puVar23[0x1a] = uVar6;\n                  puVar23[0x1b] = uVar9;\n                  (**(code **)(puVar47 + 0x88b70))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar22,puVar38,0);\n                  (**(code **)(puVar47 + 0x88394))(puVar22);\n                  cs_00->recvlen = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar47 + 0x88b70))(cs_00->parent->ssh,cs_00->id,bVar31,puVar38,puVar23,0);\n            if ((bVar31 == 0x61) && (3 < (int)puVar23)) {\n              ppsStack_88 = *(Socket *)(cs_00->recvbuf + 5);\n              psVar24 = (share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n              if (psVar24 != (share_channel *)0x0) {\n                if (psVar24->state == 2) {\n                  (**(code **)(puVar47 + 0x88b74))(cs_00->parent->ssh,psVar24->upstream_id);\n                  share_remove_channel(cs_00,psVar24);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar24->state = 1;\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar31 == 0x5c) {\n              if (3 < (int)puVar23) {\n                psVar45 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                unaff_s6 = (ssh_sharing_connstate *)&psStack_90;\n                psStack_90 = psVar45;\n                e = find234(cs_00->halfchannels,unaff_s6,(cmpfn234)0x0);\n                if (e == (void *)0x0) {\n                  psStack_8c = psVar45;\n                  xc_00 = (share_xchannel *)\n                          find234(cs_00->xchannels_by_server,unaff_s6,(cmpfn234)0x0);\n                  if (xc_00 == (share_xchannel *)0x0) {\n                    pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                                (*(int *)(puVar47 + 0x8839c) + 0x4680,psVar45);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(cs_00,xc_00);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar18 = cs_00->parent;\n                  uVar35 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar47 + 0x88b70))(psVar18->ssh,cs_00->id,uVar35,puVar38,puVar23,0);\n                  del234(cs_00->halfchannels,e);\n                  (**(code **)(puVar47 + 0x88394))(e);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }\n              pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar31) {\n              if (100 < bVar31) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)puVar23 < 0x10) {\n              pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar36 = (uint)(cs_00->recvbuf + 5) & 3;\n            upstream_id = *(uint *)(cs_00->recvbuf + 9);\n            uVar32 = (uint)(cs_00->recvbuf + 8) & 3;\n            psVar45 = (ssh_sharing_connstate *)\n                      ((*(int *)(cs_00->recvbuf + 5 + -uVar36) << uVar36 * 8 |\n                       (uint)psVar45 & 0xffffffffU >> (4 - uVar36) * 8) & -1 << (uVar32 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar32) >> (3 - uVar32) * 8);\n            psStack_90 = psVar45;\n            e = find234(cs_00->halfchannels,&psStack_90,(cmpfn234)0x0);\n            if (e == (void *)0x0) {\n              psStack_8c = psVar45;\n              unaff_s6 = (ssh_sharing_connstate *)\n                         find234(cs_00->xchannels_by_server,&psStack_90,(cmpfn234)0x0);\n              if (unaff_s6 == (ssh_sharing_connstate *)0x0) goto LAB_0008a14c;\n              server_id = unaff_s6->fn;\n            }\n            else {\n              unaff_s6 = (ssh_sharing_connstate *)0x0;\n              server_id = (plug_function_table *)\n                          (**(code **)(puVar47 + 0x88b8c))(cs_00->parent->ssh,cs_00);\n            }\n            cs_00->recvbuf[0xc] = (uchar)server_id;\n            cs_00->recvbuf[9] = (uchar)((uint)server_id >> 0x18);\n            cs_00->recvbuf[10] = (uchar)((uint)server_id >> 0x10);\n            cs_00->recvbuf[0xb] = (uchar)((uint)server_id >> 8);\n            uVar36 = (uint)(cs_00->recvbuf + 0x11) & 3;\n            uVar32 = (uint)(cs_00->recvbuf + 0x14) & 3;\n            psVar24 = share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)server_id\n                                        ,(int)psVar45,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar36) << uVar36 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar36) * 8) &\n                                         -1 << (uVar32 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar32) >>\n                                        (3 - uVar32) * 8));\n            if (e != (void *)0x0) {\n              psVar18 = cs_00->parent;\n              uVar35 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (ssh_sharing_connstate *)0x0) {\n              uVar36 = *(uint *)(cs_00->recvbuf + 0xd);\n              if (uVar36 < 0x100) {\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x4614,uVar36);\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(cs_00,(share_xchannel *)unaff_s6,psVar24,uVar36);\n              share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,unaff_s6);\n              cs_00->recvlen = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          cs_00->recvlen = 0;\n          goto LAB_000893ac;\n        }\n        iVar28 = *(int *)(puVar47 + 0x8839c);\n        if (3 < (int)puVar23) {\n          iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n          if (((iVar28 == 0) || ((int)psStack_90 < 0)) ||\n             (psVar45 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90),\n             (int)&unaff_s6[-1].xchannels_by_server <= (int)psStack_90)) {\n            iVar28 = *(int *)(puVar47 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pppVar14 = &psStack_90->fn;\n          pppVar15 = &psStack_90->fn;\n          psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)((int)&psStack_90->fn + 2));\n          unaff_s6 = (ssh_sharing_connstate *)\n                     ((uint)*(byte *)&psVar45->fn << 0x18 |\n                      (uint)puVar38[(int)((int)pppVar14 + 1)] << 0x10 |\n                      (uint)puVar38[(int)((int)pppVar15 + 3)] | (uint)*(byte *)&psStack_b0->fn << 8)\n          ;\n          uVar36 = (**(code **)(puVar47 + 0x88b8c))(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)unaff_s6,uVar36,0,3,\n                            (ssh_sharing_connstate *)\n                            ((uint)*(byte *)&psVar45->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 3) |\n                            (uint)*(uchar *)((int)&psVar45->sock + 2) << 8));\n          *(char *)&psVar45->fn = (char)(uVar36 >> 0x18);\n          puVar38[(int)((int)pppVar14 + 1)] = (byte)(uVar36 >> 0x10);\n          *(char *)&psStack_b0->fn = (char)(uVar36 >> 8);\n          puVar38[(int)((int)pppVar15 + 3)] = (byte)uVar36;\n          (**(code **)(puVar47 + 0x88b70))(cs_00->parent->ssh,cs_00->id,0x5a,puVar38,puVar23,0);\n          cs_00->recvlen = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))(iVar28 + 0x458c);\nLAB_00089674:\n        while (pcVar17 == (char *)0x0) {\n          (**(code **)(puVar47 + 0x88ff4))\n                    (*(int *)(puVar47 + 0x8839c) + 0x4768,*(int *)(puVar47 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar47 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                      (*(int *)(puVar47 + 0x8839c) + 0x45d8,psVar45);\n        }\n        share_disconnect(cs_00,pcVar17);\n        (**(code **)(puVar47 + 0x88394))(pcVar17);\n        cs_00->recvlen = 0;\n        goto LAB_000893ac;\n      }\n      pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                  (*(int *)(puVar47 + 0x8839c) + 0x4544,iVar28);\nLAB_000890b4:\n      share_disconnect(cs_00,pcVar17);\n      (**(code **)(puVar47 + 0x88394))(pcVar17);\n      unaff_s5 = pbVar33;\nLAB_000890e0:\n      cs_00->crLine = 0;\n    } while( true );\n  }\n  uVar36 = cs_00->recvlen;\n  bVar31 = *pbVar33;\n  pbVar40 = pbVar16 + -1;\n  pbVar42 = pbVar33 + 1;\n  if (bVar31 == 10) {\nLAB_0008942c:\n    pbVar33 = pbVar42;\n    if (0x2d < uVar36) {\n      psVar45 = (ssh_sharing_connstate *)cs_00->recvbuf;\n      iVar28 = (**(code **)(puVar47 + 0x894d4))(psVar45,*(int *)(puVar47 + 0x8839c) + 0x4890,0x2e);\n      if (iVar28 == 0) {\n        if ((0 < (int)uVar36) && (cs_00->recvbuf[uVar36 - 1] == '\r')) {\n          cs_00->recvlen = uVar36 - 1;\n          uVar36 = uVar36 - 1;\n        }\n        (**(code **)(puVar47 + 0x88b68))\n                  (cs_00->parent->ssh,cs_00->id,*(int *)(puVar47 + 0x8839c) + 0x4524,uVar36,psVar45)\n        ;\n        cs_00->got_verstring = 1;\n        cs_00->recvlen = 0;\n        goto LAB_000893ac;\n      }\n    }\n    pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))(*(int *)(puVar47 + 0x8839c) + 0x44f4);\n    goto LAB_000890b4;\n  }\n  pbVar41 = pbVar16;\n  if (uVar36 < 0x4010) {\n    uVar36 = uVar36 + 1;\n    pbVar34 = pbVar33 + (int)pbVar40;\n    pbVar40 = pbVar16;\n    unaff_s5 = pbVar42;\n    do {\n      cs_00->recvlen = uVar36;\n      cs_00->recvbuf[uVar36 - 1] = bVar31;\n      if (pbVar33 + (int)pbVar16 == unaff_s5) goto LAB_00089094;\n      pbVar40 = pbVar34 + -(int)unaff_s5;\n      pbVar42 = unaff_s5 + 1;\n      bVar31 = *unaff_s5;\n      if (bVar31 == 10) goto LAB_0008942c;\n      uVar36 = uVar36 + 1;\n      pbVar41 = pbVar40;\n      unaff_s5 = pbVar42;\n    } while (uVar36 != 0x4011);\n  }\n  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))(*(int *)(puVar47 + 0x8839c) + 0x44d4);\n  pbVar40 = pbVar41;\n  pbVar33 = pbVar42;\n  goto LAB_000890b4;\n}" primitive_type (function_declarator "share_xchannel_failure(ssh_sharing_connstate *cs,share_xchannel *xc)" identifier (parameter_list "(ssh_sharing_connstate *cs,share_xchannel *xc)" ( (parameter_declaration "ssh_sharing_connstate *cs" type_identifier (pointer_declarator "*cs" * identifier)) , (parameter_declaration "share_xchannel *xc" type_identifier (pointer_declarator "*xc" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  byte bVar2;\n  byte bVar3;\n  byte bVar4;\n  uchar uVar5;\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  byte *pbVar16;\n  char *pcVar17;\n  uint upstream_id;\n  void *e;\n  plug_function_table *server_id;\n  ssh_sharing_state *psVar18;\n  Socket ppsVar19;\n  int iVar20;\n  int iVar21;\n  undefined1 *puVar22;\n  undefined1 *puVar23;\n  share_channel *psVar24;\n  share_xchannel *xc_00;\n  share_forwarding *e_00;\n  share_forwarding *psVar25;\n  share_globreq *psVar26;\n  undefined4 *puVar27;\n  int iVar28;\n  int iVar29;\n  ssh_sharing_connstate *cs_00;\n  byte bVar31;\n  tree234 *t;\n  share_globreq *psVar30;\n  uint uVar32;\n  byte *pbVar33;\n  byte *pbVar34;\n  undefined4 uVar35;\n  uint uVar36;\n  uint in_t3;\n  undefined *puVar37;\n  uchar *puVar38;\n  ssh_sharing_connstate *psVar39;\n  byte *pbVar40;\n  byte *pbVar41;\n  byte *unaff_s5;\n  byte *pbVar42;\n  ssh_sharing_connstate *unaff_s6;\n  ssh_sharing_connstate *psVar43;\n  uchar *puVar44;\n  ssh_sharing_connstate *psVar45;\n  uchar *puVar46;\n  undefined *puVar47;\n  code *pcVar48;\n  int *piVar49;\n  ssh_sharing_connstate *psStack_b0;\n  ssh_sharing_connstate *psStack_90;\n  ssh_sharing_connstate *psStack_8c;\n  Socket ppsStack_88;\n  plug_function_table *ppStack_68;\n  int iStack_64;\n  share_xchannel *psStack_60;\n  ssh_sharing_connstate *psStack_5c;\n  undefined *puStack_58;\n  uchar id [4];\n  \n  psVar45 = (ssh_sharing_connstate *)PTR___stack_chk_guard_00112630;\n  id = (uchar  [4])xc->server_id;\n  pbVar33 = &DAT_00000061;\n  pbVar16 = id;\n  iVar28 = *(int *)PTR___stack_chk_guard_00112630;\n  (*(code *)PTR_ssh_send_packet_from_downstream_00111acc)(cs->parent->ssh,cs->id);\n  xc->live = 0;\n  cs_00 = cs;\n  share_dead_xchannel_respond(cs,xc);\n  if (iVar28 == *(int *)psVar45) {\n    return;\n  }\n  puVar47 = PTR___stack_chk_fail_001122c8;\n  (*(code *)PTR___stack_chk_fail_001122c8)();\n  iVar28 = cs_00->crLine;\n  piVar49 = *(int **)(puVar47 + 0x896d4);\n  puStack_58 = (undefined *)psVar45;\n  iStack_64 = *piVar49;\n  pbVar40 = pbVar16;\n  psStack_60 = xc;\n  psStack_5c = cs;\n  if (iVar28 != 0x709) {\n    if (0x709 < iVar28) {\n      if (iVar28 == 0x72e) goto LAB_000893ac;\n      if (iVar28 != 0x73b) goto LAB_000890e0;\n      goto LAB_00088fd4;\n    }\n    if (iVar28 != 0) goto LAB_000890e0;\n    cs_00->recvlen = 0;\n  }\n  if (pbVar16 == (byte *)0x0) {\nLAB_00089094:\n    cs_00->crLine = 0x709;\nLAB_000890e4:\n    do {\n      if (iStack_64 == *piVar49) {\n        return;\n      }\n      (**(code **)(puVar47 + 0x8936c))();\n      pbVar33 = unaff_s5;\nLAB_00089df8:\n      ppStack_68 = psStack_b0->fn;\n      send_packet_to_downstream\n                ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,(share_channel *)0x0,\n                 (share_channel *)0xc);\n      (**(code **)(puVar47 + 0x88394))(unaff_s6);\n      cs_00->recvlen = 0;\nLAB_000893ac:\n      pbVar16 = pbVar33 + (int)pbVar40;\n      unaff_s5 = pbVar33;\n      do {\n        pbVar40 = pbVar16 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar16) {\n          cs_00->crLine = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar28 = cs_00->recvlen;\n        pbVar33 = unaff_s5 + 1;\n        iVar29 = iVar28 + 1;\n        bVar31 = *unaff_s5;\n        in_t3 = (uint)bVar31;\n        cs_00->recvlen = iVar29;\n        cs_00->recvbuf[iVar28] = bVar31;\n        unaff_s5 = pbVar33;\n      } while (iVar29 < 4);\n      iVar28 = (**(code **)(puVar47 + 0x884fc))(*(int *)cs_00->recvbuf + 4);\n      cs_00->curr_packetlen = iVar28;\n      if ((undefined1 *)(iVar28 + -5) < &DAT_0000400c) {\n        unaff_s6 = (ssh_sharing_connstate *)cs_00->recvlen;\n        while (unaff_s5 = pbVar33, (int)unaff_s6 < iVar28) {\nLAB_00088fd4:\n          if (pbVar40 == (byte *)0x0) {\n            cs_00->crLine = 0x73b;\n            pbVar40 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar28 = cs_00->recvlen;\n          pbVar40 = pbVar40 + -1;\n          bVar31 = *pbVar33;\n          pbVar33 = pbVar33 + 1;\n          unaff_s6 = (ssh_sharing_connstate *)(iVar28 + 1);\n          cs_00->recvlen = (int)unaff_s6;\n          cs_00->recvbuf[iVar28] = bVar31;\n          iVar28 = cs_00->curr_packetlen;\n        }\n        bVar31 = cs_00->recvbuf[4];\n        puVar38 = cs_00->recvbuf + 5;\n        puVar23 = (undefined1 *)((int)&unaff_s6[-1].globreq_head + 3);\n        if (bVar31 != 0x5a) {\n          if (bVar31 < 0x5b) {\n            if (bVar31 != 2) {\n              if (2 < bVar31) {\n                if (bVar31 == 4) goto LAB_00089714;\n                if (bVar31 != 0x50) goto LAB_0008965c;\n                iVar28 = *(int *)(puVar47 + 0x8839c);\n                psVar39 = psVar45;\n                if ((int)puVar23 < 4) goto LAB_000896fc;\n                psVar39 = (ssh_sharing_connstate *)(*(int *)(puVar47 + 0x88acc) + 0x79c0);\n                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)&psStack_90,(int *)0x0);\n                psVar43 = psStack_90;\n                if ((iVar28 == 0) || (psStack_90 == (ssh_sharing_connstate *)0x0))\n                goto LAB_000896f8;\n                iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x30e8);\n                if (iVar28 != 0) {\n                  iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                     (psVar43,*(int *)(puVar47 + 0x8839c) + -0x317c);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psVar45 = psVar39;\n                  if (iVar28 == 0) {\n                    (*pcVar48)(psVar43);\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar43 = psStack_90;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                       (int)psStack_90 < (int)puVar23)) {\n                      psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90);\n                      iVar29 = (int)puVar23 - (int)puVar37;\n                      cVar1 = *(char *)&psStack_b0->fn;\n                      if ((iVar29 < 4) ||\n                         (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                                   (int *)&psStack_90), iVar28 == 0)) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if ((int)psVar43 < (int)&unaff_s6[-1].globreq_head) {\n                          if (iVar29 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar35 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        psVar43 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if (-1 < (int)psVar43) {\n                          pcVar48 = *(code **)(puVar47 + 0x8844c);\n                          if ((int)&unaff_s6[-1].globreq_head <= (int)psVar43) goto LAB_00089700;\nLAB_000892a4:\n                          iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,\n                                                   (char **)&psStack_90,(int *)0x0);\n                          psVar45 = psStack_90;\n                          if ((iVar28 == 0) ||\n                             (psVar39 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_00089eec;\n                          puVar44 = puVar38 + (int)psVar43;\n                          bVar31 = *puVar44;\n                          bVar2 = puVar44[1];\n                          bVar3 = puVar44[3];\n                          bVar4 = puVar44[2];\n                          psStack_90 = (ssh_sharing_connstate *)\n                                       (**(code **)(puVar47 + 0x883c0))(psStack_90);\n                          psStack_8c = (ssh_sharing_connstate *)\n                                       ((uint)bVar31 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                       (uint)bVar4 << 8);\n                          unaff_s6 = (ssh_sharing_connstate *)\n                                     find234(cs_00->forwardings,&psStack_90,(cmpfn234)0x0);\n                          (**(code **)(puVar47 + 0x88394))(psStack_90);\n                          if (unaff_s6 == (ssh_sharing_connstate *)0x0) {\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                            if (cVar1 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            cVar1 = *(char *)&psStack_b0->fn;\n                            *(undefined1 *)&psStack_b0->fn = 1;\n                            if (cVar1 == '\0') {\n                              iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar28 = 0;\n                            }\n                            (**(code **)(puVar47 + 0x88b70))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                            (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\nLAB_00089394:\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                          }\n                          (*pcVar48)(psVar45);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar48)();\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar39 = psVar45;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       ((int)psStack_90 < (int)puVar23)) {\n                      if (puVar38[(int)psStack_90] == '\0') goto LAB_000893a4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar47 + 0x88394))(psVar43);\n                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                psVar45 = psStack_90;\n                if (((iVar28 == 0) || ((int)psStack_90 < 0)) ||\n                   (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                   (int)puVar23 <= (int)psStack_90)) goto LAB_000896f8;\n                puVar44 = puVar38 + (int)psStack_90;\n                iVar29 = (int)puVar23 - (int)puVar37;\n                psStack_b0 = (ssh_sharing_connstate *)(uint)*puVar44;\n                if ((iVar29 < 4) ||\n                   (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                             (int *)&psStack_90), iVar28 == 0)) {\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\n                    if (iVar29 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar35 = 0x55e;\nLAB_00089ef0:\n                    pcVar48 = *(code **)(puVar47 + 0x88ff4);\n                    (*pcVar48)(*(int *)(puVar47 + 0x8839c) + 0x457c,\n                               *(int *)(puVar47 + 0x8839c) + 0x43dc,uVar35,\n                               *(int *)(puVar47 + 0x8839c) + 0x4870);\n                    psVar45 = psVar39;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                }\n                else {\n                  psVar45 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < 0) goto LAB_000896fc;\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\nLAB_0008a05c:\n                    iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)&psStack_90,\n                                             (int *)0x0);\n                    psVar43 = psStack_90;\n                    if ((iVar28 == 0) ||\n                       (unaff_s6 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_0008a304;\n                    puVar46 = puVar38 + (int)psVar45;\n                    psVar45 = (ssh_sharing_connstate *)\n                              ((uint)*puVar46 << 0x18 | (uint)puVar46[3] | (uint)puVar46[1] << 0x10\n                              | (uint)puVar46[2] << 8);\n                    iVar28 = (**(code **)(puVar47 + 0x88ba0))\n                                       (cs_00->parent->ssh,psStack_90,psVar45,cs_00);\n                    if (iVar28 == 0) {\n                      if (psStack_b0 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar31 = *puVar44;\n                      *puVar44 = 1;\n                      if (bVar31 == 0) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar28 = 0;\n                      }\n                      (**(code **)(puVar47 + 0x88b70))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                      e_00 = (share_forwarding *)(**(code **)(puVar47 + 0x88390))(1,0xc);\n                      pcVar17 = (char *)(**(code **)(puVar47 + 0x883c0))(psVar43);\n                      t = cs_00->forwardings;\n                      e_00->host = pcVar17;\n                      e_00->port = (int)psVar45;\n                      e_00->active = 0;\n                      psVar25 = (share_forwarding *)add234(t,e_00);\n                      if (e_00 == psVar25) {\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                        psVar26 = (share_globreq *)(**(code **)(puVar47 + 0x88390))(1,0x10);\n                        psVar30 = cs_00->globreq_tail;\n                        psVar26->next = (share_globreq *)0x0;\n                        if (psVar30 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar26;\n                        }\n                        else {\n                          psVar30->next = psVar26;\n                        }\n                        psVar26->fwd = e_00;\n                        psVar26->type = 0;\n                        psVar26->want_reply = (int)psStack_b0;\n                      }\n                      else {\n                        (**(code **)(puVar47 + 0x88394))(e_00);\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(puVar47 + 0x88394))(psVar43);\n                    cs_00->recvlen = 0;\n                    unaff_s6 = psVar43;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                pcVar17 = (char *)(*pcVar48)(iVar28 + 0x455c);\n                psVar45 = psVar39;\n                goto LAB_00089674;\n              }\n              if (bVar31 != 1) {\nLAB_0008965c:\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x474c,bVar31);\n                goto LAB_00089674;\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_000893ac;\n            }\nLAB_00089714:\n            puVar22 = (undefined1 *)((int)&unaff_s6[-1].forwardings + 3);\n            if ((bVar31 == 0x62) &&\n               (psVar45 = *(ssh_sharing_connstate **)(puVar47 + 0x88acc), 3 < (int)puVar22)) {\n              psVar45 = (ssh_sharing_connstate *)(psVar45[1].recvbuf + 0x394c);\n              iVar28 = getstring_inner(cs_00->recvbuf + 9,(int)puVar22,(char **)&psStack_90,\n                                       (int *)0x0);\n              psVar39 = psStack_90;\n              if ((iVar28 != 0) && (psStack_90 != (ssh_sharing_connstate *)0x0)) {\n                psStack_b0 = psStack_90;\n                iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x363c);\n                if ((iVar28 == 0) &&\n                   (iVar28 = (**(code **)(puVar47 + 0x888c4))(cs_00->parent->ssh), iVar28 == 0)) {\n                  ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  ppsStack_88 = ppsVar19;\n                  puVar27 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                  if (puVar27 == (undefined4 *)0x0) {\n                    pcVar48 = *(code **)(puVar47 + 0x8844c);\n                    iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    pcVar17 = (char *)(*pcVar48)(iVar28,ppsVar19);\n                    share_disconnect(cs_00,pcVar17);\n                    (**(code **)(puVar47 + 0x88394))(pcVar17);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_68 = (plug_function_table *)*puVar27;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar28 = *(int *)(puVar47 + 0x8839c);\n                iVar29 = (**(code **)(puVar47 + 0x8953c))(psVar39,iVar28 + -0x36a0);\n                if (iVar29 != 0) {\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  psStack_b0 = psVar39;\n                  goto LAB_00089cc8;\n                }\n                ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                (**(code **)(puVar47 + 0x88394))(psVar39);\n                ppsStack_88 = ppsVar19;\n                psStack_b0 = (ssh_sharing_connstate *)\n                             find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                if (psStack_b0 == (ssh_sharing_connstate *)0x0) {\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)puVar23 < 0x11) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                uVar5 = cs_00->recvbuf[0x14];\n                puVar22 = (undefined1 *)((int)&unaff_s6[-1].channels_by_server + 2);\n                uVar6 = cs_00->recvbuf[0x15];\n                if ((int)puVar22 < 4) {\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(0);\n                  (**(code **)(puVar47 + 0x88394))(0);\nLAB_0008a36c:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar29 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)&psStack_90,\n                                           (int *)0x0);\n                  psVar39 = psStack_90;\n                  if (iVar29 == 0) {\n                    psVar39 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(psVar39);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  iVar20 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_0008a36c;\n                }\n                puVar44 = (uchar *)((int)&psVar39->crLine + 1);\n                iVar20 = (int)puVar23 - (int)puVar44;\n                unaff_s6 = (ssh_sharing_connstate *)0x0;\n                if (iVar20 < 4) {\nLAB_00089ec4:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar21 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)&psStack_90,\n                                           (int *)0x0);\n                  unaff_s6 = psStack_90;\n                  if (iVar21 == 0) {\n                    unaff_s6 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar20 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_00089ec4;\n                }\n                if ((int)puVar23 <= (int)(puVar44 + (int)psVar39 + 3)) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar47 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                puVar38 = puVar38 + (int)(puVar44 + (int)psVar39);\n                if (-1 < iVar29) {\n                  pcVar48 = *(code **)(puVar47 + 0x88b94);\n                  uVar7 = *puVar38;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar38[1];\n                  uVar8 = puVar38[3];\n                  uVar9 = puVar38[2];\n                  psStack_b0->got_verstring = iVar29;\n                  iVar20 = (*pcVar48)(unaff_s6,psStack_b0->recvbuf);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psStack_b0->curr_packetlen = iVar20;\n                  (*pcVar48)(unaff_s6);\n                  iVar29 = (**(code **)(puVar47 + 0x88b98))\n                                     (cs_00->parent->ssh,iVar29,cs_00,psStack_b0);\n                  psStack_b0->sent_verstring = iVar29;\n                  *(uint *)(psStack_b0->recvbuf + 4) = (uint)bVar13;\n                  psVar45 = (ssh_sharing_connstate *)\n                            (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0xc));\n                  unaff_s6 = (ssh_sharing_connstate *)\n                             (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0x10));\n                  puVar38 = (uchar *)((int)&psVar45->curr_packetlen + 1) + (int)unaff_s6;\n                  puVar22 = (undefined1 *)(**(code **)(puVar47 + 0x88390))(puVar38,1);\n                  puVar22[4] = 0;\n                  puVar22[5] = 0;\n                  uVar32 = *(uint *)(iVar28 + -0x36a0);\n                  uVar10 = *(undefined1 *)(iVar28 + -0x369c);\n                  uVar11 = *(undefined1 *)(iVar28 + -0x369b);\n                  uVar12 = *(undefined1 *)(iVar28 + -0x369a);\n                  puVar22[3] = (char)ppsVar19;\n                  *puVar22 = (char)((uint)ppsVar19 >> 0x18);\n                  puVar22[1] = (char)((uint)ppsVar19 >> 0x10);\n                  puVar22[2] = (char)((uint)ppsVar19 >> 8);\n                  puVar22[7] = 7;\n                  puVar22[6] = 0;\n                  puVar23 = puVar22 + 8;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & -1 << (4 - uVar36) * 8 | uVar32 >> uVar36 * 8;\n                  puVar23 = puVar22 + 0xb;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & 0xffffffffU >> (uVar36 + 1) * 8 |\n                       uVar32 << (3 - uVar36) * 8;\n                  puVar22[0xc] = uVar10;\n                  puVar22[0xd] = uVar11;\n                  puVar22[0xe] = uVar12;\n                  puVar22[0x10] = bVar13;\n                  puVar22[0x11] = (char)((uint)psVar45 >> 0x18);\n                  puVar22[0x12] = (char)((uint)psVar45 >> 0x10);\n                  puVar22[0x13] = (char)((uint)psVar45 >> 8);\n                  puVar22[0x14] = (char)psVar45;\n                  pcVar48 = *(code **)(puVar47 + 0x89610);\n                  puVar22[0xf] = uVar5 != '\0';\n                  (*pcVar48)(puVar22 + 0x15,*(undefined4 *)(psStack_b0->sent_verstring + 0xc),\n                             psVar45);\n                  puVar23 = puVar22 + (int)psVar45;\n                  puVar23[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar23[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar23[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar23[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar47 + 0x89610))\n                            (puVar22 + (int)((int)&psVar45->got_verstring + 1),\n                             *(undefined4 *)(psStack_b0->sent_verstring + 0x10),unaff_s6);\n                  puVar23 = puVar22 + (int)(unaff_s6->recvbuf + (int)(psVar45->recvbuf + -0x40));\n                  puVar23[0x1c] = uVar8;\n                  puVar23[0x19] = uVar7;\n                  puVar23[0x1a] = uVar6;\n                  puVar23[0x1b] = uVar9;\n                  (**(code **)(puVar47 + 0x88b70))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar22,puVar38,0);\n                  (**(code **)(puVar47 + 0x88394))(puVar22);\n                  cs_00->recvlen = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar47 + 0x88b70))(cs_00->parent->ssh,cs_00->id,bVar31,puVar38,puVar23,0);\n            if ((bVar31 == 0x61) && (3 < (int)puVar23)) {\n              ppsStack_88 = *(Socket *)(cs_00->recvbuf + 5);\n              psVar24 = (share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n              if (psVar24 != (share_channel *)0x0) {\n                if (psVar24->state == 2) {\n                  (**(code **)(puVar47 + 0x88b74))(cs_00->parent->ssh,psVar24->upstream_id);\n                  share_remove_channel(cs_00,psVar24);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar24->state = 1;\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar31 == 0x5c) {\n              if (3 < (int)puVar23) {\n                psVar45 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                unaff_s6 = (ssh_sharing_connstate *)&psStack_90;\n                psStack_90 = psVar45;\n                e = find234(cs_00->halfchannels,unaff_s6,(cmpfn234)0x0);\n                if (e == (void *)0x0) {\n                  psStack_8c = psVar45;\n                  xc_00 = (share_xchannel *)\n                          find234(cs_00->xchannels_by_server,unaff_s6,(cmpfn234)0x0);\n                  if (xc_00 == (share_xchannel *)0x0) {\n                    pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                                (*(int *)(puVar47 + 0x8839c) + 0x4680,psVar45);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(cs_00,xc_00);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar18 = cs_00->parent;\n                  uVar35 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar47 + 0x88b70))(psVar18->ssh,cs_00->id,uVar35,puVar38,puVar23,0);\n                  del234(cs_00->halfchannels,e);\n                  (**(code **)(puVar47 + 0x88394))(e);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }\n              pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar31) {\n              if (100 < bVar31) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)puVar23 < 0x10) {\n              pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar36 = (uint)(cs_00->recvbuf + 5) & 3;\n            upstream_id = *(uint *)(cs_00->recvbuf + 9);\n            uVar32 = (uint)(cs_00->recvbuf + 8) & 3;\n            psVar45 = (ssh_sharing_connstate *)\n                      ((*(int *)(cs_00->recvbuf + 5 + -uVar36) << uVar36 * 8 |\n                       (uint)psVar45 & 0xffffffffU >> (4 - uVar36) * 8) & -1 << (uVar32 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar32) >> (3 - uVar32) * 8);\n            psStack_90 = psVar45;\n            e = find234(cs_00->halfchannels,&psStack_90,(cmpfn234)0x0);\n            if (e == (void *)0x0) {\n              psStack_8c = psVar45;\n              unaff_s6 = (ssh_sharing_connstate *)\n                         find234(cs_00->xchannels_by_server,&psStack_90,(cmpfn234)0x0);\n              if (unaff_s6 == (ssh_sharing_connstate *)0x0) goto LAB_0008a14c;\n              server_id = unaff_s6->fn;\n            }\n            else {\n              unaff_s6 = (ssh_sharing_connstate *)0x0;\n              server_id = (plug_function_table *)\n                          (**(code **)(puVar47 + 0x88b8c))(cs_00->parent->ssh,cs_00);\n            }\n            cs_00->recvbuf[0xc] = (uchar)server_id;\n            cs_00->recvbuf[9] = (uchar)((uint)server_id >> 0x18);\n            cs_00->recvbuf[10] = (uchar)((uint)server_id >> 0x10);\n            cs_00->recvbuf[0xb] = (uchar)((uint)server_id >> 8);\n            uVar36 = (uint)(cs_00->recvbuf + 0x11) & 3;\n            uVar32 = (uint)(cs_00->recvbuf + 0x14) & 3;\n            psVar24 = share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)server_id\n                                        ,(int)psVar45,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar36) << uVar36 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar36) * 8) &\n                                         -1 << (uVar32 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar32) >>\n                                        (3 - uVar32) * 8));\n            if (e != (void *)0x0) {\n              psVar18 = cs_00->parent;\n              uVar35 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (ssh_sharing_connstate *)0x0) {\n              uVar36 = *(uint *)(cs_00->recvbuf + 0xd);\n              if (uVar36 < 0x100) {\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x4614,uVar36);\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(cs_00,(share_xchannel *)unaff_s6,psVar24,uVar36);\n              share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,unaff_s6);\n              cs_00->recvlen = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          cs_00->recvlen = 0;\n          goto LAB_000893ac;\n        }\n        iVar28 = *(int *)(puVar47 + 0x8839c);\n        if (3 < (int)puVar23) {\n          iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n          if (((iVar28 == 0) || ((int)psStack_90 < 0)) ||\n             (psVar45 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90),\n             (int)&unaff_s6[-1].xchannels_by_server <= (int)psStack_90)) {\n            iVar28 = *(int *)(puVar47 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pppVar14 = &psStack_90->fn;\n          pppVar15 = &psStack_90->fn;\n          psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)((int)&psStack_90->fn + 2));\n          unaff_s6 = (ssh_sharing_connstate *)\n                     ((uint)*(byte *)&psVar45->fn << 0x18 |\n                      (uint)puVar38[(int)((int)pppVar14 + 1)] << 0x10 |\n                      (uint)puVar38[(int)((int)pppVar15 + 3)] | (uint)*(byte *)&psStack_b0->fn << 8)\n          ;\n          uVar36 = (**(code **)(puVar47 + 0x88b8c))(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)unaff_s6,uVar36,0,3,\n                            (ssh_sharing_connstate *)\n                            ((uint)*(byte *)&psVar45->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 3) |\n                            (uint)*(uchar *)((int)&psVar45->sock + 2) << 8));\n          *(char *)&psVar45->fn = (char)(uVar36 >> 0x18);\n          puVar38[(int)((int)pppVar14 + 1)] = (byte)(uVar36 >> 0x10);\n          *(char *)&psStack_b0->fn = (char)(uVar36 >> 8);\n          puVar38[(int)((int)pppVar15 + 3)] = (byte)uVar36;\n          (**(code **)(puVar47 + 0x88b70))(cs_00->parent->ssh,cs_00->id,0x5a,puVar38,puVar23,0);\n          cs_00->recvlen = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))(iVar28 + 0x458c);\nLAB_00089674:\n        while (pcVar17 == (char *)0x0) {\n          (**(code **)(puVar47 + 0x88ff4))\n                    (*(int *)(puVar47 + 0x8839c) + 0x4768,*(int *)(puVar47 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar47 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                      (*(int *)(puVar47 + 0x8839c) + 0x45d8,psVar45);\n        }\n        share_disconnect(cs_00,pcVar17);\n        (**(code **)(puVar47 + 0x88394))(pcVar17);\n        cs_00->recvlen = 0;\n        goto LAB_000893ac;\n      }\n      pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                  (*(int *)(puVar47 + 0x8839c) + 0x4544,iVar28);\nLAB_000890b4:\n      share_disconnect(cs_00,pcVar17);\n      (**(code **)(puVar47 + 0x88394))(pcVar17);\n      unaff_s5 = pbVar33;\nLAB_000890e0:\n      cs_00->crLine = 0;\n    } while( true );\n  }\n  uVar36 = cs_00->recvlen;\n  bVar31 = *pbVar33;\n  pbVar40 = pbVar16 + -1;\n  pbVar42 = pbVar33 + 1;\n  if (bVar31 == 10) {\nLAB_0008942c:\n    pbVar33 = pbVar42;\n    if (0x2d < uVar36) {\n      psVar45 = (ssh_sharing_connstate *)cs_00->recvbuf;\n      iVar28 = (**(code **)(puVar47 + 0x894d4))(psVar45,*(int *)(puVar47 + 0x8839c) + 0x4890,0x2e);\n      if (iVar28 == 0) {\n        if ((0 < (int)uVar36) && (cs_00->recvbuf[uVar36 - 1] == '\r')) {\n          cs_00->recvlen = uVar36 - 1;\n          uVar36 = uVar36 - 1;\n        }\n        (**(code **)(puVar47 + 0x88b68))\n                  (cs_00->parent->ssh,cs_00->id,*(int *)(puVar47 + 0x8839c) + 0x4524,uVar36,psVar45)\n        ;\n        cs_00->got_verstring = 1;\n        cs_00->recvlen = 0;\n        goto LAB_000893ac;\n      }\n    }\n    pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))(*(int *)(puVar47 + 0x8839c) + 0x44f4);\n    goto LAB_000890b4;\n  }\n  pbVar41 = pbVar16;\n  if (uVar36 < 0x4010) {\n    uVar36 = uVar36 + 1;\n    pbVar34 = pbVar33 + (int)pbVar40;\n    pbVar40 = pbVar16;\n    unaff_s5 = pbVar42;\n    do {\n      cs_00->recvlen = uVar36;\n      cs_00->recvbuf[uVar36 - 1] = bVar31;\n      if (pbVar33 + (int)pbVar16 == unaff_s5) goto LAB_00089094;\n      pbVar40 = pbVar34 + -(int)unaff_s5;\n      pbVar42 = unaff_s5 + 1;\n      bVar31 = *unaff_s5;\n      if (bVar31 == 10) goto LAB_0008942c;\n      uVar36 = uVar36 + 1;\n      pbVar41 = pbVar40;\n      unaff_s5 = pbVar42;\n    } while (uVar36 != 0x4011);\n  }\n  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))(*(int *)(puVar47 + 0x8839c) + 0x44d4);\n  pbVar40 = pbVar41;\n  pbVar33 = pbVar42;\n  goto LAB_000890b4;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "uchar uVar5;" 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 "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "char *pcVar17;" primitive_type (pointer_declarator "*pcVar17" * identifier) ;) (declaration "uint upstream_id;" type_identifier identifier ;) (declaration "void *e;" primitive_type (pointer_declarator "*e" * identifier) ;) (declaration "plug_function_table *server_id;" type_identifier (pointer_declarator "*server_id" * identifier) ;) (declaration "ssh_sharing_state *psVar18;" type_identifier (pointer_declarator "*psVar18" * identifier) ;) (declaration "Socket ppsVar19;" type_identifier identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "undefined1 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "undefined1 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "share_channel *psVar24;" type_identifier (pointer_declarator "*psVar24" * identifier) ;) (declaration "share_xchannel *xc_00;" type_identifier (pointer_declarator "*xc_00" * identifier) ;) (declaration "share_forwarding *e_00;" type_identifier (pointer_declarator "*e_00" * identifier) ;) (declaration "share_forwarding *psVar25;" type_identifier (pointer_declarator "*psVar25" * identifier) ;) (declaration "share_globreq *psVar26;" type_identifier (pointer_declarator "*psVar26" * identifier) ;) (declaration "undefined4 *puVar27;" type_identifier (pointer_declarator "*puVar27" * identifier) ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "int iVar29;" primitive_type identifier ;) (declaration "ssh_sharing_connstate *cs_00;" type_identifier (pointer_declarator "*cs_00" * identifier) ;) (declaration "byte bVar31;" type_identifier identifier ;) (declaration "tree234 *t;" type_identifier (pointer_declarator "*t" * identifier) ;) (declaration "share_globreq *psVar30;" type_identifier (pointer_declarator "*psVar30" * identifier) ;) (declaration "uint uVar32;" type_identifier identifier ;) (declaration "byte *pbVar33;" type_identifier (pointer_declarator "*pbVar33" * identifier) ;) (declaration "byte *pbVar34;" type_identifier (pointer_declarator "*pbVar34" * identifier) ;) (declaration "undefined4 uVar35;" type_identifier identifier ;) (declaration "uint uVar36;" type_identifier identifier ;) (declaration "uint in_t3;" type_identifier identifier ;) (declaration "undefined *puVar37;" type_identifier (pointer_declarator "*puVar37" * identifier) ;) (declaration "uchar *puVar38;" type_identifier (pointer_declarator "*puVar38" * identifier) ;) (declaration "ssh_sharing_connstate *psVar39;" type_identifier (pointer_declarator "*psVar39" * identifier) ;) (declaration "byte *pbVar40;" type_identifier (pointer_declarator "*pbVar40" * identifier) ;) (declaration "byte *pbVar41;" type_identifier (pointer_declarator "*pbVar41" * identifier) ;) (declaration "byte *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "byte *pbVar42;" type_identifier (pointer_declarator "*pbVar42" * identifier) ;) (declaration "ssh_sharing_connstate *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "ssh_sharing_connstate *psVar43;" type_identifier (pointer_declarator "*psVar43" * identifier) ;) (declaration "uchar *puVar44;" type_identifier (pointer_declarator "*puVar44" * identifier) ;) (declaration "ssh_sharing_connstate *psVar45;" type_identifier (pointer_declarator "*psVar45" * identifier) ;) (declaration "uchar *puVar46;" type_identifier (pointer_declarator "*puVar46" * identifier) ;) (declaration "undefined *puVar47;" type_identifier (pointer_declarator "*puVar47" * identifier) ;) (declaration "code *pcVar48;" type_identifier (pointer_declarator "*pcVar48" * identifier) ;) (declaration "int *piVar49;" primitive_type (pointer_declarator "*piVar49" * identifier) ;) (declaration "ssh_sharing_connstate *psStack_b0;" type_identifier (pointer_declarator "*psStack_b0" * identifier) ;) (declaration "ssh_sharing_connstate *psStack_90;" type_identifier (pointer_declarator "*psStack_90" * identifier) ;) (declaration "ssh_sharing_connstate *psStack_8c;" type_identifier (pointer_declarator "*psStack_8c" * identifier) ;) (declaration "Socket ppsStack_88;" type_identifier identifier ;) (declaration "plug_function_table *ppStack_68;" type_identifier (pointer_declarator "*ppStack_68" * identifier) ;) (declaration "int iStack_64;" primitive_type identifier ;) (declaration "share_xchannel *psStack_60;" type_identifier (pointer_declarator "*psStack_60" * identifier) ;) (declaration "ssh_sharing_connstate *psStack_5c;" type_identifier (pointer_declarator "*psStack_5c" * identifier) ;) (declaration "undefined *puStack_58;" type_identifier (pointer_declarator "*puStack_58" * identifier) ;) (declaration "uchar id [4];" type_identifier (array_declarator "id [4]" identifier [ number_literal ]) ;) (expression_statement "psVar45 = (ssh_sharing_connstate *)PTR___stack_chk_guard_00112630;" (assignment_expression "psVar45 = (ssh_sharing_connstate *)PTR___stack_chk_guard_00112630" identifier = (cast_expression "(ssh_sharing_connstate *)PTR___stack_chk_guard_00112630" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "id = (uchar  [4])xc->server_id;" (assignment_expression "id = (uchar  [4])xc->server_id" identifier = (cast_expression "(uchar  [4])xc->server_id" ( (type_descriptor "uchar  [4]" type_identifier (abstract_array_declarator "[4]" [ number_literal ])) ) (field_expression "xc->server_id" identifier -> field_identifier))) ;) (expression_statement "pbVar33 = &DAT_00000061;" (assignment_expression "pbVar33 = &DAT_00000061" identifier = (pointer_expression "&DAT_00000061" & identifier)) ;) (expression_statement "pbVar16 = id;" (assignment_expression "pbVar16 = id" identifier = identifier) ;) (expression_statement "iVar28 = *(int *)PTR___stack_chk_guard_00112630;" (assignment_expression "iVar28 = *(int *)PTR___stack_chk_guard_00112630" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00112630" * (cast_expression "(int *)PTR___stack_chk_guard_00112630" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "(*(code *)PTR_ssh_send_packet_from_downstream_00111acc)(cs->parent->ssh,cs->id);" (call_expression "(*(code *)PTR_ssh_send_packet_from_downstream_00111acc)(cs->parent->ssh,cs->id)" (parenthesized_expression "(*(code *)PTR_ssh_send_packet_from_downstream_00111acc)" ( (pointer_expression "*(code *)PTR_ssh_send_packet_from_downstream_00111acc" * (cast_expression "(code *)PTR_ssh_send_packet_from_downstream_00111acc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(cs->parent->ssh,cs->id)" ( (field_expression "cs->parent->ssh" (field_expression "cs->parent" identifier -> field_identifier) -> field_identifier) , (field_expression "cs->id" identifier -> field_identifier) ))) ;) (expression_statement "xc->live = 0;" (assignment_expression "xc->live = 0" (field_expression "xc->live" identifier -> field_identifier) = number_literal) ;) (expression_statement "cs_00 = cs;" (assignment_expression "cs_00 = cs" identifier = identifier) ;) (expression_statement "share_dead_xchannel_respond(cs,xc);" (call_expression "share_dead_xchannel_respond(cs,xc)" identifier (argument_list "(cs,xc)" ( identifier , identifier ))) ;) (if_statement "if (iVar28 == *(int *)psVar45) {\n    return;\n  }" if (parenthesized_expression "(iVar28 == *(int *)psVar45)" ( (binary_expression "iVar28 == *(int *)psVar45" identifier == (pointer_expression "*(int *)psVar45" * (cast_expression "(int *)psVar45" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "puVar47 = PTR___stack_chk_fail_001122c8;" (assignment_expression "puVar47 = PTR___stack_chk_fail_001122c8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_001122c8)();" (call_expression "(*(code *)PTR___stack_chk_fail_001122c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_001122c8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_001122c8" * (cast_expression "(code *)PTR___stack_chk_fail_001122c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar28 = cs_00->crLine;" (assignment_expression "iVar28 = cs_00->crLine" identifier = (field_expression "cs_00->crLine" identifier -> field_identifier)) ;) (expression_statement "piVar49 = *(int **)(puVar47 + 0x896d4);" (assignment_expression "piVar49 = *(int **)(puVar47 + 0x896d4)" identifier = (pointer_expression "*(int **)(puVar47 + 0x896d4)" * (cast_expression "(int **)(puVar47 + 0x896d4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x896d4)" ( (binary_expression "puVar47 + 0x896d4" identifier + number_literal) ))))) ;) (expression_statement "puStack_58 = (undefined *)psVar45;" (assignment_expression "puStack_58 = (undefined *)psVar45" identifier = (cast_expression "(undefined *)psVar45" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iStack_64 = *piVar49;" (assignment_expression "iStack_64 = *piVar49" identifier = (pointer_expression "*piVar49" * identifier)) ;) (expression_statement "pbVar40 = pbVar16;" (assignment_expression "pbVar40 = pbVar16" identifier = identifier) ;) (expression_statement "psStack_60 = xc;" (assignment_expression "psStack_60 = xc" identifier = identifier) ;) (expression_statement "psStack_5c = cs;" (assignment_expression "psStack_5c = cs" identifier = identifier) ;) (if_statement "if (iVar28 != 0x709) {\n    if (0x709 < iVar28) {\n      if (iVar28 == 0x72e) goto LAB_000893ac;\n      if (iVar28 != 0x73b) goto LAB_000890e0;\n      goto LAB_00088fd4;\n    }\n    if (iVar28 != 0) goto LAB_000890e0;\n    cs_00->recvlen = 0;\n  }" if (parenthesized_expression "(iVar28 != 0x709)" ( (binary_expression "iVar28 != 0x709" identifier != number_literal) )) (compound_statement "{\n    if (0x709 < iVar28) {\n      if (iVar28 == 0x72e) goto LAB_000893ac;\n      if (iVar28 != 0x73b) goto LAB_000890e0;\n      goto LAB_00088fd4;\n    }\n    if (iVar28 != 0) goto LAB_000890e0;\n    cs_00->recvlen = 0;\n  }" { (if_statement "if (0x709 < iVar28) {\n      if (iVar28 == 0x72e) goto LAB_000893ac;\n      if (iVar28 != 0x73b) goto LAB_000890e0;\n      goto LAB_00088fd4;\n    }" if (parenthesized_expression "(0x709 < iVar28)" ( (binary_expression "0x709 < iVar28" number_literal < identifier) )) (compound_statement "{\n      if (iVar28 == 0x72e) goto LAB_000893ac;\n      if (iVar28 != 0x73b) goto LAB_000890e0;\n      goto LAB_00088fd4;\n    }" { (if_statement "if (iVar28 == 0x72e) goto LAB_000893ac;" if (parenthesized_expression "(iVar28 == 0x72e)" ( (binary_expression "iVar28 == 0x72e" identifier == number_literal) )) (goto_statement "goto LAB_000893ac;" goto statement_identifier ;)) (if_statement "if (iVar28 != 0x73b) goto LAB_000890e0;" if (parenthesized_expression "(iVar28 != 0x73b)" ( (binary_expression "iVar28 != 0x73b" identifier != number_literal) )) (goto_statement "goto LAB_000890e0;" goto statement_identifier ;)) (goto_statement "goto LAB_00088fd4;" goto statement_identifier ;) })) (if_statement "if (iVar28 != 0) goto LAB_000890e0;" if (parenthesized_expression "(iVar28 != 0)" ( (binary_expression "iVar28 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000890e0;" 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 (pbVar16 == (byte *)0x0) {\nLAB_00089094:\n    cs_00->crLine = 0x709;\nLAB_000890e4:\n    do {\n      if (iStack_64 == *piVar49) {\n        return;\n      }\n      (**(code **)(puVar47 + 0x8936c))();\n      pbVar33 = unaff_s5;\nLAB_00089df8:\n      ppStack_68 = psStack_b0->fn;\n      send_packet_to_downstream\n                ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,(share_channel *)0x0,\n                 (share_channel *)0xc);\n      (**(code **)(puVar47 + 0x88394))(unaff_s6);\n      cs_00->recvlen = 0;\nLAB_000893ac:\n      pbVar16 = pbVar33 + (int)pbVar40;\n      unaff_s5 = pbVar33;\n      do {\n        pbVar40 = pbVar16 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar16) {\n          cs_00->crLine = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar28 = cs_00->recvlen;\n        pbVar33 = unaff_s5 + 1;\n        iVar29 = iVar28 + 1;\n        bVar31 = *unaff_s5;\n        in_t3 = (uint)bVar31;\n        cs_00->recvlen = iVar29;\n        cs_00->recvbuf[iVar28] = bVar31;\n        unaff_s5 = pbVar33;\n      } while (iVar29 < 4);\n      iVar28 = (**(code **)(puVar47 + 0x884fc))(*(int *)cs_00->recvbuf + 4);\n      cs_00->curr_packetlen = iVar28;\n      if ((undefined1 *)(iVar28 + -5) < &DAT_0000400c) {\n        unaff_s6 = (ssh_sharing_connstate *)cs_00->recvlen;\n        while (unaff_s5 = pbVar33, (int)unaff_s6 < iVar28) {\nLAB_00088fd4:\n          if (pbVar40 == (byte *)0x0) {\n            cs_00->crLine = 0x73b;\n            pbVar40 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar28 = cs_00->recvlen;\n          pbVar40 = pbVar40 + -1;\n          bVar31 = *pbVar33;\n          pbVar33 = pbVar33 + 1;\n          unaff_s6 = (ssh_sharing_connstate *)(iVar28 + 1);\n          cs_00->recvlen = (int)unaff_s6;\n          cs_00->recvbuf[iVar28] = bVar31;\n          iVar28 = cs_00->curr_packetlen;\n        }\n        bVar31 = cs_00->recvbuf[4];\n        puVar38 = cs_00->recvbuf + 5;\n        puVar23 = (undefined1 *)((int)&unaff_s6[-1].globreq_head + 3);\n        if (bVar31 != 0x5a) {\n          if (bVar31 < 0x5b) {\n            if (bVar31 != 2) {\n              if (2 < bVar31) {\n                if (bVar31 == 4) goto LAB_00089714;\n                if (bVar31 != 0x50) goto LAB_0008965c;\n                iVar28 = *(int *)(puVar47 + 0x8839c);\n                psVar39 = psVar45;\n                if ((int)puVar23 < 4) goto LAB_000896fc;\n                psVar39 = (ssh_sharing_connstate *)(*(int *)(puVar47 + 0x88acc) + 0x79c0);\n                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)&psStack_90,(int *)0x0);\n                psVar43 = psStack_90;\n                if ((iVar28 == 0) || (psStack_90 == (ssh_sharing_connstate *)0x0))\n                goto LAB_000896f8;\n                iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x30e8);\n                if (iVar28 != 0) {\n                  iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                     (psVar43,*(int *)(puVar47 + 0x8839c) + -0x317c);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psVar45 = psVar39;\n                  if (iVar28 == 0) {\n                    (*pcVar48)(psVar43);\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar43 = psStack_90;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                       (int)psStack_90 < (int)puVar23)) {\n                      psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90);\n                      iVar29 = (int)puVar23 - (int)puVar37;\n                      cVar1 = *(char *)&psStack_b0->fn;\n                      if ((iVar29 < 4) ||\n                         (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                                   (int *)&psStack_90), iVar28 == 0)) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if ((int)psVar43 < (int)&unaff_s6[-1].globreq_head) {\n                          if (iVar29 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar35 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        psVar43 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if (-1 < (int)psVar43) {\n                          pcVar48 = *(code **)(puVar47 + 0x8844c);\n                          if ((int)&unaff_s6[-1].globreq_head <= (int)psVar43) goto LAB_00089700;\nLAB_000892a4:\n                          iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,\n                                                   (char **)&psStack_90,(int *)0x0);\n                          psVar45 = psStack_90;\n                          if ((iVar28 == 0) ||\n                             (psVar39 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_00089eec;\n                          puVar44 = puVar38 + (int)psVar43;\n                          bVar31 = *puVar44;\n                          bVar2 = puVar44[1];\n                          bVar3 = puVar44[3];\n                          bVar4 = puVar44[2];\n                          psStack_90 = (ssh_sharing_connstate *)\n                                       (**(code **)(puVar47 + 0x883c0))(psStack_90);\n                          psStack_8c = (ssh_sharing_connstate *)\n                                       ((uint)bVar31 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                       (uint)bVar4 << 8);\n                          unaff_s6 = (ssh_sharing_connstate *)\n                                     find234(cs_00->forwardings,&psStack_90,(cmpfn234)0x0);\n                          (**(code **)(puVar47 + 0x88394))(psStack_90);\n                          if (unaff_s6 == (ssh_sharing_connstate *)0x0) {\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                            if (cVar1 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            cVar1 = *(char *)&psStack_b0->fn;\n                            *(undefined1 *)&psStack_b0->fn = 1;\n                            if (cVar1 == '\0') {\n                              iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar28 = 0;\n                            }\n                            (**(code **)(puVar47 + 0x88b70))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                            (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\nLAB_00089394:\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                          }\n                          (*pcVar48)(psVar45);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar48)();\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar39 = psVar45;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       ((int)psStack_90 < (int)puVar23)) {\n                      if (puVar38[(int)psStack_90] == '\0') goto LAB_000893a4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar47 + 0x88394))(psVar43);\n                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                psVar45 = psStack_90;\n                if (((iVar28 == 0) || ((int)psStack_90 < 0)) ||\n                   (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                   (int)puVar23 <= (int)psStack_90)) goto LAB_000896f8;\n                puVar44 = puVar38 + (int)psStack_90;\n                iVar29 = (int)puVar23 - (int)puVar37;\n                psStack_b0 = (ssh_sharing_connstate *)(uint)*puVar44;\n                if ((iVar29 < 4) ||\n                   (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                             (int *)&psStack_90), iVar28 == 0)) {\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\n                    if (iVar29 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar35 = 0x55e;\nLAB_00089ef0:\n                    pcVar48 = *(code **)(puVar47 + 0x88ff4);\n                    (*pcVar48)(*(int *)(puVar47 + 0x8839c) + 0x457c,\n                               *(int *)(puVar47 + 0x8839c) + 0x43dc,uVar35,\n                               *(int *)(puVar47 + 0x8839c) + 0x4870);\n                    psVar45 = psVar39;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                }\n                else {\n                  psVar45 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < 0) goto LAB_000896fc;\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\nLAB_0008a05c:\n                    iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)&psStack_90,\n                                             (int *)0x0);\n                    psVar43 = psStack_90;\n                    if ((iVar28 == 0) ||\n                       (unaff_s6 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_0008a304;\n                    puVar46 = puVar38 + (int)psVar45;\n                    psVar45 = (ssh_sharing_connstate *)\n                              ((uint)*puVar46 << 0x18 | (uint)puVar46[3] | (uint)puVar46[1] << 0x10\n                              | (uint)puVar46[2] << 8);\n                    iVar28 = (**(code **)(puVar47 + 0x88ba0))\n                                       (cs_00->parent->ssh,psStack_90,psVar45,cs_00);\n                    if (iVar28 == 0) {\n                      if (psStack_b0 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar31 = *puVar44;\n                      *puVar44 = 1;\n                      if (bVar31 == 0) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar28 = 0;\n                      }\n                      (**(code **)(puVar47 + 0x88b70))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                      e_00 = (share_forwarding *)(**(code **)(puVar47 + 0x88390))(1,0xc);\n                      pcVar17 = (char *)(**(code **)(puVar47 + 0x883c0))(psVar43);\n                      t = cs_00->forwardings;\n                      e_00->host = pcVar17;\n                      e_00->port = (int)psVar45;\n                      e_00->active = 0;\n                      psVar25 = (share_forwarding *)add234(t,e_00);\n                      if (e_00 == psVar25) {\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                        psVar26 = (share_globreq *)(**(code **)(puVar47 + 0x88390))(1,0x10);\n                        psVar30 = cs_00->globreq_tail;\n                        psVar26->next = (share_globreq *)0x0;\n                        if (psVar30 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar26;\n                        }\n                        else {\n                          psVar30->next = psVar26;\n                        }\n                        psVar26->fwd = e_00;\n                        psVar26->type = 0;\n                        psVar26->want_reply = (int)psStack_b0;\n                      }\n                      else {\n                        (**(code **)(puVar47 + 0x88394))(e_00);\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(puVar47 + 0x88394))(psVar43);\n                    cs_00->recvlen = 0;\n                    unaff_s6 = psVar43;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                pcVar17 = (char *)(*pcVar48)(iVar28 + 0x455c);\n                psVar45 = psVar39;\n                goto LAB_00089674;\n              }\n              if (bVar31 != 1) {\nLAB_0008965c:\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x474c,bVar31);\n                goto LAB_00089674;\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_000893ac;\n            }\nLAB_00089714:\n            puVar22 = (undefined1 *)((int)&unaff_s6[-1].forwardings + 3);\n            if ((bVar31 == 0x62) &&\n               (psVar45 = *(ssh_sharing_connstate **)(puVar47 + 0x88acc), 3 < (int)puVar22)) {\n              psVar45 = (ssh_sharing_connstate *)(psVar45[1].recvbuf + 0x394c);\n              iVar28 = getstring_inner(cs_00->recvbuf + 9,(int)puVar22,(char **)&psStack_90,\n                                       (int *)0x0);\n              psVar39 = psStack_90;\n              if ((iVar28 != 0) && (psStack_90 != (ssh_sharing_connstate *)0x0)) {\n                psStack_b0 = psStack_90;\n                iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x363c);\n                if ((iVar28 == 0) &&\n                   (iVar28 = (**(code **)(puVar47 + 0x888c4))(cs_00->parent->ssh), iVar28 == 0)) {\n                  ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  ppsStack_88 = ppsVar19;\n                  puVar27 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                  if (puVar27 == (undefined4 *)0x0) {\n                    pcVar48 = *(code **)(puVar47 + 0x8844c);\n                    iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    pcVar17 = (char *)(*pcVar48)(iVar28,ppsVar19);\n                    share_disconnect(cs_00,pcVar17);\n                    (**(code **)(puVar47 + 0x88394))(pcVar17);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_68 = (plug_function_table *)*puVar27;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar28 = *(int *)(puVar47 + 0x8839c);\n                iVar29 = (**(code **)(puVar47 + 0x8953c))(psVar39,iVar28 + -0x36a0);\n                if (iVar29 != 0) {\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  psStack_b0 = psVar39;\n                  goto LAB_00089cc8;\n                }\n                ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                (**(code **)(puVar47 + 0x88394))(psVar39);\n                ppsStack_88 = ppsVar19;\n                psStack_b0 = (ssh_sharing_connstate *)\n                             find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                if (psStack_b0 == (ssh_sharing_connstate *)0x0) {\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)puVar23 < 0x11) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                uVar5 = cs_00->recvbuf[0x14];\n                puVar22 = (undefined1 *)((int)&unaff_s6[-1].channels_by_server + 2);\n                uVar6 = cs_00->recvbuf[0x15];\n                if ((int)puVar22 < 4) {\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(0);\n                  (**(code **)(puVar47 + 0x88394))(0);\nLAB_0008a36c:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar29 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)&psStack_90,\n                                           (int *)0x0);\n                  psVar39 = psStack_90;\n                  if (iVar29 == 0) {\n                    psVar39 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(psVar39);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  iVar20 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_0008a36c;\n                }\n                puVar44 = (uchar *)((int)&psVar39->crLine + 1);\n                iVar20 = (int)puVar23 - (int)puVar44;\n                unaff_s6 = (ssh_sharing_connstate *)0x0;\n                if (iVar20 < 4) {\nLAB_00089ec4:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar21 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)&psStack_90,\n                                           (int *)0x0);\n                  unaff_s6 = psStack_90;\n                  if (iVar21 == 0) {\n                    unaff_s6 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar20 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_00089ec4;\n                }\n                if ((int)puVar23 <= (int)(puVar44 + (int)psVar39 + 3)) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar47 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                puVar38 = puVar38 + (int)(puVar44 + (int)psVar39);\n                if (-1 < iVar29) {\n                  pcVar48 = *(code **)(puVar47 + 0x88b94);\n                  uVar7 = *puVar38;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar38[1];\n                  uVar8 = puVar38[3];\n                  uVar9 = puVar38[2];\n                  psStack_b0->got_verstring = iVar29;\n                  iVar20 = (*pcVar48)(unaff_s6,psStack_b0->recvbuf);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psStack_b0->curr_packetlen = iVar20;\n                  (*pcVar48)(unaff_s6);\n                  iVar29 = (**(code **)(puVar47 + 0x88b98))\n                                     (cs_00->parent->ssh,iVar29,cs_00,psStack_b0);\n                  psStack_b0->sent_verstring = iVar29;\n                  *(uint *)(psStack_b0->recvbuf + 4) = (uint)bVar13;\n                  psVar45 = (ssh_sharing_connstate *)\n                            (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0xc));\n                  unaff_s6 = (ssh_sharing_connstate *)\n                             (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0x10));\n                  puVar38 = (uchar *)((int)&psVar45->curr_packetlen + 1) + (int)unaff_s6;\n                  puVar22 = (undefined1 *)(**(code **)(puVar47 + 0x88390))(puVar38,1);\n                  puVar22[4] = 0;\n                  puVar22[5] = 0;\n                  uVar32 = *(uint *)(iVar28 + -0x36a0);\n                  uVar10 = *(undefined1 *)(iVar28 + -0x369c);\n                  uVar11 = *(undefined1 *)(iVar28 + -0x369b);\n                  uVar12 = *(undefined1 *)(iVar28 + -0x369a);\n                  puVar22[3] = (char)ppsVar19;\n                  *puVar22 = (char)((uint)ppsVar19 >> 0x18);\n                  puVar22[1] = (char)((uint)ppsVar19 >> 0x10);\n                  puVar22[2] = (char)((uint)ppsVar19 >> 8);\n                  puVar22[7] = 7;\n                  puVar22[6] = 0;\n                  puVar23 = puVar22 + 8;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & -1 << (4 - uVar36) * 8 | uVar32 >> uVar36 * 8;\n                  puVar23 = puVar22 + 0xb;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & 0xffffffffU >> (uVar36 + 1) * 8 |\n                       uVar32 << (3 - uVar36) * 8;\n                  puVar22[0xc] = uVar10;\n                  puVar22[0xd] = uVar11;\n                  puVar22[0xe] = uVar12;\n                  puVar22[0x10] = bVar13;\n                  puVar22[0x11] = (char)((uint)psVar45 >> 0x18);\n                  puVar22[0x12] = (char)((uint)psVar45 >> 0x10);\n                  puVar22[0x13] = (char)((uint)psVar45 >> 8);\n                  puVar22[0x14] = (char)psVar45;\n                  pcVar48 = *(code **)(puVar47 + 0x89610);\n                  puVar22[0xf] = uVar5 != '\0';\n                  (*pcVar48)(puVar22 + 0x15,*(undefined4 *)(psStack_b0->sent_verstring + 0xc),\n                             psVar45);\n                  puVar23 = puVar22 + (int)psVar45;\n                  puVar23[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar23[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar23[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar23[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar47 + 0x89610))\n                            (puVar22 + (int)((int)&psVar45->got_verstring + 1),\n                             *(undefined4 *)(psStack_b0->sent_verstring + 0x10),unaff_s6);\n                  puVar23 = puVar22 + (int)(unaff_s6->recvbuf + (int)(psVar45->recvbuf + -0x40));\n                  puVar23[0x1c] = uVar8;\n                  puVar23[0x19] = uVar7;\n                  puVar23[0x1a] = uVar6;\n                  puVar23[0x1b] = uVar9;\n                  (**(code **)(puVar47 + 0x88b70))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar22,puVar38,0);\n                  (**(code **)(puVar47 + 0x88394))(puVar22);\n                  cs_00->recvlen = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar47 + 0x88b70))(cs_00->parent->ssh,cs_00->id,bVar31,puVar38,puVar23,0);\n            if ((bVar31 == 0x61) && (3 < (int)puVar23)) {\n              ppsStack_88 = *(Socket *)(cs_00->recvbuf + 5);\n              psVar24 = (share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n              if (psVar24 != (share_channel *)0x0) {\n                if (psVar24->state == 2) {\n                  (**(code **)(puVar47 + 0x88b74))(cs_00->parent->ssh,psVar24->upstream_id);\n                  share_remove_channel(cs_00,psVar24);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar24->state = 1;\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar31 == 0x5c) {\n              if (3 < (int)puVar23) {\n                psVar45 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                unaff_s6 = (ssh_sharing_connstate *)&psStack_90;\n                psStack_90 = psVar45;\n                e = find234(cs_00->halfchannels,unaff_s6,(cmpfn234)0x0);\n                if (e == (void *)0x0) {\n                  psStack_8c = psVar45;\n                  xc_00 = (share_xchannel *)\n                          find234(cs_00->xchannels_by_server,unaff_s6,(cmpfn234)0x0);\n                  if (xc_00 == (share_xchannel *)0x0) {\n                    pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                                (*(int *)(puVar47 + 0x8839c) + 0x4680,psVar45);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(cs_00,xc_00);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar18 = cs_00->parent;\n                  uVar35 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar47 + 0x88b70))(psVar18->ssh,cs_00->id,uVar35,puVar38,puVar23,0);\n                  del234(cs_00->halfchannels,e);\n                  (**(code **)(puVar47 + 0x88394))(e);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }\n              pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar31) {\n              if (100 < bVar31) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)puVar23 < 0x10) {\n              pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar36 = (uint)(cs_00->recvbuf + 5) & 3;\n            upstream_id = *(uint *)(cs_00->recvbuf + 9);\n            uVar32 = (uint)(cs_00->recvbuf + 8) & 3;\n            psVar45 = (ssh_sharing_connstate *)\n                      ((*(int *)(cs_00->recvbuf + 5 + -uVar36) << uVar36 * 8 |\n                       (uint)psVar45 & 0xffffffffU >> (4 - uVar36) * 8) & -1 << (uVar32 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar32) >> (3 - uVar32) * 8);\n            psStack_90 = psVar45;\n            e = find234(cs_00->halfchannels,&psStack_90,(cmpfn234)0x0);\n            if (e == (void *)0x0) {\n              psStack_8c = psVar45;\n              unaff_s6 = (ssh_sharing_connstate *)\n                         find234(cs_00->xchannels_by_server,&psStack_90,(cmpfn234)0x0);\n              if (unaff_s6 == (ssh_sharing_connstate *)0x0) goto LAB_0008a14c;\n              server_id = unaff_s6->fn;\n            }\n            else {\n              unaff_s6 = (ssh_sharing_connstate *)0x0;\n              server_id = (plug_function_table *)\n                          (**(code **)(puVar47 + 0x88b8c))(cs_00->parent->ssh,cs_00);\n            }\n            cs_00->recvbuf[0xc] = (uchar)server_id;\n            cs_00->recvbuf[9] = (uchar)((uint)server_id >> 0x18);\n            cs_00->recvbuf[10] = (uchar)((uint)server_id >> 0x10);\n            cs_00->recvbuf[0xb] = (uchar)((uint)server_id >> 8);\n            uVar36 = (uint)(cs_00->recvbuf + 0x11) & 3;\n            uVar32 = (uint)(cs_00->recvbuf + 0x14) & 3;\n            psVar24 = share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)server_id\n                                        ,(int)psVar45,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar36) << uVar36 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar36) * 8) &\n                                         -1 << (uVar32 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar32) >>\n                                        (3 - uVar32) * 8));\n            if (e != (void *)0x0) {\n              psVar18 = cs_00->parent;\n              uVar35 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (ssh_sharing_connstate *)0x0) {\n              uVar36 = *(uint *)(cs_00->recvbuf + 0xd);\n              if (uVar36 < 0x100) {\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x4614,uVar36);\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(cs_00,(share_xchannel *)unaff_s6,psVar24,uVar36);\n              share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,unaff_s6);\n              cs_00->recvlen = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          cs_00->recvlen = 0;\n          goto LAB_000893ac;\n        }\n        iVar28 = *(int *)(puVar47 + 0x8839c);\n        if (3 < (int)puVar23) {\n          iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n          if (((iVar28 == 0) || ((int)psStack_90 < 0)) ||\n             (psVar45 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90),\n             (int)&unaff_s6[-1].xchannels_by_server <= (int)psStack_90)) {\n            iVar28 = *(int *)(puVar47 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pppVar14 = &psStack_90->fn;\n          pppVar15 = &psStack_90->fn;\n          psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)((int)&psStack_90->fn + 2));\n          unaff_s6 = (ssh_sharing_connstate *)\n                     ((uint)*(byte *)&psVar45->fn << 0x18 |\n                      (uint)puVar38[(int)((int)pppVar14 + 1)] << 0x10 |\n                      (uint)puVar38[(int)((int)pppVar15 + 3)] | (uint)*(byte *)&psStack_b0->fn << 8)\n          ;\n          uVar36 = (**(code **)(puVar47 + 0x88b8c))(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)unaff_s6,uVar36,0,3,\n                            (ssh_sharing_connstate *)\n                            ((uint)*(byte *)&psVar45->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 3) |\n                            (uint)*(uchar *)((int)&psVar45->sock + 2) << 8));\n          *(char *)&psVar45->fn = (char)(uVar36 >> 0x18);\n          puVar38[(int)((int)pppVar14 + 1)] = (byte)(uVar36 >> 0x10);\n          *(char *)&psStack_b0->fn = (char)(uVar36 >> 8);\n          puVar38[(int)((int)pppVar15 + 3)] = (byte)uVar36;\n          (**(code **)(puVar47 + 0x88b70))(cs_00->parent->ssh,cs_00->id,0x5a,puVar38,puVar23,0);\n          cs_00->recvlen = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))(iVar28 + 0x458c);\nLAB_00089674:\n        while (pcVar17 == (char *)0x0) {\n          (**(code **)(puVar47 + 0x88ff4))\n                    (*(int *)(puVar47 + 0x8839c) + 0x4768,*(int *)(puVar47 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar47 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                      (*(int *)(puVar47 + 0x8839c) + 0x45d8,psVar45);\n        }\n        share_disconnect(cs_00,pcVar17);\n        (**(code **)(puVar47 + 0x88394))(pcVar17);\n        cs_00->recvlen = 0;\n        goto LAB_000893ac;\n      }\n      pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                  (*(int *)(puVar47 + 0x8839c) + 0x4544,iVar28);\nLAB_000890b4:\n      share_disconnect(cs_00,pcVar17);\n      (**(code **)(puVar47 + 0x88394))(pcVar17);\n      unaff_s5 = pbVar33;\nLAB_000890e0:\n      cs_00->crLine = 0;\n    } while( true );\n  }" if (parenthesized_expression "(pbVar16 == (byte *)0x0)" ( (binary_expression "pbVar16 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00089094:\n    cs_00->crLine = 0x709;\nLAB_000890e4:\n    do {\n      if (iStack_64 == *piVar49) {\n        return;\n      }\n      (**(code **)(puVar47 + 0x8936c))();\n      pbVar33 = unaff_s5;\nLAB_00089df8:\n      ppStack_68 = psStack_b0->fn;\n      send_packet_to_downstream\n                ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,(share_channel *)0x0,\n                 (share_channel *)0xc);\n      (**(code **)(puVar47 + 0x88394))(unaff_s6);\n      cs_00->recvlen = 0;\nLAB_000893ac:\n      pbVar16 = pbVar33 + (int)pbVar40;\n      unaff_s5 = pbVar33;\n      do {\n        pbVar40 = pbVar16 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar16) {\n          cs_00->crLine = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar28 = cs_00->recvlen;\n        pbVar33 = unaff_s5 + 1;\n        iVar29 = iVar28 + 1;\n        bVar31 = *unaff_s5;\n        in_t3 = (uint)bVar31;\n        cs_00->recvlen = iVar29;\n        cs_00->recvbuf[iVar28] = bVar31;\n        unaff_s5 = pbVar33;\n      } while (iVar29 < 4);\n      iVar28 = (**(code **)(puVar47 + 0x884fc))(*(int *)cs_00->recvbuf + 4);\n      cs_00->curr_packetlen = iVar28;\n      if ((undefined1 *)(iVar28 + -5) < &DAT_0000400c) {\n        unaff_s6 = (ssh_sharing_connstate *)cs_00->recvlen;\n        while (unaff_s5 = pbVar33, (int)unaff_s6 < iVar28) {\nLAB_00088fd4:\n          if (pbVar40 == (byte *)0x0) {\n            cs_00->crLine = 0x73b;\n            pbVar40 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar28 = cs_00->recvlen;\n          pbVar40 = pbVar40 + -1;\n          bVar31 = *pbVar33;\n          pbVar33 = pbVar33 + 1;\n          unaff_s6 = (ssh_sharing_connstate *)(iVar28 + 1);\n          cs_00->recvlen = (int)unaff_s6;\n          cs_00->recvbuf[iVar28] = bVar31;\n          iVar28 = cs_00->curr_packetlen;\n        }\n        bVar31 = cs_00->recvbuf[4];\n        puVar38 = cs_00->recvbuf + 5;\n        puVar23 = (undefined1 *)((int)&unaff_s6[-1].globreq_head + 3);\n        if (bVar31 != 0x5a) {\n          if (bVar31 < 0x5b) {\n            if (bVar31 != 2) {\n              if (2 < bVar31) {\n                if (bVar31 == 4) goto LAB_00089714;\n                if (bVar31 != 0x50) goto LAB_0008965c;\n                iVar28 = *(int *)(puVar47 + 0x8839c);\n                psVar39 = psVar45;\n                if ((int)puVar23 < 4) goto LAB_000896fc;\n                psVar39 = (ssh_sharing_connstate *)(*(int *)(puVar47 + 0x88acc) + 0x79c0);\n                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)&psStack_90,(int *)0x0);\n                psVar43 = psStack_90;\n                if ((iVar28 == 0) || (psStack_90 == (ssh_sharing_connstate *)0x0))\n                goto LAB_000896f8;\n                iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x30e8);\n                if (iVar28 != 0) {\n                  iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                     (psVar43,*(int *)(puVar47 + 0x8839c) + -0x317c);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psVar45 = psVar39;\n                  if (iVar28 == 0) {\n                    (*pcVar48)(psVar43);\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar43 = psStack_90;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                       (int)psStack_90 < (int)puVar23)) {\n                      psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90);\n                      iVar29 = (int)puVar23 - (int)puVar37;\n                      cVar1 = *(char *)&psStack_b0->fn;\n                      if ((iVar29 < 4) ||\n                         (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                                   (int *)&psStack_90), iVar28 == 0)) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if ((int)psVar43 < (int)&unaff_s6[-1].globreq_head) {\n                          if (iVar29 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar35 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        psVar43 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if (-1 < (int)psVar43) {\n                          pcVar48 = *(code **)(puVar47 + 0x8844c);\n                          if ((int)&unaff_s6[-1].globreq_head <= (int)psVar43) goto LAB_00089700;\nLAB_000892a4:\n                          iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,\n                                                   (char **)&psStack_90,(int *)0x0);\n                          psVar45 = psStack_90;\n                          if ((iVar28 == 0) ||\n                             (psVar39 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_00089eec;\n                          puVar44 = puVar38 + (int)psVar43;\n                          bVar31 = *puVar44;\n                          bVar2 = puVar44[1];\n                          bVar3 = puVar44[3];\n                          bVar4 = puVar44[2];\n                          psStack_90 = (ssh_sharing_connstate *)\n                                       (**(code **)(puVar47 + 0x883c0))(psStack_90);\n                          psStack_8c = (ssh_sharing_connstate *)\n                                       ((uint)bVar31 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                       (uint)bVar4 << 8);\n                          unaff_s6 = (ssh_sharing_connstate *)\n                                     find234(cs_00->forwardings,&psStack_90,(cmpfn234)0x0);\n                          (**(code **)(puVar47 + 0x88394))(psStack_90);\n                          if (unaff_s6 == (ssh_sharing_connstate *)0x0) {\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                            if (cVar1 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            cVar1 = *(char *)&psStack_b0->fn;\n                            *(undefined1 *)&psStack_b0->fn = 1;\n                            if (cVar1 == '\0') {\n                              iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar28 = 0;\n                            }\n                            (**(code **)(puVar47 + 0x88b70))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                            (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\nLAB_00089394:\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                          }\n                          (*pcVar48)(psVar45);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar48)();\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar39 = psVar45;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       ((int)psStack_90 < (int)puVar23)) {\n                      if (puVar38[(int)psStack_90] == '\0') goto LAB_000893a4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar47 + 0x88394))(psVar43);\n                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                psVar45 = psStack_90;\n                if (((iVar28 == 0) || ((int)psStack_90 < 0)) ||\n                   (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                   (int)puVar23 <= (int)psStack_90)) goto LAB_000896f8;\n                puVar44 = puVar38 + (int)psStack_90;\n                iVar29 = (int)puVar23 - (int)puVar37;\n                psStack_b0 = (ssh_sharing_connstate *)(uint)*puVar44;\n                if ((iVar29 < 4) ||\n                   (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                             (int *)&psStack_90), iVar28 == 0)) {\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\n                    if (iVar29 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar35 = 0x55e;\nLAB_00089ef0:\n                    pcVar48 = *(code **)(puVar47 + 0x88ff4);\n                    (*pcVar48)(*(int *)(puVar47 + 0x8839c) + 0x457c,\n                               *(int *)(puVar47 + 0x8839c) + 0x43dc,uVar35,\n                               *(int *)(puVar47 + 0x8839c) + 0x4870);\n                    psVar45 = psVar39;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                }\n                else {\n                  psVar45 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < 0) goto LAB_000896fc;\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\nLAB_0008a05c:\n                    iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)&psStack_90,\n                                             (int *)0x0);\n                    psVar43 = psStack_90;\n                    if ((iVar28 == 0) ||\n                       (unaff_s6 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_0008a304;\n                    puVar46 = puVar38 + (int)psVar45;\n                    psVar45 = (ssh_sharing_connstate *)\n                              ((uint)*puVar46 << 0x18 | (uint)puVar46[3] | (uint)puVar46[1] << 0x10\n                              | (uint)puVar46[2] << 8);\n                    iVar28 = (**(code **)(puVar47 + 0x88ba0))\n                                       (cs_00->parent->ssh,psStack_90,psVar45,cs_00);\n                    if (iVar28 == 0) {\n                      if (psStack_b0 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar31 = *puVar44;\n                      *puVar44 = 1;\n                      if (bVar31 == 0) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar28 = 0;\n                      }\n                      (**(code **)(puVar47 + 0x88b70))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                      e_00 = (share_forwarding *)(**(code **)(puVar47 + 0x88390))(1,0xc);\n                      pcVar17 = (char *)(**(code **)(puVar47 + 0x883c0))(psVar43);\n                      t = cs_00->forwardings;\n                      e_00->host = pcVar17;\n                      e_00->port = (int)psVar45;\n                      e_00->active = 0;\n                      psVar25 = (share_forwarding *)add234(t,e_00);\n                      if (e_00 == psVar25) {\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                        psVar26 = (share_globreq *)(**(code **)(puVar47 + 0x88390))(1,0x10);\n                        psVar30 = cs_00->globreq_tail;\n                        psVar26->next = (share_globreq *)0x0;\n                        if (psVar30 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar26;\n                        }\n                        else {\n                          psVar30->next = psVar26;\n                        }\n                        psVar26->fwd = e_00;\n                        psVar26->type = 0;\n                        psVar26->want_reply = (int)psStack_b0;\n                      }\n                      else {\n                        (**(code **)(puVar47 + 0x88394))(e_00);\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(puVar47 + 0x88394))(psVar43);\n                    cs_00->recvlen = 0;\n                    unaff_s6 = psVar43;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                pcVar17 = (char *)(*pcVar48)(iVar28 + 0x455c);\n                psVar45 = psVar39;\n                goto LAB_00089674;\n              }\n              if (bVar31 != 1) {\nLAB_0008965c:\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x474c,bVar31);\n                goto LAB_00089674;\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_000893ac;\n            }\nLAB_00089714:\n            puVar22 = (undefined1 *)((int)&unaff_s6[-1].forwardings + 3);\n            if ((bVar31 == 0x62) &&\n               (psVar45 = *(ssh_sharing_connstate **)(puVar47 + 0x88acc), 3 < (int)puVar22)) {\n              psVar45 = (ssh_sharing_connstate *)(psVar45[1].recvbuf + 0x394c);\n              iVar28 = getstring_inner(cs_00->recvbuf + 9,(int)puVar22,(char **)&psStack_90,\n                                       (int *)0x0);\n              psVar39 = psStack_90;\n              if ((iVar28 != 0) && (psStack_90 != (ssh_sharing_connstate *)0x0)) {\n                psStack_b0 = psStack_90;\n                iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x363c);\n                if ((iVar28 == 0) &&\n                   (iVar28 = (**(code **)(puVar47 + 0x888c4))(cs_00->parent->ssh), iVar28 == 0)) {\n                  ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  ppsStack_88 = ppsVar19;\n                  puVar27 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                  if (puVar27 == (undefined4 *)0x0) {\n                    pcVar48 = *(code **)(puVar47 + 0x8844c);\n                    iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    pcVar17 = (char *)(*pcVar48)(iVar28,ppsVar19);\n                    share_disconnect(cs_00,pcVar17);\n                    (**(code **)(puVar47 + 0x88394))(pcVar17);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_68 = (plug_function_table *)*puVar27;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar28 = *(int *)(puVar47 + 0x8839c);\n                iVar29 = (**(code **)(puVar47 + 0x8953c))(psVar39,iVar28 + -0x36a0);\n                if (iVar29 != 0) {\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  psStack_b0 = psVar39;\n                  goto LAB_00089cc8;\n                }\n                ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                (**(code **)(puVar47 + 0x88394))(psVar39);\n                ppsStack_88 = ppsVar19;\n                psStack_b0 = (ssh_sharing_connstate *)\n                             find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                if (psStack_b0 == (ssh_sharing_connstate *)0x0) {\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)puVar23 < 0x11) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                uVar5 = cs_00->recvbuf[0x14];\n                puVar22 = (undefined1 *)((int)&unaff_s6[-1].channels_by_server + 2);\n                uVar6 = cs_00->recvbuf[0x15];\n                if ((int)puVar22 < 4) {\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(0);\n                  (**(code **)(puVar47 + 0x88394))(0);\nLAB_0008a36c:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar29 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)&psStack_90,\n                                           (int *)0x0);\n                  psVar39 = psStack_90;\n                  if (iVar29 == 0) {\n                    psVar39 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(psVar39);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  iVar20 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_0008a36c;\n                }\n                puVar44 = (uchar *)((int)&psVar39->crLine + 1);\n                iVar20 = (int)puVar23 - (int)puVar44;\n                unaff_s6 = (ssh_sharing_connstate *)0x0;\n                if (iVar20 < 4) {\nLAB_00089ec4:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar21 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)&psStack_90,\n                                           (int *)0x0);\n                  unaff_s6 = psStack_90;\n                  if (iVar21 == 0) {\n                    unaff_s6 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar20 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_00089ec4;\n                }\n                if ((int)puVar23 <= (int)(puVar44 + (int)psVar39 + 3)) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar47 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                puVar38 = puVar38 + (int)(puVar44 + (int)psVar39);\n                if (-1 < iVar29) {\n                  pcVar48 = *(code **)(puVar47 + 0x88b94);\n                  uVar7 = *puVar38;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar38[1];\n                  uVar8 = puVar38[3];\n                  uVar9 = puVar38[2];\n                  psStack_b0->got_verstring = iVar29;\n                  iVar20 = (*pcVar48)(unaff_s6,psStack_b0->recvbuf);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psStack_b0->curr_packetlen = iVar20;\n                  (*pcVar48)(unaff_s6);\n                  iVar29 = (**(code **)(puVar47 + 0x88b98))\n                                     (cs_00->parent->ssh,iVar29,cs_00,psStack_b0);\n                  psStack_b0->sent_verstring = iVar29;\n                  *(uint *)(psStack_b0->recvbuf + 4) = (uint)bVar13;\n                  psVar45 = (ssh_sharing_connstate *)\n                            (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0xc));\n                  unaff_s6 = (ssh_sharing_connstate *)\n                             (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0x10));\n                  puVar38 = (uchar *)((int)&psVar45->curr_packetlen + 1) + (int)unaff_s6;\n                  puVar22 = (undefined1 *)(**(code **)(puVar47 + 0x88390))(puVar38,1);\n                  puVar22[4] = 0;\n                  puVar22[5] = 0;\n                  uVar32 = *(uint *)(iVar28 + -0x36a0);\n                  uVar10 = *(undefined1 *)(iVar28 + -0x369c);\n                  uVar11 = *(undefined1 *)(iVar28 + -0x369b);\n                  uVar12 = *(undefined1 *)(iVar28 + -0x369a);\n                  puVar22[3] = (char)ppsVar19;\n                  *puVar22 = (char)((uint)ppsVar19 >> 0x18);\n                  puVar22[1] = (char)((uint)ppsVar19 >> 0x10);\n                  puVar22[2] = (char)((uint)ppsVar19 >> 8);\n                  puVar22[7] = 7;\n                  puVar22[6] = 0;\n                  puVar23 = puVar22 + 8;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & -1 << (4 - uVar36) * 8 | uVar32 >> uVar36 * 8;\n                  puVar23 = puVar22 + 0xb;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & 0xffffffffU >> (uVar36 + 1) * 8 |\n                       uVar32 << (3 - uVar36) * 8;\n                  puVar22[0xc] = uVar10;\n                  puVar22[0xd] = uVar11;\n                  puVar22[0xe] = uVar12;\n                  puVar22[0x10] = bVar13;\n                  puVar22[0x11] = (char)((uint)psVar45 >> 0x18);\n                  puVar22[0x12] = (char)((uint)psVar45 >> 0x10);\n                  puVar22[0x13] = (char)((uint)psVar45 >> 8);\n                  puVar22[0x14] = (char)psVar45;\n                  pcVar48 = *(code **)(puVar47 + 0x89610);\n                  puVar22[0xf] = uVar5 != '\0';\n                  (*pcVar48)(puVar22 + 0x15,*(undefined4 *)(psStack_b0->sent_verstring + 0xc),\n                             psVar45);\n                  puVar23 = puVar22 + (int)psVar45;\n                  puVar23[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar23[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar23[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar23[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar47 + 0x89610))\n                            (puVar22 + (int)((int)&psVar45->got_verstring + 1),\n                             *(undefined4 *)(psStack_b0->sent_verstring + 0x10),unaff_s6);\n                  puVar23 = puVar22 + (int)(unaff_s6->recvbuf + (int)(psVar45->recvbuf + -0x40));\n                  puVar23[0x1c] = uVar8;\n                  puVar23[0x19] = uVar7;\n                  puVar23[0x1a] = uVar6;\n                  puVar23[0x1b] = uVar9;\n                  (**(code **)(puVar47 + 0x88b70))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar22,puVar38,0);\n                  (**(code **)(puVar47 + 0x88394))(puVar22);\n                  cs_00->recvlen = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar47 + 0x88b70))(cs_00->parent->ssh,cs_00->id,bVar31,puVar38,puVar23,0);\n            if ((bVar31 == 0x61) && (3 < (int)puVar23)) {\n              ppsStack_88 = *(Socket *)(cs_00->recvbuf + 5);\n              psVar24 = (share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n              if (psVar24 != (share_channel *)0x0) {\n                if (psVar24->state == 2) {\n                  (**(code **)(puVar47 + 0x88b74))(cs_00->parent->ssh,psVar24->upstream_id);\n                  share_remove_channel(cs_00,psVar24);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar24->state = 1;\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar31 == 0x5c) {\n              if (3 < (int)puVar23) {\n                psVar45 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                unaff_s6 = (ssh_sharing_connstate *)&psStack_90;\n                psStack_90 = psVar45;\n                e = find234(cs_00->halfchannels,unaff_s6,(cmpfn234)0x0);\n                if (e == (void *)0x0) {\n                  psStack_8c = psVar45;\n                  xc_00 = (share_xchannel *)\n                          find234(cs_00->xchannels_by_server,unaff_s6,(cmpfn234)0x0);\n                  if (xc_00 == (share_xchannel *)0x0) {\n                    pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                                (*(int *)(puVar47 + 0x8839c) + 0x4680,psVar45);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(cs_00,xc_00);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar18 = cs_00->parent;\n                  uVar35 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar47 + 0x88b70))(psVar18->ssh,cs_00->id,uVar35,puVar38,puVar23,0);\n                  del234(cs_00->halfchannels,e);\n                  (**(code **)(puVar47 + 0x88394))(e);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }\n              pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar31) {\n              if (100 < bVar31) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)puVar23 < 0x10) {\n              pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar36 = (uint)(cs_00->recvbuf + 5) & 3;\n            upstream_id = *(uint *)(cs_00->recvbuf + 9);\n            uVar32 = (uint)(cs_00->recvbuf + 8) & 3;\n            psVar45 = (ssh_sharing_connstate *)\n                      ((*(int *)(cs_00->recvbuf + 5 + -uVar36) << uVar36 * 8 |\n                       (uint)psVar45 & 0xffffffffU >> (4 - uVar36) * 8) & -1 << (uVar32 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar32) >> (3 - uVar32) * 8);\n            psStack_90 = psVar45;\n            e = find234(cs_00->halfchannels,&psStack_90,(cmpfn234)0x0);\n            if (e == (void *)0x0) {\n              psStack_8c = psVar45;\n              unaff_s6 = (ssh_sharing_connstate *)\n                         find234(cs_00->xchannels_by_server,&psStack_90,(cmpfn234)0x0);\n              if (unaff_s6 == (ssh_sharing_connstate *)0x0) goto LAB_0008a14c;\n              server_id = unaff_s6->fn;\n            }\n            else {\n              unaff_s6 = (ssh_sharing_connstate *)0x0;\n              server_id = (plug_function_table *)\n                          (**(code **)(puVar47 + 0x88b8c))(cs_00->parent->ssh,cs_00);\n            }\n            cs_00->recvbuf[0xc] = (uchar)server_id;\n            cs_00->recvbuf[9] = (uchar)((uint)server_id >> 0x18);\n            cs_00->recvbuf[10] = (uchar)((uint)server_id >> 0x10);\n            cs_00->recvbuf[0xb] = (uchar)((uint)server_id >> 8);\n            uVar36 = (uint)(cs_00->recvbuf + 0x11) & 3;\n            uVar32 = (uint)(cs_00->recvbuf + 0x14) & 3;\n            psVar24 = share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)server_id\n                                        ,(int)psVar45,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar36) << uVar36 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar36) * 8) &\n                                         -1 << (uVar32 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar32) >>\n                                        (3 - uVar32) * 8));\n            if (e != (void *)0x0) {\n              psVar18 = cs_00->parent;\n              uVar35 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (ssh_sharing_connstate *)0x0) {\n              uVar36 = *(uint *)(cs_00->recvbuf + 0xd);\n              if (uVar36 < 0x100) {\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x4614,uVar36);\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(cs_00,(share_xchannel *)unaff_s6,psVar24,uVar36);\n              share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,unaff_s6);\n              cs_00->recvlen = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          cs_00->recvlen = 0;\n          goto LAB_000893ac;\n        }\n        iVar28 = *(int *)(puVar47 + 0x8839c);\n        if (3 < (int)puVar23) {\n          iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n          if (((iVar28 == 0) || ((int)psStack_90 < 0)) ||\n             (psVar45 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90),\n             (int)&unaff_s6[-1].xchannels_by_server <= (int)psStack_90)) {\n            iVar28 = *(int *)(puVar47 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pppVar14 = &psStack_90->fn;\n          pppVar15 = &psStack_90->fn;\n          psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)((int)&psStack_90->fn + 2));\n          unaff_s6 = (ssh_sharing_connstate *)\n                     ((uint)*(byte *)&psVar45->fn << 0x18 |\n                      (uint)puVar38[(int)((int)pppVar14 + 1)] << 0x10 |\n                      (uint)puVar38[(int)((int)pppVar15 + 3)] | (uint)*(byte *)&psStack_b0->fn << 8)\n          ;\n          uVar36 = (**(code **)(puVar47 + 0x88b8c))(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)unaff_s6,uVar36,0,3,\n                            (ssh_sharing_connstate *)\n                            ((uint)*(byte *)&psVar45->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 3) |\n                            (uint)*(uchar *)((int)&psVar45->sock + 2) << 8));\n          *(char *)&psVar45->fn = (char)(uVar36 >> 0x18);\n          puVar38[(int)((int)pppVar14 + 1)] = (byte)(uVar36 >> 0x10);\n          *(char *)&psStack_b0->fn = (char)(uVar36 >> 8);\n          puVar38[(int)((int)pppVar15 + 3)] = (byte)uVar36;\n          (**(code **)(puVar47 + 0x88b70))(cs_00->parent->ssh,cs_00->id,0x5a,puVar38,puVar23,0);\n          cs_00->recvlen = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))(iVar28 + 0x458c);\nLAB_00089674:\n        while (pcVar17 == (char *)0x0) {\n          (**(code **)(puVar47 + 0x88ff4))\n                    (*(int *)(puVar47 + 0x8839c) + 0x4768,*(int *)(puVar47 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar47 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                      (*(int *)(puVar47 + 0x8839c) + 0x45d8,psVar45);\n        }\n        share_disconnect(cs_00,pcVar17);\n        (**(code **)(puVar47 + 0x88394))(pcVar17);\n        cs_00->recvlen = 0;\n        goto LAB_000893ac;\n      }\n      pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                  (*(int *)(puVar47 + 0x8839c) + 0x4544,iVar28);\nLAB_000890b4:\n      share_disconnect(cs_00,pcVar17);\n      (**(code **)(puVar47 + 0x88394))(pcVar17);\n      unaff_s5 = pbVar33;\nLAB_000890e0:\n      cs_00->crLine = 0;\n    } while( true );\n  }" { (labeled_statement "LAB_00089094:\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_000890e4:\n    do {\n      if (iStack_64 == *piVar49) {\n        return;\n      }\n      (**(code **)(puVar47 + 0x8936c))();\n      pbVar33 = unaff_s5;\nLAB_00089df8:\n      ppStack_68 = psStack_b0->fn;\n      send_packet_to_downstream\n                ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,(share_channel *)0x0,\n                 (share_channel *)0xc);\n      (**(code **)(puVar47 + 0x88394))(unaff_s6);\n      cs_00->recvlen = 0;\nLAB_000893ac:\n      pbVar16 = pbVar33 + (int)pbVar40;\n      unaff_s5 = pbVar33;\n      do {\n        pbVar40 = pbVar16 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar16) {\n          cs_00->crLine = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar28 = cs_00->recvlen;\n        pbVar33 = unaff_s5 + 1;\n        iVar29 = iVar28 + 1;\n        bVar31 = *unaff_s5;\n        in_t3 = (uint)bVar31;\n        cs_00->recvlen = iVar29;\n        cs_00->recvbuf[iVar28] = bVar31;\n        unaff_s5 = pbVar33;\n      } while (iVar29 < 4);\n      iVar28 = (**(code **)(puVar47 + 0x884fc))(*(int *)cs_00->recvbuf + 4);\n      cs_00->curr_packetlen = iVar28;\n      if ((undefined1 *)(iVar28 + -5) < &DAT_0000400c) {\n        unaff_s6 = (ssh_sharing_connstate *)cs_00->recvlen;\n        while (unaff_s5 = pbVar33, (int)unaff_s6 < iVar28) {\nLAB_00088fd4:\n          if (pbVar40 == (byte *)0x0) {\n            cs_00->crLine = 0x73b;\n            pbVar40 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar28 = cs_00->recvlen;\n          pbVar40 = pbVar40 + -1;\n          bVar31 = *pbVar33;\n          pbVar33 = pbVar33 + 1;\n          unaff_s6 = (ssh_sharing_connstate *)(iVar28 + 1);\n          cs_00->recvlen = (int)unaff_s6;\n          cs_00->recvbuf[iVar28] = bVar31;\n          iVar28 = cs_00->curr_packetlen;\n        }\n        bVar31 = cs_00->recvbuf[4];\n        puVar38 = cs_00->recvbuf + 5;\n        puVar23 = (undefined1 *)((int)&unaff_s6[-1].globreq_head + 3);\n        if (bVar31 != 0x5a) {\n          if (bVar31 < 0x5b) {\n            if (bVar31 != 2) {\n              if (2 < bVar31) {\n                if (bVar31 == 4) goto LAB_00089714;\n                if (bVar31 != 0x50) goto LAB_0008965c;\n                iVar28 = *(int *)(puVar47 + 0x8839c);\n                psVar39 = psVar45;\n                if ((int)puVar23 < 4) goto LAB_000896fc;\n                psVar39 = (ssh_sharing_connstate *)(*(int *)(puVar47 + 0x88acc) + 0x79c0);\n                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)&psStack_90,(int *)0x0);\n                psVar43 = psStack_90;\n                if ((iVar28 == 0) || (psStack_90 == (ssh_sharing_connstate *)0x0))\n                goto LAB_000896f8;\n                iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x30e8);\n                if (iVar28 != 0) {\n                  iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                     (psVar43,*(int *)(puVar47 + 0x8839c) + -0x317c);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psVar45 = psVar39;\n                  if (iVar28 == 0) {\n                    (*pcVar48)(psVar43);\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar43 = psStack_90;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                       (int)psStack_90 < (int)puVar23)) {\n                      psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90);\n                      iVar29 = (int)puVar23 - (int)puVar37;\n                      cVar1 = *(char *)&psStack_b0->fn;\n                      if ((iVar29 < 4) ||\n                         (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                                   (int *)&psStack_90), iVar28 == 0)) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if ((int)psVar43 < (int)&unaff_s6[-1].globreq_head) {\n                          if (iVar29 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar35 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        psVar43 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if (-1 < (int)psVar43) {\n                          pcVar48 = *(code **)(puVar47 + 0x8844c);\n                          if ((int)&unaff_s6[-1].globreq_head <= (int)psVar43) goto LAB_00089700;\nLAB_000892a4:\n                          iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,\n                                                   (char **)&psStack_90,(int *)0x0);\n                          psVar45 = psStack_90;\n                          if ((iVar28 == 0) ||\n                             (psVar39 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_00089eec;\n                          puVar44 = puVar38 + (int)psVar43;\n                          bVar31 = *puVar44;\n                          bVar2 = puVar44[1];\n                          bVar3 = puVar44[3];\n                          bVar4 = puVar44[2];\n                          psStack_90 = (ssh_sharing_connstate *)\n                                       (**(code **)(puVar47 + 0x883c0))(psStack_90);\n                          psStack_8c = (ssh_sharing_connstate *)\n                                       ((uint)bVar31 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                       (uint)bVar4 << 8);\n                          unaff_s6 = (ssh_sharing_connstate *)\n                                     find234(cs_00->forwardings,&psStack_90,(cmpfn234)0x0);\n                          (**(code **)(puVar47 + 0x88394))(psStack_90);\n                          if (unaff_s6 == (ssh_sharing_connstate *)0x0) {\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                            if (cVar1 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            cVar1 = *(char *)&psStack_b0->fn;\n                            *(undefined1 *)&psStack_b0->fn = 1;\n                            if (cVar1 == '\0') {\n                              iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar28 = 0;\n                            }\n                            (**(code **)(puVar47 + 0x88b70))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                            (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\nLAB_00089394:\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                          }\n                          (*pcVar48)(psVar45);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar48)();\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar39 = psVar45;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       ((int)psStack_90 < (int)puVar23)) {\n                      if (puVar38[(int)psStack_90] == '\0') goto LAB_000893a4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar47 + 0x88394))(psVar43);\n                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                psVar45 = psStack_90;\n                if (((iVar28 == 0) || ((int)psStack_90 < 0)) ||\n                   (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                   (int)puVar23 <= (int)psStack_90)) goto LAB_000896f8;\n                puVar44 = puVar38 + (int)psStack_90;\n                iVar29 = (int)puVar23 - (int)puVar37;\n                psStack_b0 = (ssh_sharing_connstate *)(uint)*puVar44;\n                if ((iVar29 < 4) ||\n                   (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                             (int *)&psStack_90), iVar28 == 0)) {\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\n                    if (iVar29 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar35 = 0x55e;\nLAB_00089ef0:\n                    pcVar48 = *(code **)(puVar47 + 0x88ff4);\n                    (*pcVar48)(*(int *)(puVar47 + 0x8839c) + 0x457c,\n                               *(int *)(puVar47 + 0x8839c) + 0x43dc,uVar35,\n                               *(int *)(puVar47 + 0x8839c) + 0x4870);\n                    psVar45 = psVar39;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                }\n                else {\n                  psVar45 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < 0) goto LAB_000896fc;\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\nLAB_0008a05c:\n                    iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)&psStack_90,\n                                             (int *)0x0);\n                    psVar43 = psStack_90;\n                    if ((iVar28 == 0) ||\n                       (unaff_s6 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_0008a304;\n                    puVar46 = puVar38 + (int)psVar45;\n                    psVar45 = (ssh_sharing_connstate *)\n                              ((uint)*puVar46 << 0x18 | (uint)puVar46[3] | (uint)puVar46[1] << 0x10\n                              | (uint)puVar46[2] << 8);\n                    iVar28 = (**(code **)(puVar47 + 0x88ba0))\n                                       (cs_00->parent->ssh,psStack_90,psVar45,cs_00);\n                    if (iVar28 == 0) {\n                      if (psStack_b0 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar31 = *puVar44;\n                      *puVar44 = 1;\n                      if (bVar31 == 0) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar28 = 0;\n                      }\n                      (**(code **)(puVar47 + 0x88b70))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                      e_00 = (share_forwarding *)(**(code **)(puVar47 + 0x88390))(1,0xc);\n                      pcVar17 = (char *)(**(code **)(puVar47 + 0x883c0))(psVar43);\n                      t = cs_00->forwardings;\n                      e_00->host = pcVar17;\n                      e_00->port = (int)psVar45;\n                      e_00->active = 0;\n                      psVar25 = (share_forwarding *)add234(t,e_00);\n                      if (e_00 == psVar25) {\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                        psVar26 = (share_globreq *)(**(code **)(puVar47 + 0x88390))(1,0x10);\n                        psVar30 = cs_00->globreq_tail;\n                        psVar26->next = (share_globreq *)0x0;\n                        if (psVar30 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar26;\n                        }\n                        else {\n                          psVar30->next = psVar26;\n                        }\n                        psVar26->fwd = e_00;\n                        psVar26->type = 0;\n                        psVar26->want_reply = (int)psStack_b0;\n                      }\n                      else {\n                        (**(code **)(puVar47 + 0x88394))(e_00);\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(puVar47 + 0x88394))(psVar43);\n                    cs_00->recvlen = 0;\n                    unaff_s6 = psVar43;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                pcVar17 = (char *)(*pcVar48)(iVar28 + 0x455c);\n                psVar45 = psVar39;\n                goto LAB_00089674;\n              }\n              if (bVar31 != 1) {\nLAB_0008965c:\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x474c,bVar31);\n                goto LAB_00089674;\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_000893ac;\n            }\nLAB_00089714:\n            puVar22 = (undefined1 *)((int)&unaff_s6[-1].forwardings + 3);\n            if ((bVar31 == 0x62) &&\n               (psVar45 = *(ssh_sharing_connstate **)(puVar47 + 0x88acc), 3 < (int)puVar22)) {\n              psVar45 = (ssh_sharing_connstate *)(psVar45[1].recvbuf + 0x394c);\n              iVar28 = getstring_inner(cs_00->recvbuf + 9,(int)puVar22,(char **)&psStack_90,\n                                       (int *)0x0);\n              psVar39 = psStack_90;\n              if ((iVar28 != 0) && (psStack_90 != (ssh_sharing_connstate *)0x0)) {\n                psStack_b0 = psStack_90;\n                iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x363c);\n                if ((iVar28 == 0) &&\n                   (iVar28 = (**(code **)(puVar47 + 0x888c4))(cs_00->parent->ssh), iVar28 == 0)) {\n                  ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  ppsStack_88 = ppsVar19;\n                  puVar27 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                  if (puVar27 == (undefined4 *)0x0) {\n                    pcVar48 = *(code **)(puVar47 + 0x8844c);\n                    iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    pcVar17 = (char *)(*pcVar48)(iVar28,ppsVar19);\n                    share_disconnect(cs_00,pcVar17);\n                    (**(code **)(puVar47 + 0x88394))(pcVar17);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_68 = (plug_function_table *)*puVar27;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar28 = *(int *)(puVar47 + 0x8839c);\n                iVar29 = (**(code **)(puVar47 + 0x8953c))(psVar39,iVar28 + -0x36a0);\n                if (iVar29 != 0) {\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  psStack_b0 = psVar39;\n                  goto LAB_00089cc8;\n                }\n                ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                (**(code **)(puVar47 + 0x88394))(psVar39);\n                ppsStack_88 = ppsVar19;\n                psStack_b0 = (ssh_sharing_connstate *)\n                             find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                if (psStack_b0 == (ssh_sharing_connstate *)0x0) {\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)puVar23 < 0x11) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                uVar5 = cs_00->recvbuf[0x14];\n                puVar22 = (undefined1 *)((int)&unaff_s6[-1].channels_by_server + 2);\n                uVar6 = cs_00->recvbuf[0x15];\n                if ((int)puVar22 < 4) {\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(0);\n                  (**(code **)(puVar47 + 0x88394))(0);\nLAB_0008a36c:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar29 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)&psStack_90,\n                                           (int *)0x0);\n                  psVar39 = psStack_90;\n                  if (iVar29 == 0) {\n                    psVar39 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(psVar39);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  iVar20 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_0008a36c;\n                }\n                puVar44 = (uchar *)((int)&psVar39->crLine + 1);\n                iVar20 = (int)puVar23 - (int)puVar44;\n                unaff_s6 = (ssh_sharing_connstate *)0x0;\n                if (iVar20 < 4) {\nLAB_00089ec4:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar21 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)&psStack_90,\n                                           (int *)0x0);\n                  unaff_s6 = psStack_90;\n                  if (iVar21 == 0) {\n                    unaff_s6 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar20 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_00089ec4;\n                }\n                if ((int)puVar23 <= (int)(puVar44 + (int)psVar39 + 3)) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar47 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                puVar38 = puVar38 + (int)(puVar44 + (int)psVar39);\n                if (-1 < iVar29) {\n                  pcVar48 = *(code **)(puVar47 + 0x88b94);\n                  uVar7 = *puVar38;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar38[1];\n                  uVar8 = puVar38[3];\n                  uVar9 = puVar38[2];\n                  psStack_b0->got_verstring = iVar29;\n                  iVar20 = (*pcVar48)(unaff_s6,psStack_b0->recvbuf);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psStack_b0->curr_packetlen = iVar20;\n                  (*pcVar48)(unaff_s6);\n                  iVar29 = (**(code **)(puVar47 + 0x88b98))\n                                     (cs_00->parent->ssh,iVar29,cs_00,psStack_b0);\n                  psStack_b0->sent_verstring = iVar29;\n                  *(uint *)(psStack_b0->recvbuf + 4) = (uint)bVar13;\n                  psVar45 = (ssh_sharing_connstate *)\n                            (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0xc));\n                  unaff_s6 = (ssh_sharing_connstate *)\n                             (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0x10));\n                  puVar38 = (uchar *)((int)&psVar45->curr_packetlen + 1) + (int)unaff_s6;\n                  puVar22 = (undefined1 *)(**(code **)(puVar47 + 0x88390))(puVar38,1);\n                  puVar22[4] = 0;\n                  puVar22[5] = 0;\n                  uVar32 = *(uint *)(iVar28 + -0x36a0);\n                  uVar10 = *(undefined1 *)(iVar28 + -0x369c);\n                  uVar11 = *(undefined1 *)(iVar28 + -0x369b);\n                  uVar12 = *(undefined1 *)(iVar28 + -0x369a);\n                  puVar22[3] = (char)ppsVar19;\n                  *puVar22 = (char)((uint)ppsVar19 >> 0x18);\n                  puVar22[1] = (char)((uint)ppsVar19 >> 0x10);\n                  puVar22[2] = (char)((uint)ppsVar19 >> 8);\n                  puVar22[7] = 7;\n                  puVar22[6] = 0;\n                  puVar23 = puVar22 + 8;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & -1 << (4 - uVar36) * 8 | uVar32 >> uVar36 * 8;\n                  puVar23 = puVar22 + 0xb;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & 0xffffffffU >> (uVar36 + 1) * 8 |\n                       uVar32 << (3 - uVar36) * 8;\n                  puVar22[0xc] = uVar10;\n                  puVar22[0xd] = uVar11;\n                  puVar22[0xe] = uVar12;\n                  puVar22[0x10] = bVar13;\n                  puVar22[0x11] = (char)((uint)psVar45 >> 0x18);\n                  puVar22[0x12] = (char)((uint)psVar45 >> 0x10);\n                  puVar22[0x13] = (char)((uint)psVar45 >> 8);\n                  puVar22[0x14] = (char)psVar45;\n                  pcVar48 = *(code **)(puVar47 + 0x89610);\n                  puVar22[0xf] = uVar5 != '\0';\n                  (*pcVar48)(puVar22 + 0x15,*(undefined4 *)(psStack_b0->sent_verstring + 0xc),\n                             psVar45);\n                  puVar23 = puVar22 + (int)psVar45;\n                  puVar23[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar23[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar23[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar23[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar47 + 0x89610))\n                            (puVar22 + (int)((int)&psVar45->got_verstring + 1),\n                             *(undefined4 *)(psStack_b0->sent_verstring + 0x10),unaff_s6);\n                  puVar23 = puVar22 + (int)(unaff_s6->recvbuf + (int)(psVar45->recvbuf + -0x40));\n                  puVar23[0x1c] = uVar8;\n                  puVar23[0x19] = uVar7;\n                  puVar23[0x1a] = uVar6;\n                  puVar23[0x1b] = uVar9;\n                  (**(code **)(puVar47 + 0x88b70))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar22,puVar38,0);\n                  (**(code **)(puVar47 + 0x88394))(puVar22);\n                  cs_00->recvlen = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar47 + 0x88b70))(cs_00->parent->ssh,cs_00->id,bVar31,puVar38,puVar23,0);\n            if ((bVar31 == 0x61) && (3 < (int)puVar23)) {\n              ppsStack_88 = *(Socket *)(cs_00->recvbuf + 5);\n              psVar24 = (share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n              if (psVar24 != (share_channel *)0x0) {\n                if (psVar24->state == 2) {\n                  (**(code **)(puVar47 + 0x88b74))(cs_00->parent->ssh,psVar24->upstream_id);\n                  share_remove_channel(cs_00,psVar24);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar24->state = 1;\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar31 == 0x5c) {\n              if (3 < (int)puVar23) {\n                psVar45 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                unaff_s6 = (ssh_sharing_connstate *)&psStack_90;\n                psStack_90 = psVar45;\n                e = find234(cs_00->halfchannels,unaff_s6,(cmpfn234)0x0);\n                if (e == (void *)0x0) {\n                  psStack_8c = psVar45;\n                  xc_00 = (share_xchannel *)\n                          find234(cs_00->xchannels_by_server,unaff_s6,(cmpfn234)0x0);\n                  if (xc_00 == (share_xchannel *)0x0) {\n                    pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                                (*(int *)(puVar47 + 0x8839c) + 0x4680,psVar45);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(cs_00,xc_00);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar18 = cs_00->parent;\n                  uVar35 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar47 + 0x88b70))(psVar18->ssh,cs_00->id,uVar35,puVar38,puVar23,0);\n                  del234(cs_00->halfchannels,e);\n                  (**(code **)(puVar47 + 0x88394))(e);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }\n              pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar31) {\n              if (100 < bVar31) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)puVar23 < 0x10) {\n              pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar36 = (uint)(cs_00->recvbuf + 5) & 3;\n            upstream_id = *(uint *)(cs_00->recvbuf + 9);\n            uVar32 = (uint)(cs_00->recvbuf + 8) & 3;\n            psVar45 = (ssh_sharing_connstate *)\n                      ((*(int *)(cs_00->recvbuf + 5 + -uVar36) << uVar36 * 8 |\n                       (uint)psVar45 & 0xffffffffU >> (4 - uVar36) * 8) & -1 << (uVar32 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar32) >> (3 - uVar32) * 8);\n            psStack_90 = psVar45;\n            e = find234(cs_00->halfchannels,&psStack_90,(cmpfn234)0x0);\n            if (e == (void *)0x0) {\n              psStack_8c = psVar45;\n              unaff_s6 = (ssh_sharing_connstate *)\n                         find234(cs_00->xchannels_by_server,&psStack_90,(cmpfn234)0x0);\n              if (unaff_s6 == (ssh_sharing_connstate *)0x0) goto LAB_0008a14c;\n              server_id = unaff_s6->fn;\n            }\n            else {\n              unaff_s6 = (ssh_sharing_connstate *)0x0;\n              server_id = (plug_function_table *)\n                          (**(code **)(puVar47 + 0x88b8c))(cs_00->parent->ssh,cs_00);\n            }\n            cs_00->recvbuf[0xc] = (uchar)server_id;\n            cs_00->recvbuf[9] = (uchar)((uint)server_id >> 0x18);\n            cs_00->recvbuf[10] = (uchar)((uint)server_id >> 0x10);\n            cs_00->recvbuf[0xb] = (uchar)((uint)server_id >> 8);\n            uVar36 = (uint)(cs_00->recvbuf + 0x11) & 3;\n            uVar32 = (uint)(cs_00->recvbuf + 0x14) & 3;\n            psVar24 = share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)server_id\n                                        ,(int)psVar45,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar36) << uVar36 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar36) * 8) &\n                                         -1 << (uVar32 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar32) >>\n                                        (3 - uVar32) * 8));\n            if (e != (void *)0x0) {\n              psVar18 = cs_00->parent;\n              uVar35 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (ssh_sharing_connstate *)0x0) {\n              uVar36 = *(uint *)(cs_00->recvbuf + 0xd);\n              if (uVar36 < 0x100) {\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x4614,uVar36);\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(cs_00,(share_xchannel *)unaff_s6,psVar24,uVar36);\n              share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,unaff_s6);\n              cs_00->recvlen = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          cs_00->recvlen = 0;\n          goto LAB_000893ac;\n        }\n        iVar28 = *(int *)(puVar47 + 0x8839c);\n        if (3 < (int)puVar23) {\n          iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n          if (((iVar28 == 0) || ((int)psStack_90 < 0)) ||\n             (psVar45 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90),\n             (int)&unaff_s6[-1].xchannels_by_server <= (int)psStack_90)) {\n            iVar28 = *(int *)(puVar47 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pppVar14 = &psStack_90->fn;\n          pppVar15 = &psStack_90->fn;\n          psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)((int)&psStack_90->fn + 2));\n          unaff_s6 = (ssh_sharing_connstate *)\n                     ((uint)*(byte *)&psVar45->fn << 0x18 |\n                      (uint)puVar38[(int)((int)pppVar14 + 1)] << 0x10 |\n                      (uint)puVar38[(int)((int)pppVar15 + 3)] | (uint)*(byte *)&psStack_b0->fn << 8)\n          ;\n          uVar36 = (**(code **)(puVar47 + 0x88b8c))(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)unaff_s6,uVar36,0,3,\n                            (ssh_sharing_connstate *)\n                            ((uint)*(byte *)&psVar45->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 3) |\n                            (uint)*(uchar *)((int)&psVar45->sock + 2) << 8));\n          *(char *)&psVar45->fn = (char)(uVar36 >> 0x18);\n          puVar38[(int)((int)pppVar14 + 1)] = (byte)(uVar36 >> 0x10);\n          *(char *)&psStack_b0->fn = (char)(uVar36 >> 8);\n          puVar38[(int)((int)pppVar15 + 3)] = (byte)uVar36;\n          (**(code **)(puVar47 + 0x88b70))(cs_00->parent->ssh,cs_00->id,0x5a,puVar38,puVar23,0);\n          cs_00->recvlen = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))(iVar28 + 0x458c);\nLAB_00089674:\n        while (pcVar17 == (char *)0x0) {\n          (**(code **)(puVar47 + 0x88ff4))\n                    (*(int *)(puVar47 + 0x8839c) + 0x4768,*(int *)(puVar47 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar47 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                      (*(int *)(puVar47 + 0x8839c) + 0x45d8,psVar45);\n        }\n        share_disconnect(cs_00,pcVar17);\n        (**(code **)(puVar47 + 0x88394))(pcVar17);\n        cs_00->recvlen = 0;\n        goto LAB_000893ac;\n      }\n      pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                  (*(int *)(puVar47 + 0x8839c) + 0x4544,iVar28);\nLAB_000890b4:\n      share_disconnect(cs_00,pcVar17);\n      (**(code **)(puVar47 + 0x88394))(pcVar17);\n      unaff_s5 = pbVar33;\nLAB_000890e0:\n      cs_00->crLine = 0;\n    } while( true );" statement_identifier : (do_statement "do {\n      if (iStack_64 == *piVar49) {\n        return;\n      }\n      (**(code **)(puVar47 + 0x8936c))();\n      pbVar33 = unaff_s5;\nLAB_00089df8:\n      ppStack_68 = psStack_b0->fn;\n      send_packet_to_downstream\n                ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,(share_channel *)0x0,\n                 (share_channel *)0xc);\n      (**(code **)(puVar47 + 0x88394))(unaff_s6);\n      cs_00->recvlen = 0;\nLAB_000893ac:\n      pbVar16 = pbVar33 + (int)pbVar40;\n      unaff_s5 = pbVar33;\n      do {\n        pbVar40 = pbVar16 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar16) {\n          cs_00->crLine = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar28 = cs_00->recvlen;\n        pbVar33 = unaff_s5 + 1;\n        iVar29 = iVar28 + 1;\n        bVar31 = *unaff_s5;\n        in_t3 = (uint)bVar31;\n        cs_00->recvlen = iVar29;\n        cs_00->recvbuf[iVar28] = bVar31;\n        unaff_s5 = pbVar33;\n      } while (iVar29 < 4);\n      iVar28 = (**(code **)(puVar47 + 0x884fc))(*(int *)cs_00->recvbuf + 4);\n      cs_00->curr_packetlen = iVar28;\n      if ((undefined1 *)(iVar28 + -5) < &DAT_0000400c) {\n        unaff_s6 = (ssh_sharing_connstate *)cs_00->recvlen;\n        while (unaff_s5 = pbVar33, (int)unaff_s6 < iVar28) {\nLAB_00088fd4:\n          if (pbVar40 == (byte *)0x0) {\n            cs_00->crLine = 0x73b;\n            pbVar40 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar28 = cs_00->recvlen;\n          pbVar40 = pbVar40 + -1;\n          bVar31 = *pbVar33;\n          pbVar33 = pbVar33 + 1;\n          unaff_s6 = (ssh_sharing_connstate *)(iVar28 + 1);\n          cs_00->recvlen = (int)unaff_s6;\n          cs_00->recvbuf[iVar28] = bVar31;\n          iVar28 = cs_00->curr_packetlen;\n        }\n        bVar31 = cs_00->recvbuf[4];\n        puVar38 = cs_00->recvbuf + 5;\n        puVar23 = (undefined1 *)((int)&unaff_s6[-1].globreq_head + 3);\n        if (bVar31 != 0x5a) {\n          if (bVar31 < 0x5b) {\n            if (bVar31 != 2) {\n              if (2 < bVar31) {\n                if (bVar31 == 4) goto LAB_00089714;\n                if (bVar31 != 0x50) goto LAB_0008965c;\n                iVar28 = *(int *)(puVar47 + 0x8839c);\n                psVar39 = psVar45;\n                if ((int)puVar23 < 4) goto LAB_000896fc;\n                psVar39 = (ssh_sharing_connstate *)(*(int *)(puVar47 + 0x88acc) + 0x79c0);\n                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)&psStack_90,(int *)0x0);\n                psVar43 = psStack_90;\n                if ((iVar28 == 0) || (psStack_90 == (ssh_sharing_connstate *)0x0))\n                goto LAB_000896f8;\n                iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x30e8);\n                if (iVar28 != 0) {\n                  iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                     (psVar43,*(int *)(puVar47 + 0x8839c) + -0x317c);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psVar45 = psVar39;\n                  if (iVar28 == 0) {\n                    (*pcVar48)(psVar43);\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar43 = psStack_90;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                       (int)psStack_90 < (int)puVar23)) {\n                      psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90);\n                      iVar29 = (int)puVar23 - (int)puVar37;\n                      cVar1 = *(char *)&psStack_b0->fn;\n                      if ((iVar29 < 4) ||\n                         (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                                   (int *)&psStack_90), iVar28 == 0)) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if ((int)psVar43 < (int)&unaff_s6[-1].globreq_head) {\n                          if (iVar29 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar35 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        psVar43 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if (-1 < (int)psVar43) {\n                          pcVar48 = *(code **)(puVar47 + 0x8844c);\n                          if ((int)&unaff_s6[-1].globreq_head <= (int)psVar43) goto LAB_00089700;\nLAB_000892a4:\n                          iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,\n                                                   (char **)&psStack_90,(int *)0x0);\n                          psVar45 = psStack_90;\n                          if ((iVar28 == 0) ||\n                             (psVar39 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_00089eec;\n                          puVar44 = puVar38 + (int)psVar43;\n                          bVar31 = *puVar44;\n                          bVar2 = puVar44[1];\n                          bVar3 = puVar44[3];\n                          bVar4 = puVar44[2];\n                          psStack_90 = (ssh_sharing_connstate *)\n                                       (**(code **)(puVar47 + 0x883c0))(psStack_90);\n                          psStack_8c = (ssh_sharing_connstate *)\n                                       ((uint)bVar31 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                       (uint)bVar4 << 8);\n                          unaff_s6 = (ssh_sharing_connstate *)\n                                     find234(cs_00->forwardings,&psStack_90,(cmpfn234)0x0);\n                          (**(code **)(puVar47 + 0x88394))(psStack_90);\n                          if (unaff_s6 == (ssh_sharing_connstate *)0x0) {\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                            if (cVar1 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            cVar1 = *(char *)&psStack_b0->fn;\n                            *(undefined1 *)&psStack_b0->fn = 1;\n                            if (cVar1 == '\0') {\n                              iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar28 = 0;\n                            }\n                            (**(code **)(puVar47 + 0x88b70))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                            (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\nLAB_00089394:\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                          }\n                          (*pcVar48)(psVar45);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar48)();\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar39 = psVar45;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       ((int)psStack_90 < (int)puVar23)) {\n                      if (puVar38[(int)psStack_90] == '\0') goto LAB_000893a4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar47 + 0x88394))(psVar43);\n                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                psVar45 = psStack_90;\n                if (((iVar28 == 0) || ((int)psStack_90 < 0)) ||\n                   (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                   (int)puVar23 <= (int)psStack_90)) goto LAB_000896f8;\n                puVar44 = puVar38 + (int)psStack_90;\n                iVar29 = (int)puVar23 - (int)puVar37;\n                psStack_b0 = (ssh_sharing_connstate *)(uint)*puVar44;\n                if ((iVar29 < 4) ||\n                   (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                             (int *)&psStack_90), iVar28 == 0)) {\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\n                    if (iVar29 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar35 = 0x55e;\nLAB_00089ef0:\n                    pcVar48 = *(code **)(puVar47 + 0x88ff4);\n                    (*pcVar48)(*(int *)(puVar47 + 0x8839c) + 0x457c,\n                               *(int *)(puVar47 + 0x8839c) + 0x43dc,uVar35,\n                               *(int *)(puVar47 + 0x8839c) + 0x4870);\n                    psVar45 = psVar39;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                }\n                else {\n                  psVar45 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < 0) goto LAB_000896fc;\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\nLAB_0008a05c:\n                    iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)&psStack_90,\n                                             (int *)0x0);\n                    psVar43 = psStack_90;\n                    if ((iVar28 == 0) ||\n                       (unaff_s6 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_0008a304;\n                    puVar46 = puVar38 + (int)psVar45;\n                    psVar45 = (ssh_sharing_connstate *)\n                              ((uint)*puVar46 << 0x18 | (uint)puVar46[3] | (uint)puVar46[1] << 0x10\n                              | (uint)puVar46[2] << 8);\n                    iVar28 = (**(code **)(puVar47 + 0x88ba0))\n                                       (cs_00->parent->ssh,psStack_90,psVar45,cs_00);\n                    if (iVar28 == 0) {\n                      if (psStack_b0 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar31 = *puVar44;\n                      *puVar44 = 1;\n                      if (bVar31 == 0) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar28 = 0;\n                      }\n                      (**(code **)(puVar47 + 0x88b70))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                      e_00 = (share_forwarding *)(**(code **)(puVar47 + 0x88390))(1,0xc);\n                      pcVar17 = (char *)(**(code **)(puVar47 + 0x883c0))(psVar43);\n                      t = cs_00->forwardings;\n                      e_00->host = pcVar17;\n                      e_00->port = (int)psVar45;\n                      e_00->active = 0;\n                      psVar25 = (share_forwarding *)add234(t,e_00);\n                      if (e_00 == psVar25) {\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                        psVar26 = (share_globreq *)(**(code **)(puVar47 + 0x88390))(1,0x10);\n                        psVar30 = cs_00->globreq_tail;\n                        psVar26->next = (share_globreq *)0x0;\n                        if (psVar30 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar26;\n                        }\n                        else {\n                          psVar30->next = psVar26;\n                        }\n                        psVar26->fwd = e_00;\n                        psVar26->type = 0;\n                        psVar26->want_reply = (int)psStack_b0;\n                      }\n                      else {\n                        (**(code **)(puVar47 + 0x88394))(e_00);\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(puVar47 + 0x88394))(psVar43);\n                    cs_00->recvlen = 0;\n                    unaff_s6 = psVar43;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                pcVar17 = (char *)(*pcVar48)(iVar28 + 0x455c);\n                psVar45 = psVar39;\n                goto LAB_00089674;\n              }\n              if (bVar31 != 1) {\nLAB_0008965c:\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x474c,bVar31);\n                goto LAB_00089674;\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_000893ac;\n            }\nLAB_00089714:\n            puVar22 = (undefined1 *)((int)&unaff_s6[-1].forwardings + 3);\n            if ((bVar31 == 0x62) &&\n               (psVar45 = *(ssh_sharing_connstate **)(puVar47 + 0x88acc), 3 < (int)puVar22)) {\n              psVar45 = (ssh_sharing_connstate *)(psVar45[1].recvbuf + 0x394c);\n              iVar28 = getstring_inner(cs_00->recvbuf + 9,(int)puVar22,(char **)&psStack_90,\n                                       (int *)0x0);\n              psVar39 = psStack_90;\n              if ((iVar28 != 0) && (psStack_90 != (ssh_sharing_connstate *)0x0)) {\n                psStack_b0 = psStack_90;\n                iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x363c);\n                if ((iVar28 == 0) &&\n                   (iVar28 = (**(code **)(puVar47 + 0x888c4))(cs_00->parent->ssh), iVar28 == 0)) {\n                  ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  ppsStack_88 = ppsVar19;\n                  puVar27 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                  if (puVar27 == (undefined4 *)0x0) {\n                    pcVar48 = *(code **)(puVar47 + 0x8844c);\n                    iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    pcVar17 = (char *)(*pcVar48)(iVar28,ppsVar19);\n                    share_disconnect(cs_00,pcVar17);\n                    (**(code **)(puVar47 + 0x88394))(pcVar17);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_68 = (plug_function_table *)*puVar27;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar28 = *(int *)(puVar47 + 0x8839c);\n                iVar29 = (**(code **)(puVar47 + 0x8953c))(psVar39,iVar28 + -0x36a0);\n                if (iVar29 != 0) {\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  psStack_b0 = psVar39;\n                  goto LAB_00089cc8;\n                }\n                ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                (**(code **)(puVar47 + 0x88394))(psVar39);\n                ppsStack_88 = ppsVar19;\n                psStack_b0 = (ssh_sharing_connstate *)\n                             find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                if (psStack_b0 == (ssh_sharing_connstate *)0x0) {\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)puVar23 < 0x11) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                uVar5 = cs_00->recvbuf[0x14];\n                puVar22 = (undefined1 *)((int)&unaff_s6[-1].channels_by_server + 2);\n                uVar6 = cs_00->recvbuf[0x15];\n                if ((int)puVar22 < 4) {\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(0);\n                  (**(code **)(puVar47 + 0x88394))(0);\nLAB_0008a36c:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar29 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)&psStack_90,\n                                           (int *)0x0);\n                  psVar39 = psStack_90;\n                  if (iVar29 == 0) {\n                    psVar39 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(psVar39);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  iVar20 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_0008a36c;\n                }\n                puVar44 = (uchar *)((int)&psVar39->crLine + 1);\n                iVar20 = (int)puVar23 - (int)puVar44;\n                unaff_s6 = (ssh_sharing_connstate *)0x0;\n                if (iVar20 < 4) {\nLAB_00089ec4:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar21 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)&psStack_90,\n                                           (int *)0x0);\n                  unaff_s6 = psStack_90;\n                  if (iVar21 == 0) {\n                    unaff_s6 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar20 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_00089ec4;\n                }\n                if ((int)puVar23 <= (int)(puVar44 + (int)psVar39 + 3)) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar47 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                puVar38 = puVar38 + (int)(puVar44 + (int)psVar39);\n                if (-1 < iVar29) {\n                  pcVar48 = *(code **)(puVar47 + 0x88b94);\n                  uVar7 = *puVar38;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar38[1];\n                  uVar8 = puVar38[3];\n                  uVar9 = puVar38[2];\n                  psStack_b0->got_verstring = iVar29;\n                  iVar20 = (*pcVar48)(unaff_s6,psStack_b0->recvbuf);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psStack_b0->curr_packetlen = iVar20;\n                  (*pcVar48)(unaff_s6);\n                  iVar29 = (**(code **)(puVar47 + 0x88b98))\n                                     (cs_00->parent->ssh,iVar29,cs_00,psStack_b0);\n                  psStack_b0->sent_verstring = iVar29;\n                  *(uint *)(psStack_b0->recvbuf + 4) = (uint)bVar13;\n                  psVar45 = (ssh_sharing_connstate *)\n                            (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0xc));\n                  unaff_s6 = (ssh_sharing_connstate *)\n                             (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0x10));\n                  puVar38 = (uchar *)((int)&psVar45->curr_packetlen + 1) + (int)unaff_s6;\n                  puVar22 = (undefined1 *)(**(code **)(puVar47 + 0x88390))(puVar38,1);\n                  puVar22[4] = 0;\n                  puVar22[5] = 0;\n                  uVar32 = *(uint *)(iVar28 + -0x36a0);\n                  uVar10 = *(undefined1 *)(iVar28 + -0x369c);\n                  uVar11 = *(undefined1 *)(iVar28 + -0x369b);\n                  uVar12 = *(undefined1 *)(iVar28 + -0x369a);\n                  puVar22[3] = (char)ppsVar19;\n                  *puVar22 = (char)((uint)ppsVar19 >> 0x18);\n                  puVar22[1] = (char)((uint)ppsVar19 >> 0x10);\n                  puVar22[2] = (char)((uint)ppsVar19 >> 8);\n                  puVar22[7] = 7;\n                  puVar22[6] = 0;\n                  puVar23 = puVar22 + 8;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & -1 << (4 - uVar36) * 8 | uVar32 >> uVar36 * 8;\n                  puVar23 = puVar22 + 0xb;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & 0xffffffffU >> (uVar36 + 1) * 8 |\n                       uVar32 << (3 - uVar36) * 8;\n                  puVar22[0xc] = uVar10;\n                  puVar22[0xd] = uVar11;\n                  puVar22[0xe] = uVar12;\n                  puVar22[0x10] = bVar13;\n                  puVar22[0x11] = (char)((uint)psVar45 >> 0x18);\n                  puVar22[0x12] = (char)((uint)psVar45 >> 0x10);\n                  puVar22[0x13] = (char)((uint)psVar45 >> 8);\n                  puVar22[0x14] = (char)psVar45;\n                  pcVar48 = *(code **)(puVar47 + 0x89610);\n                  puVar22[0xf] = uVar5 != '\0';\n                  (*pcVar48)(puVar22 + 0x15,*(undefined4 *)(psStack_b0->sent_verstring + 0xc),\n                             psVar45);\n                  puVar23 = puVar22 + (int)psVar45;\n                  puVar23[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar23[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar23[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar23[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar47 + 0x89610))\n                            (puVar22 + (int)((int)&psVar45->got_verstring + 1),\n                             *(undefined4 *)(psStack_b0->sent_verstring + 0x10),unaff_s6);\n                  puVar23 = puVar22 + (int)(unaff_s6->recvbuf + (int)(psVar45->recvbuf + -0x40));\n                  puVar23[0x1c] = uVar8;\n                  puVar23[0x19] = uVar7;\n                  puVar23[0x1a] = uVar6;\n                  puVar23[0x1b] = uVar9;\n                  (**(code **)(puVar47 + 0x88b70))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar22,puVar38,0);\n                  (**(code **)(puVar47 + 0x88394))(puVar22);\n                  cs_00->recvlen = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar47 + 0x88b70))(cs_00->parent->ssh,cs_00->id,bVar31,puVar38,puVar23,0);\n            if ((bVar31 == 0x61) && (3 < (int)puVar23)) {\n              ppsStack_88 = *(Socket *)(cs_00->recvbuf + 5);\n              psVar24 = (share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n              if (psVar24 != (share_channel *)0x0) {\n                if (psVar24->state == 2) {\n                  (**(code **)(puVar47 + 0x88b74))(cs_00->parent->ssh,psVar24->upstream_id);\n                  share_remove_channel(cs_00,psVar24);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar24->state = 1;\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar31 == 0x5c) {\n              if (3 < (int)puVar23) {\n                psVar45 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                unaff_s6 = (ssh_sharing_connstate *)&psStack_90;\n                psStack_90 = psVar45;\n                e = find234(cs_00->halfchannels,unaff_s6,(cmpfn234)0x0);\n                if (e == (void *)0x0) {\n                  psStack_8c = psVar45;\n                  xc_00 = (share_xchannel *)\n                          find234(cs_00->xchannels_by_server,unaff_s6,(cmpfn234)0x0);\n                  if (xc_00 == (share_xchannel *)0x0) {\n                    pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                                (*(int *)(puVar47 + 0x8839c) + 0x4680,psVar45);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(cs_00,xc_00);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar18 = cs_00->parent;\n                  uVar35 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar47 + 0x88b70))(psVar18->ssh,cs_00->id,uVar35,puVar38,puVar23,0);\n                  del234(cs_00->halfchannels,e);\n                  (**(code **)(puVar47 + 0x88394))(e);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }\n              pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar31) {\n              if (100 < bVar31) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)puVar23 < 0x10) {\n              pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar36 = (uint)(cs_00->recvbuf + 5) & 3;\n            upstream_id = *(uint *)(cs_00->recvbuf + 9);\n            uVar32 = (uint)(cs_00->recvbuf + 8) & 3;\n            psVar45 = (ssh_sharing_connstate *)\n                      ((*(int *)(cs_00->recvbuf + 5 + -uVar36) << uVar36 * 8 |\n                       (uint)psVar45 & 0xffffffffU >> (4 - uVar36) * 8) & -1 << (uVar32 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar32) >> (3 - uVar32) * 8);\n            psStack_90 = psVar45;\n            e = find234(cs_00->halfchannels,&psStack_90,(cmpfn234)0x0);\n            if (e == (void *)0x0) {\n              psStack_8c = psVar45;\n              unaff_s6 = (ssh_sharing_connstate *)\n                         find234(cs_00->xchannels_by_server,&psStack_90,(cmpfn234)0x0);\n              if (unaff_s6 == (ssh_sharing_connstate *)0x0) goto LAB_0008a14c;\n              server_id = unaff_s6->fn;\n            }\n            else {\n              unaff_s6 = (ssh_sharing_connstate *)0x0;\n              server_id = (plug_function_table *)\n                          (**(code **)(puVar47 + 0x88b8c))(cs_00->parent->ssh,cs_00);\n            }\n            cs_00->recvbuf[0xc] = (uchar)server_id;\n            cs_00->recvbuf[9] = (uchar)((uint)server_id >> 0x18);\n            cs_00->recvbuf[10] = (uchar)((uint)server_id >> 0x10);\n            cs_00->recvbuf[0xb] = (uchar)((uint)server_id >> 8);\n            uVar36 = (uint)(cs_00->recvbuf + 0x11) & 3;\n            uVar32 = (uint)(cs_00->recvbuf + 0x14) & 3;\n            psVar24 = share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)server_id\n                                        ,(int)psVar45,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar36) << uVar36 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar36) * 8) &\n                                         -1 << (uVar32 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar32) >>\n                                        (3 - uVar32) * 8));\n            if (e != (void *)0x0) {\n              psVar18 = cs_00->parent;\n              uVar35 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (ssh_sharing_connstate *)0x0) {\n              uVar36 = *(uint *)(cs_00->recvbuf + 0xd);\n              if (uVar36 < 0x100) {\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x4614,uVar36);\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(cs_00,(share_xchannel *)unaff_s6,psVar24,uVar36);\n              share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,unaff_s6);\n              cs_00->recvlen = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          cs_00->recvlen = 0;\n          goto LAB_000893ac;\n        }\n        iVar28 = *(int *)(puVar47 + 0x8839c);\n        if (3 < (int)puVar23) {\n          iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n          if (((iVar28 == 0) || ((int)psStack_90 < 0)) ||\n             (psVar45 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90),\n             (int)&unaff_s6[-1].xchannels_by_server <= (int)psStack_90)) {\n            iVar28 = *(int *)(puVar47 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pppVar14 = &psStack_90->fn;\n          pppVar15 = &psStack_90->fn;\n          psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)((int)&psStack_90->fn + 2));\n          unaff_s6 = (ssh_sharing_connstate *)\n                     ((uint)*(byte *)&psVar45->fn << 0x18 |\n                      (uint)puVar38[(int)((int)pppVar14 + 1)] << 0x10 |\n                      (uint)puVar38[(int)((int)pppVar15 + 3)] | (uint)*(byte *)&psStack_b0->fn << 8)\n          ;\n          uVar36 = (**(code **)(puVar47 + 0x88b8c))(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)unaff_s6,uVar36,0,3,\n                            (ssh_sharing_connstate *)\n                            ((uint)*(byte *)&psVar45->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 3) |\n                            (uint)*(uchar *)((int)&psVar45->sock + 2) << 8));\n          *(char *)&psVar45->fn = (char)(uVar36 >> 0x18);\n          puVar38[(int)((int)pppVar14 + 1)] = (byte)(uVar36 >> 0x10);\n          *(char *)&psStack_b0->fn = (char)(uVar36 >> 8);\n          puVar38[(int)((int)pppVar15 + 3)] = (byte)uVar36;\n          (**(code **)(puVar47 + 0x88b70))(cs_00->parent->ssh,cs_00->id,0x5a,puVar38,puVar23,0);\n          cs_00->recvlen = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))(iVar28 + 0x458c);\nLAB_00089674:\n        while (pcVar17 == (char *)0x0) {\n          (**(code **)(puVar47 + 0x88ff4))\n                    (*(int *)(puVar47 + 0x8839c) + 0x4768,*(int *)(puVar47 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar47 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                      (*(int *)(puVar47 + 0x8839c) + 0x45d8,psVar45);\n        }\n        share_disconnect(cs_00,pcVar17);\n        (**(code **)(puVar47 + 0x88394))(pcVar17);\n        cs_00->recvlen = 0;\n        goto LAB_000893ac;\n      }\n      pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                  (*(int *)(puVar47 + 0x8839c) + 0x4544,iVar28);\nLAB_000890b4:\n      share_disconnect(cs_00,pcVar17);\n      (**(code **)(puVar47 + 0x88394))(pcVar17);\n      unaff_s5 = pbVar33;\nLAB_000890e0:\n      cs_00->crLine = 0;\n    } while( true );" do (compound_statement "{\n      if (iStack_64 == *piVar49) {\n        return;\n      }\n      (**(code **)(puVar47 + 0x8936c))();\n      pbVar33 = unaff_s5;\nLAB_00089df8:\n      ppStack_68 = psStack_b0->fn;\n      send_packet_to_downstream\n                ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,(share_channel *)0x0,\n                 (share_channel *)0xc);\n      (**(code **)(puVar47 + 0x88394))(unaff_s6);\n      cs_00->recvlen = 0;\nLAB_000893ac:\n      pbVar16 = pbVar33 + (int)pbVar40;\n      unaff_s5 = pbVar33;\n      do {\n        pbVar40 = pbVar16 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar16) {\n          cs_00->crLine = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar28 = cs_00->recvlen;\n        pbVar33 = unaff_s5 + 1;\n        iVar29 = iVar28 + 1;\n        bVar31 = *unaff_s5;\n        in_t3 = (uint)bVar31;\n        cs_00->recvlen = iVar29;\n        cs_00->recvbuf[iVar28] = bVar31;\n        unaff_s5 = pbVar33;\n      } while (iVar29 < 4);\n      iVar28 = (**(code **)(puVar47 + 0x884fc))(*(int *)cs_00->recvbuf + 4);\n      cs_00->curr_packetlen = iVar28;\n      if ((undefined1 *)(iVar28 + -5) < &DAT_0000400c) {\n        unaff_s6 = (ssh_sharing_connstate *)cs_00->recvlen;\n        while (unaff_s5 = pbVar33, (int)unaff_s6 < iVar28) {\nLAB_00088fd4:\n          if (pbVar40 == (byte *)0x0) {\n            cs_00->crLine = 0x73b;\n            pbVar40 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar28 = cs_00->recvlen;\n          pbVar40 = pbVar40 + -1;\n          bVar31 = *pbVar33;\n          pbVar33 = pbVar33 + 1;\n          unaff_s6 = (ssh_sharing_connstate *)(iVar28 + 1);\n          cs_00->recvlen = (int)unaff_s6;\n          cs_00->recvbuf[iVar28] = bVar31;\n          iVar28 = cs_00->curr_packetlen;\n        }\n        bVar31 = cs_00->recvbuf[4];\n        puVar38 = cs_00->recvbuf + 5;\n        puVar23 = (undefined1 *)((int)&unaff_s6[-1].globreq_head + 3);\n        if (bVar31 != 0x5a) {\n          if (bVar31 < 0x5b) {\n            if (bVar31 != 2) {\n              if (2 < bVar31) {\n                if (bVar31 == 4) goto LAB_00089714;\n                if (bVar31 != 0x50) goto LAB_0008965c;\n                iVar28 = *(int *)(puVar47 + 0x8839c);\n                psVar39 = psVar45;\n                if ((int)puVar23 < 4) goto LAB_000896fc;\n                psVar39 = (ssh_sharing_connstate *)(*(int *)(puVar47 + 0x88acc) + 0x79c0);\n                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)&psStack_90,(int *)0x0);\n                psVar43 = psStack_90;\n                if ((iVar28 == 0) || (psStack_90 == (ssh_sharing_connstate *)0x0))\n                goto LAB_000896f8;\n                iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x30e8);\n                if (iVar28 != 0) {\n                  iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                     (psVar43,*(int *)(puVar47 + 0x8839c) + -0x317c);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psVar45 = psVar39;\n                  if (iVar28 == 0) {\n                    (*pcVar48)(psVar43);\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar43 = psStack_90;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                       (int)psStack_90 < (int)puVar23)) {\n                      psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90);\n                      iVar29 = (int)puVar23 - (int)puVar37;\n                      cVar1 = *(char *)&psStack_b0->fn;\n                      if ((iVar29 < 4) ||\n                         (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                                   (int *)&psStack_90), iVar28 == 0)) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if ((int)psVar43 < (int)&unaff_s6[-1].globreq_head) {\n                          if (iVar29 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar35 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        psVar43 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if (-1 < (int)psVar43) {\n                          pcVar48 = *(code **)(puVar47 + 0x8844c);\n                          if ((int)&unaff_s6[-1].globreq_head <= (int)psVar43) goto LAB_00089700;\nLAB_000892a4:\n                          iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,\n                                                   (char **)&psStack_90,(int *)0x0);\n                          psVar45 = psStack_90;\n                          if ((iVar28 == 0) ||\n                             (psVar39 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_00089eec;\n                          puVar44 = puVar38 + (int)psVar43;\n                          bVar31 = *puVar44;\n                          bVar2 = puVar44[1];\n                          bVar3 = puVar44[3];\n                          bVar4 = puVar44[2];\n                          psStack_90 = (ssh_sharing_connstate *)\n                                       (**(code **)(puVar47 + 0x883c0))(psStack_90);\n                          psStack_8c = (ssh_sharing_connstate *)\n                                       ((uint)bVar31 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                       (uint)bVar4 << 8);\n                          unaff_s6 = (ssh_sharing_connstate *)\n                                     find234(cs_00->forwardings,&psStack_90,(cmpfn234)0x0);\n                          (**(code **)(puVar47 + 0x88394))(psStack_90);\n                          if (unaff_s6 == (ssh_sharing_connstate *)0x0) {\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                            if (cVar1 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            cVar1 = *(char *)&psStack_b0->fn;\n                            *(undefined1 *)&psStack_b0->fn = 1;\n                            if (cVar1 == '\0') {\n                              iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar28 = 0;\n                            }\n                            (**(code **)(puVar47 + 0x88b70))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                            (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\nLAB_00089394:\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                          }\n                          (*pcVar48)(psVar45);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar48)();\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar39 = psVar45;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       ((int)psStack_90 < (int)puVar23)) {\n                      if (puVar38[(int)psStack_90] == '\0') goto LAB_000893a4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar47 + 0x88394))(psVar43);\n                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                psVar45 = psStack_90;\n                if (((iVar28 == 0) || ((int)psStack_90 < 0)) ||\n                   (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                   (int)puVar23 <= (int)psStack_90)) goto LAB_000896f8;\n                puVar44 = puVar38 + (int)psStack_90;\n                iVar29 = (int)puVar23 - (int)puVar37;\n                psStack_b0 = (ssh_sharing_connstate *)(uint)*puVar44;\n                if ((iVar29 < 4) ||\n                   (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                             (int *)&psStack_90), iVar28 == 0)) {\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\n                    if (iVar29 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar35 = 0x55e;\nLAB_00089ef0:\n                    pcVar48 = *(code **)(puVar47 + 0x88ff4);\n                    (*pcVar48)(*(int *)(puVar47 + 0x8839c) + 0x457c,\n                               *(int *)(puVar47 + 0x8839c) + 0x43dc,uVar35,\n                               *(int *)(puVar47 + 0x8839c) + 0x4870);\n                    psVar45 = psVar39;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                }\n                else {\n                  psVar45 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < 0) goto LAB_000896fc;\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\nLAB_0008a05c:\n                    iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)&psStack_90,\n                                             (int *)0x0);\n                    psVar43 = psStack_90;\n                    if ((iVar28 == 0) ||\n                       (unaff_s6 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_0008a304;\n                    puVar46 = puVar38 + (int)psVar45;\n                    psVar45 = (ssh_sharing_connstate *)\n                              ((uint)*puVar46 << 0x18 | (uint)puVar46[3] | (uint)puVar46[1] << 0x10\n                              | (uint)puVar46[2] << 8);\n                    iVar28 = (**(code **)(puVar47 + 0x88ba0))\n                                       (cs_00->parent->ssh,psStack_90,psVar45,cs_00);\n                    if (iVar28 == 0) {\n                      if (psStack_b0 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar31 = *puVar44;\n                      *puVar44 = 1;\n                      if (bVar31 == 0) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar28 = 0;\n                      }\n                      (**(code **)(puVar47 + 0x88b70))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                      e_00 = (share_forwarding *)(**(code **)(puVar47 + 0x88390))(1,0xc);\n                      pcVar17 = (char *)(**(code **)(puVar47 + 0x883c0))(psVar43);\n                      t = cs_00->forwardings;\n                      e_00->host = pcVar17;\n                      e_00->port = (int)psVar45;\n                      e_00->active = 0;\n                      psVar25 = (share_forwarding *)add234(t,e_00);\n                      if (e_00 == psVar25) {\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                        psVar26 = (share_globreq *)(**(code **)(puVar47 + 0x88390))(1,0x10);\n                        psVar30 = cs_00->globreq_tail;\n                        psVar26->next = (share_globreq *)0x0;\n                        if (psVar30 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar26;\n                        }\n                        else {\n                          psVar30->next = psVar26;\n                        }\n                        psVar26->fwd = e_00;\n                        psVar26->type = 0;\n                        psVar26->want_reply = (int)psStack_b0;\n                      }\n                      else {\n                        (**(code **)(puVar47 + 0x88394))(e_00);\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(puVar47 + 0x88394))(psVar43);\n                    cs_00->recvlen = 0;\n                    unaff_s6 = psVar43;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                pcVar17 = (char *)(*pcVar48)(iVar28 + 0x455c);\n                psVar45 = psVar39;\n                goto LAB_00089674;\n              }\n              if (bVar31 != 1) {\nLAB_0008965c:\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x474c,bVar31);\n                goto LAB_00089674;\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_000893ac;\n            }\nLAB_00089714:\n            puVar22 = (undefined1 *)((int)&unaff_s6[-1].forwardings + 3);\n            if ((bVar31 == 0x62) &&\n               (psVar45 = *(ssh_sharing_connstate **)(puVar47 + 0x88acc), 3 < (int)puVar22)) {\n              psVar45 = (ssh_sharing_connstate *)(psVar45[1].recvbuf + 0x394c);\n              iVar28 = getstring_inner(cs_00->recvbuf + 9,(int)puVar22,(char **)&psStack_90,\n                                       (int *)0x0);\n              psVar39 = psStack_90;\n              if ((iVar28 != 0) && (psStack_90 != (ssh_sharing_connstate *)0x0)) {\n                psStack_b0 = psStack_90;\n                iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x363c);\n                if ((iVar28 == 0) &&\n                   (iVar28 = (**(code **)(puVar47 + 0x888c4))(cs_00->parent->ssh), iVar28 == 0)) {\n                  ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  ppsStack_88 = ppsVar19;\n                  puVar27 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                  if (puVar27 == (undefined4 *)0x0) {\n                    pcVar48 = *(code **)(puVar47 + 0x8844c);\n                    iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    pcVar17 = (char *)(*pcVar48)(iVar28,ppsVar19);\n                    share_disconnect(cs_00,pcVar17);\n                    (**(code **)(puVar47 + 0x88394))(pcVar17);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_68 = (plug_function_table *)*puVar27;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar28 = *(int *)(puVar47 + 0x8839c);\n                iVar29 = (**(code **)(puVar47 + 0x8953c))(psVar39,iVar28 + -0x36a0);\n                if (iVar29 != 0) {\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  psStack_b0 = psVar39;\n                  goto LAB_00089cc8;\n                }\n                ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                (**(code **)(puVar47 + 0x88394))(psVar39);\n                ppsStack_88 = ppsVar19;\n                psStack_b0 = (ssh_sharing_connstate *)\n                             find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                if (psStack_b0 == (ssh_sharing_connstate *)0x0) {\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)puVar23 < 0x11) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                uVar5 = cs_00->recvbuf[0x14];\n                puVar22 = (undefined1 *)((int)&unaff_s6[-1].channels_by_server + 2);\n                uVar6 = cs_00->recvbuf[0x15];\n                if ((int)puVar22 < 4) {\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(0);\n                  (**(code **)(puVar47 + 0x88394))(0);\nLAB_0008a36c:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar29 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)&psStack_90,\n                                           (int *)0x0);\n                  psVar39 = psStack_90;\n                  if (iVar29 == 0) {\n                    psVar39 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(psVar39);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  iVar20 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_0008a36c;\n                }\n                puVar44 = (uchar *)((int)&psVar39->crLine + 1);\n                iVar20 = (int)puVar23 - (int)puVar44;\n                unaff_s6 = (ssh_sharing_connstate *)0x0;\n                if (iVar20 < 4) {\nLAB_00089ec4:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar21 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)&psStack_90,\n                                           (int *)0x0);\n                  unaff_s6 = psStack_90;\n                  if (iVar21 == 0) {\n                    unaff_s6 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar20 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_00089ec4;\n                }\n                if ((int)puVar23 <= (int)(puVar44 + (int)psVar39 + 3)) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar47 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                puVar38 = puVar38 + (int)(puVar44 + (int)psVar39);\n                if (-1 < iVar29) {\n                  pcVar48 = *(code **)(puVar47 + 0x88b94);\n                  uVar7 = *puVar38;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar38[1];\n                  uVar8 = puVar38[3];\n                  uVar9 = puVar38[2];\n                  psStack_b0->got_verstring = iVar29;\n                  iVar20 = (*pcVar48)(unaff_s6,psStack_b0->recvbuf);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psStack_b0->curr_packetlen = iVar20;\n                  (*pcVar48)(unaff_s6);\n                  iVar29 = (**(code **)(puVar47 + 0x88b98))\n                                     (cs_00->parent->ssh,iVar29,cs_00,psStack_b0);\n                  psStack_b0->sent_verstring = iVar29;\n                  *(uint *)(psStack_b0->recvbuf + 4) = (uint)bVar13;\n                  psVar45 = (ssh_sharing_connstate *)\n                            (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0xc));\n                  unaff_s6 = (ssh_sharing_connstate *)\n                             (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0x10));\n                  puVar38 = (uchar *)((int)&psVar45->curr_packetlen + 1) + (int)unaff_s6;\n                  puVar22 = (undefined1 *)(**(code **)(puVar47 + 0x88390))(puVar38,1);\n                  puVar22[4] = 0;\n                  puVar22[5] = 0;\n                  uVar32 = *(uint *)(iVar28 + -0x36a0);\n                  uVar10 = *(undefined1 *)(iVar28 + -0x369c);\n                  uVar11 = *(undefined1 *)(iVar28 + -0x369b);\n                  uVar12 = *(undefined1 *)(iVar28 + -0x369a);\n                  puVar22[3] = (char)ppsVar19;\n                  *puVar22 = (char)((uint)ppsVar19 >> 0x18);\n                  puVar22[1] = (char)((uint)ppsVar19 >> 0x10);\n                  puVar22[2] = (char)((uint)ppsVar19 >> 8);\n                  puVar22[7] = 7;\n                  puVar22[6] = 0;\n                  puVar23 = puVar22 + 8;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & -1 << (4 - uVar36) * 8 | uVar32 >> uVar36 * 8;\n                  puVar23 = puVar22 + 0xb;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & 0xffffffffU >> (uVar36 + 1) * 8 |\n                       uVar32 << (3 - uVar36) * 8;\n                  puVar22[0xc] = uVar10;\n                  puVar22[0xd] = uVar11;\n                  puVar22[0xe] = uVar12;\n                  puVar22[0x10] = bVar13;\n                  puVar22[0x11] = (char)((uint)psVar45 >> 0x18);\n                  puVar22[0x12] = (char)((uint)psVar45 >> 0x10);\n                  puVar22[0x13] = (char)((uint)psVar45 >> 8);\n                  puVar22[0x14] = (char)psVar45;\n                  pcVar48 = *(code **)(puVar47 + 0x89610);\n                  puVar22[0xf] = uVar5 != '\0';\n                  (*pcVar48)(puVar22 + 0x15,*(undefined4 *)(psStack_b0->sent_verstring + 0xc),\n                             psVar45);\n                  puVar23 = puVar22 + (int)psVar45;\n                  puVar23[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar23[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar23[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar23[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar47 + 0x89610))\n                            (puVar22 + (int)((int)&psVar45->got_verstring + 1),\n                             *(undefined4 *)(psStack_b0->sent_verstring + 0x10),unaff_s6);\n                  puVar23 = puVar22 + (int)(unaff_s6->recvbuf + (int)(psVar45->recvbuf + -0x40));\n                  puVar23[0x1c] = uVar8;\n                  puVar23[0x19] = uVar7;\n                  puVar23[0x1a] = uVar6;\n                  puVar23[0x1b] = uVar9;\n                  (**(code **)(puVar47 + 0x88b70))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar22,puVar38,0);\n                  (**(code **)(puVar47 + 0x88394))(puVar22);\n                  cs_00->recvlen = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar47 + 0x88b70))(cs_00->parent->ssh,cs_00->id,bVar31,puVar38,puVar23,0);\n            if ((bVar31 == 0x61) && (3 < (int)puVar23)) {\n              ppsStack_88 = *(Socket *)(cs_00->recvbuf + 5);\n              psVar24 = (share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n              if (psVar24 != (share_channel *)0x0) {\n                if (psVar24->state == 2) {\n                  (**(code **)(puVar47 + 0x88b74))(cs_00->parent->ssh,psVar24->upstream_id);\n                  share_remove_channel(cs_00,psVar24);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar24->state = 1;\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar31 == 0x5c) {\n              if (3 < (int)puVar23) {\n                psVar45 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                unaff_s6 = (ssh_sharing_connstate *)&psStack_90;\n                psStack_90 = psVar45;\n                e = find234(cs_00->halfchannels,unaff_s6,(cmpfn234)0x0);\n                if (e == (void *)0x0) {\n                  psStack_8c = psVar45;\n                  xc_00 = (share_xchannel *)\n                          find234(cs_00->xchannels_by_server,unaff_s6,(cmpfn234)0x0);\n                  if (xc_00 == (share_xchannel *)0x0) {\n                    pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                                (*(int *)(puVar47 + 0x8839c) + 0x4680,psVar45);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(cs_00,xc_00);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar18 = cs_00->parent;\n                  uVar35 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar47 + 0x88b70))(psVar18->ssh,cs_00->id,uVar35,puVar38,puVar23,0);\n                  del234(cs_00->halfchannels,e);\n                  (**(code **)(puVar47 + 0x88394))(e);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }\n              pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar31) {\n              if (100 < bVar31) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)puVar23 < 0x10) {\n              pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar36 = (uint)(cs_00->recvbuf + 5) & 3;\n            upstream_id = *(uint *)(cs_00->recvbuf + 9);\n            uVar32 = (uint)(cs_00->recvbuf + 8) & 3;\n            psVar45 = (ssh_sharing_connstate *)\n                      ((*(int *)(cs_00->recvbuf + 5 + -uVar36) << uVar36 * 8 |\n                       (uint)psVar45 & 0xffffffffU >> (4 - uVar36) * 8) & -1 << (uVar32 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar32) >> (3 - uVar32) * 8);\n            psStack_90 = psVar45;\n            e = find234(cs_00->halfchannels,&psStack_90,(cmpfn234)0x0);\n            if (e == (void *)0x0) {\n              psStack_8c = psVar45;\n              unaff_s6 = (ssh_sharing_connstate *)\n                         find234(cs_00->xchannels_by_server,&psStack_90,(cmpfn234)0x0);\n              if (unaff_s6 == (ssh_sharing_connstate *)0x0) goto LAB_0008a14c;\n              server_id = unaff_s6->fn;\n            }\n            else {\n              unaff_s6 = (ssh_sharing_connstate *)0x0;\n              server_id = (plug_function_table *)\n                          (**(code **)(puVar47 + 0x88b8c))(cs_00->parent->ssh,cs_00);\n            }\n            cs_00->recvbuf[0xc] = (uchar)server_id;\n            cs_00->recvbuf[9] = (uchar)((uint)server_id >> 0x18);\n            cs_00->recvbuf[10] = (uchar)((uint)server_id >> 0x10);\n            cs_00->recvbuf[0xb] = (uchar)((uint)server_id >> 8);\n            uVar36 = (uint)(cs_00->recvbuf + 0x11) & 3;\n            uVar32 = (uint)(cs_00->recvbuf + 0x14) & 3;\n            psVar24 = share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)server_id\n                                        ,(int)psVar45,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar36) << uVar36 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar36) * 8) &\n                                         -1 << (uVar32 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar32) >>\n                                        (3 - uVar32) * 8));\n            if (e != (void *)0x0) {\n              psVar18 = cs_00->parent;\n              uVar35 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (ssh_sharing_connstate *)0x0) {\n              uVar36 = *(uint *)(cs_00->recvbuf + 0xd);\n              if (uVar36 < 0x100) {\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x4614,uVar36);\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(cs_00,(share_xchannel *)unaff_s6,psVar24,uVar36);\n              share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,unaff_s6);\n              cs_00->recvlen = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          cs_00->recvlen = 0;\n          goto LAB_000893ac;\n        }\n        iVar28 = *(int *)(puVar47 + 0x8839c);\n        if (3 < (int)puVar23) {\n          iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n          if (((iVar28 == 0) || ((int)psStack_90 < 0)) ||\n             (psVar45 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90),\n             (int)&unaff_s6[-1].xchannels_by_server <= (int)psStack_90)) {\n            iVar28 = *(int *)(puVar47 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pppVar14 = &psStack_90->fn;\n          pppVar15 = &psStack_90->fn;\n          psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)((int)&psStack_90->fn + 2));\n          unaff_s6 = (ssh_sharing_connstate *)\n                     ((uint)*(byte *)&psVar45->fn << 0x18 |\n                      (uint)puVar38[(int)((int)pppVar14 + 1)] << 0x10 |\n                      (uint)puVar38[(int)((int)pppVar15 + 3)] | (uint)*(byte *)&psStack_b0->fn << 8)\n          ;\n          uVar36 = (**(code **)(puVar47 + 0x88b8c))(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)unaff_s6,uVar36,0,3,\n                            (ssh_sharing_connstate *)\n                            ((uint)*(byte *)&psVar45->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 3) |\n                            (uint)*(uchar *)((int)&psVar45->sock + 2) << 8));\n          *(char *)&psVar45->fn = (char)(uVar36 >> 0x18);\n          puVar38[(int)((int)pppVar14 + 1)] = (byte)(uVar36 >> 0x10);\n          *(char *)&psStack_b0->fn = (char)(uVar36 >> 8);\n          puVar38[(int)((int)pppVar15 + 3)] = (byte)uVar36;\n          (**(code **)(puVar47 + 0x88b70))(cs_00->parent->ssh,cs_00->id,0x5a,puVar38,puVar23,0);\n          cs_00->recvlen = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))(iVar28 + 0x458c);\nLAB_00089674:\n        while (pcVar17 == (char *)0x0) {\n          (**(code **)(puVar47 + 0x88ff4))\n                    (*(int *)(puVar47 + 0x8839c) + 0x4768,*(int *)(puVar47 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar47 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                      (*(int *)(puVar47 + 0x8839c) + 0x45d8,psVar45);\n        }\n        share_disconnect(cs_00,pcVar17);\n        (**(code **)(puVar47 + 0x88394))(pcVar17);\n        cs_00->recvlen = 0;\n        goto LAB_000893ac;\n      }\n      pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                  (*(int *)(puVar47 + 0x8839c) + 0x4544,iVar28);\nLAB_000890b4:\n      share_disconnect(cs_00,pcVar17);\n      (**(code **)(puVar47 + 0x88394))(pcVar17);\n      unaff_s5 = pbVar33;\nLAB_000890e0:\n      cs_00->crLine = 0;\n    }" { (if_statement "if (iStack_64 == *piVar49) {\n        return;\n      }" if (parenthesized_expression "(iStack_64 == *piVar49)" ( (binary_expression "iStack_64 == *piVar49" identifier == (pointer_expression "*piVar49" * identifier)) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "(**(code **)(puVar47 + 0x8936c))();" (call_expression "(**(code **)(puVar47 + 0x8936c))()" (parenthesized_expression "(**(code **)(puVar47 + 0x8936c))" ( (pointer_expression "**(code **)(puVar47 + 0x8936c)" * (pointer_expression "*(code **)(puVar47 + 0x8936c)" * (cast_expression "(code **)(puVar47 + 0x8936c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x8936c)" ( (binary_expression "puVar47 + 0x8936c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pbVar33 = unaff_s5;" (assignment_expression "pbVar33 = unaff_s5" identifier = identifier) ;) (labeled_statement "LAB_00089df8:\n      ppStack_68 = psStack_b0->fn;" statement_identifier : (expression_statement "ppStack_68 = psStack_b0->fn;" (assignment_expression "ppStack_68 = psStack_b0->fn" identifier = (field_expression "psStack_b0->fn" identifier -> field_identifier)) ;)) (expression_statement "send_packet_to_downstream\n                ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,(share_channel *)0x0,\n                 (share_channel *)0xc);" (call_expression "send_packet_to_downstream\n                ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,(share_channel *)0x0,\n                 (share_channel *)0xc)" identifier (argument_list "((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,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_68" & 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 **)(puVar47 + 0x88394))(unaff_s6);" (call_expression "(**(code **)(puVar47 + 0x88394))(unaff_s6)" (parenthesized_expression "(**(code **)(puVar47 + 0x88394))" ( (pointer_expression "**(code **)(puVar47 + 0x88394)" * (pointer_expression "*(code **)(puVar47 + 0x88394)" * (cast_expression "(code **)(puVar47 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88394)" ( (binary_expression "puVar47 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(unaff_s6)" ( 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_000893ac:\n      pbVar16 = pbVar33 + (int)pbVar40;" statement_identifier : (expression_statement "pbVar16 = pbVar33 + (int)pbVar40;" (assignment_expression "pbVar16 = pbVar33 + (int)pbVar40" identifier = (binary_expression "pbVar33 + (int)pbVar40" identifier + (cast_expression "(int)pbVar40" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (expression_statement "unaff_s5 = pbVar33;" (assignment_expression "unaff_s5 = pbVar33" identifier = identifier) ;) (do_statement "do {\n        pbVar40 = pbVar16 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar16) {\n          cs_00->crLine = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar28 = cs_00->recvlen;\n        pbVar33 = unaff_s5 + 1;\n        iVar29 = iVar28 + 1;\n        bVar31 = *unaff_s5;\n        in_t3 = (uint)bVar31;\n        cs_00->recvlen = iVar29;\n        cs_00->recvbuf[iVar28] = bVar31;\n        unaff_s5 = pbVar33;\n      } while (iVar29 < 4);" do (compound_statement "{\n        pbVar40 = pbVar16 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar16) {\n          cs_00->crLine = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar28 = cs_00->recvlen;\n        pbVar33 = unaff_s5 + 1;\n        iVar29 = iVar28 + 1;\n        bVar31 = *unaff_s5;\n        in_t3 = (uint)bVar31;\n        cs_00->recvlen = iVar29;\n        cs_00->recvbuf[iVar28] = bVar31;\n        unaff_s5 = pbVar33;\n      }" { (expression_statement "pbVar40 = pbVar16 + (-1 - (int)unaff_s5);" (assignment_expression "pbVar40 = pbVar16 + (-1 - (int)unaff_s5)" identifier = (binary_expression "pbVar16 + (-1 - (int)unaff_s5)" identifier + (parenthesized_expression "(-1 - (int)unaff_s5)" ( (binary_expression "-1 - (int)unaff_s5" number_literal - (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (unaff_s5 == pbVar16) {\n          cs_00->crLine = 0x72e;\n          goto LAB_000890e4;\n        }" if (parenthesized_expression "(unaff_s5 == pbVar16)" ( (binary_expression "unaff_s5 == pbVar16" identifier == identifier) )) (compound_statement "{\n          cs_00->crLine = 0x72e;\n          goto LAB_000890e4;\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_000890e4;" goto statement_identifier ;) })) (expression_statement "iVar28 = cs_00->recvlen;" (assignment_expression "iVar28 = cs_00->recvlen" identifier = (field_expression "cs_00->recvlen" identifier -> field_identifier)) ;) (expression_statement "pbVar33 = unaff_s5 + 1;" (assignment_expression "pbVar33 = unaff_s5 + 1" identifier = (binary_expression "unaff_s5 + 1" identifier + number_literal)) ;) (expression_statement "iVar29 = iVar28 + 1;" (assignment_expression "iVar29 = iVar28 + 1" identifier = (binary_expression "iVar28 + 1" identifier + number_literal)) ;) (expression_statement "bVar31 = *unaff_s5;" (assignment_expression "bVar31 = *unaff_s5" identifier = (pointer_expression "*unaff_s5" * identifier)) ;) (expression_statement "in_t3 = (uint)bVar31;" (assignment_expression "in_t3 = (uint)bVar31" identifier = (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "cs_00->recvlen = iVar29;" (assignment_expression "cs_00->recvlen = iVar29" (field_expression "cs_00->recvlen" identifier -> field_identifier) = identifier) ;) (expression_statement "cs_00->recvbuf[iVar28] = bVar31;" (assignment_expression "cs_00->recvbuf[iVar28] = bVar31" (subscript_expression "cs_00->recvbuf[iVar28]" (field_expression "cs_00->recvbuf" identifier -> field_identifier) [ identifier ]) = identifier) ;) (expression_statement "unaff_s5 = pbVar33;" (assignment_expression "unaff_s5 = pbVar33" identifier = identifier) ;) }) while (parenthesized_expression "(iVar29 < 4)" ( (binary_expression "iVar29 < 4" identifier < number_literal) )) ;) (expression_statement "iVar28 = (**(code **)(puVar47 + 0x884fc))(*(int *)cs_00->recvbuf + 4);" (assignment_expression "iVar28 = (**(code **)(puVar47 + 0x884fc))(*(int *)cs_00->recvbuf + 4)" identifier = (call_expression "(**(code **)(puVar47 + 0x884fc))(*(int *)cs_00->recvbuf + 4)" (parenthesized_expression "(**(code **)(puVar47 + 0x884fc))" ( (pointer_expression "**(code **)(puVar47 + 0x884fc)" * (pointer_expression "*(code **)(puVar47 + 0x884fc)" * (cast_expression "(code **)(puVar47 + 0x884fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x884fc)" ( (binary_expression "puVar47 + 0x884fc" 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 = iVar28;" (assignment_expression "cs_00->curr_packetlen = iVar28" (field_expression "cs_00->curr_packetlen" identifier -> field_identifier) = identifier) ;) (if_statement "if ((undefined1 *)(iVar28 + -5) < &DAT_0000400c) {\n        unaff_s6 = (ssh_sharing_connstate *)cs_00->recvlen;\n        while (unaff_s5 = pbVar33, (int)unaff_s6 < iVar28) {\nLAB_00088fd4:\n          if (pbVar40 == (byte *)0x0) {\n            cs_00->crLine = 0x73b;\n            pbVar40 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar28 = cs_00->recvlen;\n          pbVar40 = pbVar40 + -1;\n          bVar31 = *pbVar33;\n          pbVar33 = pbVar33 + 1;\n          unaff_s6 = (ssh_sharing_connstate *)(iVar28 + 1);\n          cs_00->recvlen = (int)unaff_s6;\n          cs_00->recvbuf[iVar28] = bVar31;\n          iVar28 = cs_00->curr_packetlen;\n        }\n        bVar31 = cs_00->recvbuf[4];\n        puVar38 = cs_00->recvbuf + 5;\n        puVar23 = (undefined1 *)((int)&unaff_s6[-1].globreq_head + 3);\n        if (bVar31 != 0x5a) {\n          if (bVar31 < 0x5b) {\n            if (bVar31 != 2) {\n              if (2 < bVar31) {\n                if (bVar31 == 4) goto LAB_00089714;\n                if (bVar31 != 0x50) goto LAB_0008965c;\n                iVar28 = *(int *)(puVar47 + 0x8839c);\n                psVar39 = psVar45;\n                if ((int)puVar23 < 4) goto LAB_000896fc;\n                psVar39 = (ssh_sharing_connstate *)(*(int *)(puVar47 + 0x88acc) + 0x79c0);\n                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)&psStack_90,(int *)0x0);\n                psVar43 = psStack_90;\n                if ((iVar28 == 0) || (psStack_90 == (ssh_sharing_connstate *)0x0))\n                goto LAB_000896f8;\n                iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x30e8);\n                if (iVar28 != 0) {\n                  iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                     (psVar43,*(int *)(puVar47 + 0x8839c) + -0x317c);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psVar45 = psVar39;\n                  if (iVar28 == 0) {\n                    (*pcVar48)(psVar43);\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar43 = psStack_90;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                       (int)psStack_90 < (int)puVar23)) {\n                      psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90);\n                      iVar29 = (int)puVar23 - (int)puVar37;\n                      cVar1 = *(char *)&psStack_b0->fn;\n                      if ((iVar29 < 4) ||\n                         (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                                   (int *)&psStack_90), iVar28 == 0)) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if ((int)psVar43 < (int)&unaff_s6[-1].globreq_head) {\n                          if (iVar29 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar35 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        psVar43 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if (-1 < (int)psVar43) {\n                          pcVar48 = *(code **)(puVar47 + 0x8844c);\n                          if ((int)&unaff_s6[-1].globreq_head <= (int)psVar43) goto LAB_00089700;\nLAB_000892a4:\n                          iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,\n                                                   (char **)&psStack_90,(int *)0x0);\n                          psVar45 = psStack_90;\n                          if ((iVar28 == 0) ||\n                             (psVar39 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_00089eec;\n                          puVar44 = puVar38 + (int)psVar43;\n                          bVar31 = *puVar44;\n                          bVar2 = puVar44[1];\n                          bVar3 = puVar44[3];\n                          bVar4 = puVar44[2];\n                          psStack_90 = (ssh_sharing_connstate *)\n                                       (**(code **)(puVar47 + 0x883c0))(psStack_90);\n                          psStack_8c = (ssh_sharing_connstate *)\n                                       ((uint)bVar31 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                       (uint)bVar4 << 8);\n                          unaff_s6 = (ssh_sharing_connstate *)\n                                     find234(cs_00->forwardings,&psStack_90,(cmpfn234)0x0);\n                          (**(code **)(puVar47 + 0x88394))(psStack_90);\n                          if (unaff_s6 == (ssh_sharing_connstate *)0x0) {\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                            if (cVar1 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            cVar1 = *(char *)&psStack_b0->fn;\n                            *(undefined1 *)&psStack_b0->fn = 1;\n                            if (cVar1 == '\0') {\n                              iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar28 = 0;\n                            }\n                            (**(code **)(puVar47 + 0x88b70))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                            (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\nLAB_00089394:\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                          }\n                          (*pcVar48)(psVar45);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar48)();\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar39 = psVar45;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       ((int)psStack_90 < (int)puVar23)) {\n                      if (puVar38[(int)psStack_90] == '\0') goto LAB_000893a4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar47 + 0x88394))(psVar43);\n                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                psVar45 = psStack_90;\n                if (((iVar28 == 0) || ((int)psStack_90 < 0)) ||\n                   (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                   (int)puVar23 <= (int)psStack_90)) goto LAB_000896f8;\n                puVar44 = puVar38 + (int)psStack_90;\n                iVar29 = (int)puVar23 - (int)puVar37;\n                psStack_b0 = (ssh_sharing_connstate *)(uint)*puVar44;\n                if ((iVar29 < 4) ||\n                   (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                             (int *)&psStack_90), iVar28 == 0)) {\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\n                    if (iVar29 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar35 = 0x55e;\nLAB_00089ef0:\n                    pcVar48 = *(code **)(puVar47 + 0x88ff4);\n                    (*pcVar48)(*(int *)(puVar47 + 0x8839c) + 0x457c,\n                               *(int *)(puVar47 + 0x8839c) + 0x43dc,uVar35,\n                               *(int *)(puVar47 + 0x8839c) + 0x4870);\n                    psVar45 = psVar39;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                }\n                else {\n                  psVar45 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < 0) goto LAB_000896fc;\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\nLAB_0008a05c:\n                    iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)&psStack_90,\n                                             (int *)0x0);\n                    psVar43 = psStack_90;\n                    if ((iVar28 == 0) ||\n                       (unaff_s6 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_0008a304;\n                    puVar46 = puVar38 + (int)psVar45;\n                    psVar45 = (ssh_sharing_connstate *)\n                              ((uint)*puVar46 << 0x18 | (uint)puVar46[3] | (uint)puVar46[1] << 0x10\n                              | (uint)puVar46[2] << 8);\n                    iVar28 = (**(code **)(puVar47 + 0x88ba0))\n                                       (cs_00->parent->ssh,psStack_90,psVar45,cs_00);\n                    if (iVar28 == 0) {\n                      if (psStack_b0 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar31 = *puVar44;\n                      *puVar44 = 1;\n                      if (bVar31 == 0) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar28 = 0;\n                      }\n                      (**(code **)(puVar47 + 0x88b70))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                      e_00 = (share_forwarding *)(**(code **)(puVar47 + 0x88390))(1,0xc);\n                      pcVar17 = (char *)(**(code **)(puVar47 + 0x883c0))(psVar43);\n                      t = cs_00->forwardings;\n                      e_00->host = pcVar17;\n                      e_00->port = (int)psVar45;\n                      e_00->active = 0;\n                      psVar25 = (share_forwarding *)add234(t,e_00);\n                      if (e_00 == psVar25) {\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                        psVar26 = (share_globreq *)(**(code **)(puVar47 + 0x88390))(1,0x10);\n                        psVar30 = cs_00->globreq_tail;\n                        psVar26->next = (share_globreq *)0x0;\n                        if (psVar30 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar26;\n                        }\n                        else {\n                          psVar30->next = psVar26;\n                        }\n                        psVar26->fwd = e_00;\n                        psVar26->type = 0;\n                        psVar26->want_reply = (int)psStack_b0;\n                      }\n                      else {\n                        (**(code **)(puVar47 + 0x88394))(e_00);\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(puVar47 + 0x88394))(psVar43);\n                    cs_00->recvlen = 0;\n                    unaff_s6 = psVar43;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                pcVar17 = (char *)(*pcVar48)(iVar28 + 0x455c);\n                psVar45 = psVar39;\n                goto LAB_00089674;\n              }\n              if (bVar31 != 1) {\nLAB_0008965c:\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x474c,bVar31);\n                goto LAB_00089674;\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_000893ac;\n            }\nLAB_00089714:\n            puVar22 = (undefined1 *)((int)&unaff_s6[-1].forwardings + 3);\n            if ((bVar31 == 0x62) &&\n               (psVar45 = *(ssh_sharing_connstate **)(puVar47 + 0x88acc), 3 < (int)puVar22)) {\n              psVar45 = (ssh_sharing_connstate *)(psVar45[1].recvbuf + 0x394c);\n              iVar28 = getstring_inner(cs_00->recvbuf + 9,(int)puVar22,(char **)&psStack_90,\n                                       (int *)0x0);\n              psVar39 = psStack_90;\n              if ((iVar28 != 0) && (psStack_90 != (ssh_sharing_connstate *)0x0)) {\n                psStack_b0 = psStack_90;\n                iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x363c);\n                if ((iVar28 == 0) &&\n                   (iVar28 = (**(code **)(puVar47 + 0x888c4))(cs_00->parent->ssh), iVar28 == 0)) {\n                  ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  ppsStack_88 = ppsVar19;\n                  puVar27 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                  if (puVar27 == (undefined4 *)0x0) {\n                    pcVar48 = *(code **)(puVar47 + 0x8844c);\n                    iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    pcVar17 = (char *)(*pcVar48)(iVar28,ppsVar19);\n                    share_disconnect(cs_00,pcVar17);\n                    (**(code **)(puVar47 + 0x88394))(pcVar17);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_68 = (plug_function_table *)*puVar27;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar28 = *(int *)(puVar47 + 0x8839c);\n                iVar29 = (**(code **)(puVar47 + 0x8953c))(psVar39,iVar28 + -0x36a0);\n                if (iVar29 != 0) {\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  psStack_b0 = psVar39;\n                  goto LAB_00089cc8;\n                }\n                ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                (**(code **)(puVar47 + 0x88394))(psVar39);\n                ppsStack_88 = ppsVar19;\n                psStack_b0 = (ssh_sharing_connstate *)\n                             find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                if (psStack_b0 == (ssh_sharing_connstate *)0x0) {\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)puVar23 < 0x11) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                uVar5 = cs_00->recvbuf[0x14];\n                puVar22 = (undefined1 *)((int)&unaff_s6[-1].channels_by_server + 2);\n                uVar6 = cs_00->recvbuf[0x15];\n                if ((int)puVar22 < 4) {\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(0);\n                  (**(code **)(puVar47 + 0x88394))(0);\nLAB_0008a36c:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar29 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)&psStack_90,\n                                           (int *)0x0);\n                  psVar39 = psStack_90;\n                  if (iVar29 == 0) {\n                    psVar39 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(psVar39);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  iVar20 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_0008a36c;\n                }\n                puVar44 = (uchar *)((int)&psVar39->crLine + 1);\n                iVar20 = (int)puVar23 - (int)puVar44;\n                unaff_s6 = (ssh_sharing_connstate *)0x0;\n                if (iVar20 < 4) {\nLAB_00089ec4:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar21 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)&psStack_90,\n                                           (int *)0x0);\n                  unaff_s6 = psStack_90;\n                  if (iVar21 == 0) {\n                    unaff_s6 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar20 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_00089ec4;\n                }\n                if ((int)puVar23 <= (int)(puVar44 + (int)psVar39 + 3)) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar47 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                puVar38 = puVar38 + (int)(puVar44 + (int)psVar39);\n                if (-1 < iVar29) {\n                  pcVar48 = *(code **)(puVar47 + 0x88b94);\n                  uVar7 = *puVar38;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar38[1];\n                  uVar8 = puVar38[3];\n                  uVar9 = puVar38[2];\n                  psStack_b0->got_verstring = iVar29;\n                  iVar20 = (*pcVar48)(unaff_s6,psStack_b0->recvbuf);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psStack_b0->curr_packetlen = iVar20;\n                  (*pcVar48)(unaff_s6);\n                  iVar29 = (**(code **)(puVar47 + 0x88b98))\n                                     (cs_00->parent->ssh,iVar29,cs_00,psStack_b0);\n                  psStack_b0->sent_verstring = iVar29;\n                  *(uint *)(psStack_b0->recvbuf + 4) = (uint)bVar13;\n                  psVar45 = (ssh_sharing_connstate *)\n                            (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0xc));\n                  unaff_s6 = (ssh_sharing_connstate *)\n                             (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0x10));\n                  puVar38 = (uchar *)((int)&psVar45->curr_packetlen + 1) + (int)unaff_s6;\n                  puVar22 = (undefined1 *)(**(code **)(puVar47 + 0x88390))(puVar38,1);\n                  puVar22[4] = 0;\n                  puVar22[5] = 0;\n                  uVar32 = *(uint *)(iVar28 + -0x36a0);\n                  uVar10 = *(undefined1 *)(iVar28 + -0x369c);\n                  uVar11 = *(undefined1 *)(iVar28 + -0x369b);\n                  uVar12 = *(undefined1 *)(iVar28 + -0x369a);\n                  puVar22[3] = (char)ppsVar19;\n                  *puVar22 = (char)((uint)ppsVar19 >> 0x18);\n                  puVar22[1] = (char)((uint)ppsVar19 >> 0x10);\n                  puVar22[2] = (char)((uint)ppsVar19 >> 8);\n                  puVar22[7] = 7;\n                  puVar22[6] = 0;\n                  puVar23 = puVar22 + 8;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & -1 << (4 - uVar36) * 8 | uVar32 >> uVar36 * 8;\n                  puVar23 = puVar22 + 0xb;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & 0xffffffffU >> (uVar36 + 1) * 8 |\n                       uVar32 << (3 - uVar36) * 8;\n                  puVar22[0xc] = uVar10;\n                  puVar22[0xd] = uVar11;\n                  puVar22[0xe] = uVar12;\n                  puVar22[0x10] = bVar13;\n                  puVar22[0x11] = (char)((uint)psVar45 >> 0x18);\n                  puVar22[0x12] = (char)((uint)psVar45 >> 0x10);\n                  puVar22[0x13] = (char)((uint)psVar45 >> 8);\n                  puVar22[0x14] = (char)psVar45;\n                  pcVar48 = *(code **)(puVar47 + 0x89610);\n                  puVar22[0xf] = uVar5 != '\0';\n                  (*pcVar48)(puVar22 + 0x15,*(undefined4 *)(psStack_b0->sent_verstring + 0xc),\n                             psVar45);\n                  puVar23 = puVar22 + (int)psVar45;\n                  puVar23[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar23[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar23[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar23[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar47 + 0x89610))\n                            (puVar22 + (int)((int)&psVar45->got_verstring + 1),\n                             *(undefined4 *)(psStack_b0->sent_verstring + 0x10),unaff_s6);\n                  puVar23 = puVar22 + (int)(unaff_s6->recvbuf + (int)(psVar45->recvbuf + -0x40));\n                  puVar23[0x1c] = uVar8;\n                  puVar23[0x19] = uVar7;\n                  puVar23[0x1a] = uVar6;\n                  puVar23[0x1b] = uVar9;\n                  (**(code **)(puVar47 + 0x88b70))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar22,puVar38,0);\n                  (**(code **)(puVar47 + 0x88394))(puVar22);\n                  cs_00->recvlen = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar47 + 0x88b70))(cs_00->parent->ssh,cs_00->id,bVar31,puVar38,puVar23,0);\n            if ((bVar31 == 0x61) && (3 < (int)puVar23)) {\n              ppsStack_88 = *(Socket *)(cs_00->recvbuf + 5);\n              psVar24 = (share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n              if (psVar24 != (share_channel *)0x0) {\n                if (psVar24->state == 2) {\n                  (**(code **)(puVar47 + 0x88b74))(cs_00->parent->ssh,psVar24->upstream_id);\n                  share_remove_channel(cs_00,psVar24);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar24->state = 1;\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar31 == 0x5c) {\n              if (3 < (int)puVar23) {\n                psVar45 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                unaff_s6 = (ssh_sharing_connstate *)&psStack_90;\n                psStack_90 = psVar45;\n                e = find234(cs_00->halfchannels,unaff_s6,(cmpfn234)0x0);\n                if (e == (void *)0x0) {\n                  psStack_8c = psVar45;\n                  xc_00 = (share_xchannel *)\n                          find234(cs_00->xchannels_by_server,unaff_s6,(cmpfn234)0x0);\n                  if (xc_00 == (share_xchannel *)0x0) {\n                    pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                                (*(int *)(puVar47 + 0x8839c) + 0x4680,psVar45);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(cs_00,xc_00);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar18 = cs_00->parent;\n                  uVar35 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar47 + 0x88b70))(psVar18->ssh,cs_00->id,uVar35,puVar38,puVar23,0);\n                  del234(cs_00->halfchannels,e);\n                  (**(code **)(puVar47 + 0x88394))(e);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }\n              pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar31) {\n              if (100 < bVar31) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)puVar23 < 0x10) {\n              pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar36 = (uint)(cs_00->recvbuf + 5) & 3;\n            upstream_id = *(uint *)(cs_00->recvbuf + 9);\n            uVar32 = (uint)(cs_00->recvbuf + 8) & 3;\n            psVar45 = (ssh_sharing_connstate *)\n                      ((*(int *)(cs_00->recvbuf + 5 + -uVar36) << uVar36 * 8 |\n                       (uint)psVar45 & 0xffffffffU >> (4 - uVar36) * 8) & -1 << (uVar32 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar32) >> (3 - uVar32) * 8);\n            psStack_90 = psVar45;\n            e = find234(cs_00->halfchannels,&psStack_90,(cmpfn234)0x0);\n            if (e == (void *)0x0) {\n              psStack_8c = psVar45;\n              unaff_s6 = (ssh_sharing_connstate *)\n                         find234(cs_00->xchannels_by_server,&psStack_90,(cmpfn234)0x0);\n              if (unaff_s6 == (ssh_sharing_connstate *)0x0) goto LAB_0008a14c;\n              server_id = unaff_s6->fn;\n            }\n            else {\n              unaff_s6 = (ssh_sharing_connstate *)0x0;\n              server_id = (plug_function_table *)\n                          (**(code **)(puVar47 + 0x88b8c))(cs_00->parent->ssh,cs_00);\n            }\n            cs_00->recvbuf[0xc] = (uchar)server_id;\n            cs_00->recvbuf[9] = (uchar)((uint)server_id >> 0x18);\n            cs_00->recvbuf[10] = (uchar)((uint)server_id >> 0x10);\n            cs_00->recvbuf[0xb] = (uchar)((uint)server_id >> 8);\n            uVar36 = (uint)(cs_00->recvbuf + 0x11) & 3;\n            uVar32 = (uint)(cs_00->recvbuf + 0x14) & 3;\n            psVar24 = share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)server_id\n                                        ,(int)psVar45,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar36) << uVar36 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar36) * 8) &\n                                         -1 << (uVar32 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar32) >>\n                                        (3 - uVar32) * 8));\n            if (e != (void *)0x0) {\n              psVar18 = cs_00->parent;\n              uVar35 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (ssh_sharing_connstate *)0x0) {\n              uVar36 = *(uint *)(cs_00->recvbuf + 0xd);\n              if (uVar36 < 0x100) {\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x4614,uVar36);\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(cs_00,(share_xchannel *)unaff_s6,psVar24,uVar36);\n              share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,unaff_s6);\n              cs_00->recvlen = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          cs_00->recvlen = 0;\n          goto LAB_000893ac;\n        }\n        iVar28 = *(int *)(puVar47 + 0x8839c);\n        if (3 < (int)puVar23) {\n          iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n          if (((iVar28 == 0) || ((int)psStack_90 < 0)) ||\n             (psVar45 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90),\n             (int)&unaff_s6[-1].xchannels_by_server <= (int)psStack_90)) {\n            iVar28 = *(int *)(puVar47 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pppVar14 = &psStack_90->fn;\n          pppVar15 = &psStack_90->fn;\n          psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)((int)&psStack_90->fn + 2));\n          unaff_s6 = (ssh_sharing_connstate *)\n                     ((uint)*(byte *)&psVar45->fn << 0x18 |\n                      (uint)puVar38[(int)((int)pppVar14 + 1)] << 0x10 |\n                      (uint)puVar38[(int)((int)pppVar15 + 3)] | (uint)*(byte *)&psStack_b0->fn << 8)\n          ;\n          uVar36 = (**(code **)(puVar47 + 0x88b8c))(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)unaff_s6,uVar36,0,3,\n                            (ssh_sharing_connstate *)\n                            ((uint)*(byte *)&psVar45->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 3) |\n                            (uint)*(uchar *)((int)&psVar45->sock + 2) << 8));\n          *(char *)&psVar45->fn = (char)(uVar36 >> 0x18);\n          puVar38[(int)((int)pppVar14 + 1)] = (byte)(uVar36 >> 0x10);\n          *(char *)&psStack_b0->fn = (char)(uVar36 >> 8);\n          puVar38[(int)((int)pppVar15 + 3)] = (byte)uVar36;\n          (**(code **)(puVar47 + 0x88b70))(cs_00->parent->ssh,cs_00->id,0x5a,puVar38,puVar23,0);\n          cs_00->recvlen = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))(iVar28 + 0x458c);\nLAB_00089674:\n        while (pcVar17 == (char *)0x0) {\n          (**(code **)(puVar47 + 0x88ff4))\n                    (*(int *)(puVar47 + 0x8839c) + 0x4768,*(int *)(puVar47 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar47 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                      (*(int *)(puVar47 + 0x8839c) + 0x45d8,psVar45);\n        }\n        share_disconnect(cs_00,pcVar17);\n        (**(code **)(puVar47 + 0x88394))(pcVar17);\n        cs_00->recvlen = 0;\n        goto LAB_000893ac;\n      }" if (parenthesized_expression "((undefined1 *)(iVar28 + -5) < &DAT_0000400c)" ( (binary_expression "(undefined1 *)(iVar28 + -5) < &DAT_0000400c" (cast_expression "(undefined1 *)(iVar28 + -5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + -5)" ( (binary_expression "iVar28 + -5" identifier + number_literal) ))) < (pointer_expression "&DAT_0000400c" & identifier)) )) (compound_statement "{\n        unaff_s6 = (ssh_sharing_connstate *)cs_00->recvlen;\n        while (unaff_s5 = pbVar33, (int)unaff_s6 < iVar28) {\nLAB_00088fd4:\n          if (pbVar40 == (byte *)0x0) {\n            cs_00->crLine = 0x73b;\n            pbVar40 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar28 = cs_00->recvlen;\n          pbVar40 = pbVar40 + -1;\n          bVar31 = *pbVar33;\n          pbVar33 = pbVar33 + 1;\n          unaff_s6 = (ssh_sharing_connstate *)(iVar28 + 1);\n          cs_00->recvlen = (int)unaff_s6;\n          cs_00->recvbuf[iVar28] = bVar31;\n          iVar28 = cs_00->curr_packetlen;\n        }\n        bVar31 = cs_00->recvbuf[4];\n        puVar38 = cs_00->recvbuf + 5;\n        puVar23 = (undefined1 *)((int)&unaff_s6[-1].globreq_head + 3);\n        if (bVar31 != 0x5a) {\n          if (bVar31 < 0x5b) {\n            if (bVar31 != 2) {\n              if (2 < bVar31) {\n                if (bVar31 == 4) goto LAB_00089714;\n                if (bVar31 != 0x50) goto LAB_0008965c;\n                iVar28 = *(int *)(puVar47 + 0x8839c);\n                psVar39 = psVar45;\n                if ((int)puVar23 < 4) goto LAB_000896fc;\n                psVar39 = (ssh_sharing_connstate *)(*(int *)(puVar47 + 0x88acc) + 0x79c0);\n                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)&psStack_90,(int *)0x0);\n                psVar43 = psStack_90;\n                if ((iVar28 == 0) || (psStack_90 == (ssh_sharing_connstate *)0x0))\n                goto LAB_000896f8;\n                iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x30e8);\n                if (iVar28 != 0) {\n                  iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                     (psVar43,*(int *)(puVar47 + 0x8839c) + -0x317c);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psVar45 = psVar39;\n                  if (iVar28 == 0) {\n                    (*pcVar48)(psVar43);\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar43 = psStack_90;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                       (int)psStack_90 < (int)puVar23)) {\n                      psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90);\n                      iVar29 = (int)puVar23 - (int)puVar37;\n                      cVar1 = *(char *)&psStack_b0->fn;\n                      if ((iVar29 < 4) ||\n                         (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                                   (int *)&psStack_90), iVar28 == 0)) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if ((int)psVar43 < (int)&unaff_s6[-1].globreq_head) {\n                          if (iVar29 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar35 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        psVar43 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if (-1 < (int)psVar43) {\n                          pcVar48 = *(code **)(puVar47 + 0x8844c);\n                          if ((int)&unaff_s6[-1].globreq_head <= (int)psVar43) goto LAB_00089700;\nLAB_000892a4:\n                          iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,\n                                                   (char **)&psStack_90,(int *)0x0);\n                          psVar45 = psStack_90;\n                          if ((iVar28 == 0) ||\n                             (psVar39 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_00089eec;\n                          puVar44 = puVar38 + (int)psVar43;\n                          bVar31 = *puVar44;\n                          bVar2 = puVar44[1];\n                          bVar3 = puVar44[3];\n                          bVar4 = puVar44[2];\n                          psStack_90 = (ssh_sharing_connstate *)\n                                       (**(code **)(puVar47 + 0x883c0))(psStack_90);\n                          psStack_8c = (ssh_sharing_connstate *)\n                                       ((uint)bVar31 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                       (uint)bVar4 << 8);\n                          unaff_s6 = (ssh_sharing_connstate *)\n                                     find234(cs_00->forwardings,&psStack_90,(cmpfn234)0x0);\n                          (**(code **)(puVar47 + 0x88394))(psStack_90);\n                          if (unaff_s6 == (ssh_sharing_connstate *)0x0) {\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                            if (cVar1 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            cVar1 = *(char *)&psStack_b0->fn;\n                            *(undefined1 *)&psStack_b0->fn = 1;\n                            if (cVar1 == '\0') {\n                              iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar28 = 0;\n                            }\n                            (**(code **)(puVar47 + 0x88b70))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                            (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\nLAB_00089394:\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                          }\n                          (*pcVar48)(psVar45);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar48)();\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar39 = psVar45;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       ((int)psStack_90 < (int)puVar23)) {\n                      if (puVar38[(int)psStack_90] == '\0') goto LAB_000893a4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar47 + 0x88394))(psVar43);\n                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                psVar45 = psStack_90;\n                if (((iVar28 == 0) || ((int)psStack_90 < 0)) ||\n                   (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                   (int)puVar23 <= (int)psStack_90)) goto LAB_000896f8;\n                puVar44 = puVar38 + (int)psStack_90;\n                iVar29 = (int)puVar23 - (int)puVar37;\n                psStack_b0 = (ssh_sharing_connstate *)(uint)*puVar44;\n                if ((iVar29 < 4) ||\n                   (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                             (int *)&psStack_90), iVar28 == 0)) {\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\n                    if (iVar29 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar35 = 0x55e;\nLAB_00089ef0:\n                    pcVar48 = *(code **)(puVar47 + 0x88ff4);\n                    (*pcVar48)(*(int *)(puVar47 + 0x8839c) + 0x457c,\n                               *(int *)(puVar47 + 0x8839c) + 0x43dc,uVar35,\n                               *(int *)(puVar47 + 0x8839c) + 0x4870);\n                    psVar45 = psVar39;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                }\n                else {\n                  psVar45 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < 0) goto LAB_000896fc;\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\nLAB_0008a05c:\n                    iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)&psStack_90,\n                                             (int *)0x0);\n                    psVar43 = psStack_90;\n                    if ((iVar28 == 0) ||\n                       (unaff_s6 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_0008a304;\n                    puVar46 = puVar38 + (int)psVar45;\n                    psVar45 = (ssh_sharing_connstate *)\n                              ((uint)*puVar46 << 0x18 | (uint)puVar46[3] | (uint)puVar46[1] << 0x10\n                              | (uint)puVar46[2] << 8);\n                    iVar28 = (**(code **)(puVar47 + 0x88ba0))\n                                       (cs_00->parent->ssh,psStack_90,psVar45,cs_00);\n                    if (iVar28 == 0) {\n                      if (psStack_b0 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar31 = *puVar44;\n                      *puVar44 = 1;\n                      if (bVar31 == 0) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar28 = 0;\n                      }\n                      (**(code **)(puVar47 + 0x88b70))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                      e_00 = (share_forwarding *)(**(code **)(puVar47 + 0x88390))(1,0xc);\n                      pcVar17 = (char *)(**(code **)(puVar47 + 0x883c0))(psVar43);\n                      t = cs_00->forwardings;\n                      e_00->host = pcVar17;\n                      e_00->port = (int)psVar45;\n                      e_00->active = 0;\n                      psVar25 = (share_forwarding *)add234(t,e_00);\n                      if (e_00 == psVar25) {\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                        psVar26 = (share_globreq *)(**(code **)(puVar47 + 0x88390))(1,0x10);\n                        psVar30 = cs_00->globreq_tail;\n                        psVar26->next = (share_globreq *)0x0;\n                        if (psVar30 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar26;\n                        }\n                        else {\n                          psVar30->next = psVar26;\n                        }\n                        psVar26->fwd = e_00;\n                        psVar26->type = 0;\n                        psVar26->want_reply = (int)psStack_b0;\n                      }\n                      else {\n                        (**(code **)(puVar47 + 0x88394))(e_00);\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(puVar47 + 0x88394))(psVar43);\n                    cs_00->recvlen = 0;\n                    unaff_s6 = psVar43;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                pcVar17 = (char *)(*pcVar48)(iVar28 + 0x455c);\n                psVar45 = psVar39;\n                goto LAB_00089674;\n              }\n              if (bVar31 != 1) {\nLAB_0008965c:\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x474c,bVar31);\n                goto LAB_00089674;\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_000893ac;\n            }\nLAB_00089714:\n            puVar22 = (undefined1 *)((int)&unaff_s6[-1].forwardings + 3);\n            if ((bVar31 == 0x62) &&\n               (psVar45 = *(ssh_sharing_connstate **)(puVar47 + 0x88acc), 3 < (int)puVar22)) {\n              psVar45 = (ssh_sharing_connstate *)(psVar45[1].recvbuf + 0x394c);\n              iVar28 = getstring_inner(cs_00->recvbuf + 9,(int)puVar22,(char **)&psStack_90,\n                                       (int *)0x0);\n              psVar39 = psStack_90;\n              if ((iVar28 != 0) && (psStack_90 != (ssh_sharing_connstate *)0x0)) {\n                psStack_b0 = psStack_90;\n                iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x363c);\n                if ((iVar28 == 0) &&\n                   (iVar28 = (**(code **)(puVar47 + 0x888c4))(cs_00->parent->ssh), iVar28 == 0)) {\n                  ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  ppsStack_88 = ppsVar19;\n                  puVar27 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                  if (puVar27 == (undefined4 *)0x0) {\n                    pcVar48 = *(code **)(puVar47 + 0x8844c);\n                    iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    pcVar17 = (char *)(*pcVar48)(iVar28,ppsVar19);\n                    share_disconnect(cs_00,pcVar17);\n                    (**(code **)(puVar47 + 0x88394))(pcVar17);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_68 = (plug_function_table *)*puVar27;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar28 = *(int *)(puVar47 + 0x8839c);\n                iVar29 = (**(code **)(puVar47 + 0x8953c))(psVar39,iVar28 + -0x36a0);\n                if (iVar29 != 0) {\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  psStack_b0 = psVar39;\n                  goto LAB_00089cc8;\n                }\n                ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                (**(code **)(puVar47 + 0x88394))(psVar39);\n                ppsStack_88 = ppsVar19;\n                psStack_b0 = (ssh_sharing_connstate *)\n                             find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                if (psStack_b0 == (ssh_sharing_connstate *)0x0) {\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)puVar23 < 0x11) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                uVar5 = cs_00->recvbuf[0x14];\n                puVar22 = (undefined1 *)((int)&unaff_s6[-1].channels_by_server + 2);\n                uVar6 = cs_00->recvbuf[0x15];\n                if ((int)puVar22 < 4) {\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(0);\n                  (**(code **)(puVar47 + 0x88394))(0);\nLAB_0008a36c:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar29 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)&psStack_90,\n                                           (int *)0x0);\n                  psVar39 = psStack_90;\n                  if (iVar29 == 0) {\n                    psVar39 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(psVar39);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  iVar20 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_0008a36c;\n                }\n                puVar44 = (uchar *)((int)&psVar39->crLine + 1);\n                iVar20 = (int)puVar23 - (int)puVar44;\n                unaff_s6 = (ssh_sharing_connstate *)0x0;\n                if (iVar20 < 4) {\nLAB_00089ec4:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar21 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)&psStack_90,\n                                           (int *)0x0);\n                  unaff_s6 = psStack_90;\n                  if (iVar21 == 0) {\n                    unaff_s6 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar20 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_00089ec4;\n                }\n                if ((int)puVar23 <= (int)(puVar44 + (int)psVar39 + 3)) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar47 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                puVar38 = puVar38 + (int)(puVar44 + (int)psVar39);\n                if (-1 < iVar29) {\n                  pcVar48 = *(code **)(puVar47 + 0x88b94);\n                  uVar7 = *puVar38;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar38[1];\n                  uVar8 = puVar38[3];\n                  uVar9 = puVar38[2];\n                  psStack_b0->got_verstring = iVar29;\n                  iVar20 = (*pcVar48)(unaff_s6,psStack_b0->recvbuf);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psStack_b0->curr_packetlen = iVar20;\n                  (*pcVar48)(unaff_s6);\n                  iVar29 = (**(code **)(puVar47 + 0x88b98))\n                                     (cs_00->parent->ssh,iVar29,cs_00,psStack_b0);\n                  psStack_b0->sent_verstring = iVar29;\n                  *(uint *)(psStack_b0->recvbuf + 4) = (uint)bVar13;\n                  psVar45 = (ssh_sharing_connstate *)\n                            (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0xc));\n                  unaff_s6 = (ssh_sharing_connstate *)\n                             (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0x10));\n                  puVar38 = (uchar *)((int)&psVar45->curr_packetlen + 1) + (int)unaff_s6;\n                  puVar22 = (undefined1 *)(**(code **)(puVar47 + 0x88390))(puVar38,1);\n                  puVar22[4] = 0;\n                  puVar22[5] = 0;\n                  uVar32 = *(uint *)(iVar28 + -0x36a0);\n                  uVar10 = *(undefined1 *)(iVar28 + -0x369c);\n                  uVar11 = *(undefined1 *)(iVar28 + -0x369b);\n                  uVar12 = *(undefined1 *)(iVar28 + -0x369a);\n                  puVar22[3] = (char)ppsVar19;\n                  *puVar22 = (char)((uint)ppsVar19 >> 0x18);\n                  puVar22[1] = (char)((uint)ppsVar19 >> 0x10);\n                  puVar22[2] = (char)((uint)ppsVar19 >> 8);\n                  puVar22[7] = 7;\n                  puVar22[6] = 0;\n                  puVar23 = puVar22 + 8;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & -1 << (4 - uVar36) * 8 | uVar32 >> uVar36 * 8;\n                  puVar23 = puVar22 + 0xb;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & 0xffffffffU >> (uVar36 + 1) * 8 |\n                       uVar32 << (3 - uVar36) * 8;\n                  puVar22[0xc] = uVar10;\n                  puVar22[0xd] = uVar11;\n                  puVar22[0xe] = uVar12;\n                  puVar22[0x10] = bVar13;\n                  puVar22[0x11] = (char)((uint)psVar45 >> 0x18);\n                  puVar22[0x12] = (char)((uint)psVar45 >> 0x10);\n                  puVar22[0x13] = (char)((uint)psVar45 >> 8);\n                  puVar22[0x14] = (char)psVar45;\n                  pcVar48 = *(code **)(puVar47 + 0x89610);\n                  puVar22[0xf] = uVar5 != '\0';\n                  (*pcVar48)(puVar22 + 0x15,*(undefined4 *)(psStack_b0->sent_verstring + 0xc),\n                             psVar45);\n                  puVar23 = puVar22 + (int)psVar45;\n                  puVar23[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar23[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar23[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar23[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar47 + 0x89610))\n                            (puVar22 + (int)((int)&psVar45->got_verstring + 1),\n                             *(undefined4 *)(psStack_b0->sent_verstring + 0x10),unaff_s6);\n                  puVar23 = puVar22 + (int)(unaff_s6->recvbuf + (int)(psVar45->recvbuf + -0x40));\n                  puVar23[0x1c] = uVar8;\n                  puVar23[0x19] = uVar7;\n                  puVar23[0x1a] = uVar6;\n                  puVar23[0x1b] = uVar9;\n                  (**(code **)(puVar47 + 0x88b70))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar22,puVar38,0);\n                  (**(code **)(puVar47 + 0x88394))(puVar22);\n                  cs_00->recvlen = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar47 + 0x88b70))(cs_00->parent->ssh,cs_00->id,bVar31,puVar38,puVar23,0);\n            if ((bVar31 == 0x61) && (3 < (int)puVar23)) {\n              ppsStack_88 = *(Socket *)(cs_00->recvbuf + 5);\n              psVar24 = (share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n              if (psVar24 != (share_channel *)0x0) {\n                if (psVar24->state == 2) {\n                  (**(code **)(puVar47 + 0x88b74))(cs_00->parent->ssh,psVar24->upstream_id);\n                  share_remove_channel(cs_00,psVar24);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar24->state = 1;\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar31 == 0x5c) {\n              if (3 < (int)puVar23) {\n                psVar45 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                unaff_s6 = (ssh_sharing_connstate *)&psStack_90;\n                psStack_90 = psVar45;\n                e = find234(cs_00->halfchannels,unaff_s6,(cmpfn234)0x0);\n                if (e == (void *)0x0) {\n                  psStack_8c = psVar45;\n                  xc_00 = (share_xchannel *)\n                          find234(cs_00->xchannels_by_server,unaff_s6,(cmpfn234)0x0);\n                  if (xc_00 == (share_xchannel *)0x0) {\n                    pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                                (*(int *)(puVar47 + 0x8839c) + 0x4680,psVar45);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(cs_00,xc_00);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar18 = cs_00->parent;\n                  uVar35 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar47 + 0x88b70))(psVar18->ssh,cs_00->id,uVar35,puVar38,puVar23,0);\n                  del234(cs_00->halfchannels,e);\n                  (**(code **)(puVar47 + 0x88394))(e);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }\n              pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar31) {\n              if (100 < bVar31) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)puVar23 < 0x10) {\n              pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar36 = (uint)(cs_00->recvbuf + 5) & 3;\n            upstream_id = *(uint *)(cs_00->recvbuf + 9);\n            uVar32 = (uint)(cs_00->recvbuf + 8) & 3;\n            psVar45 = (ssh_sharing_connstate *)\n                      ((*(int *)(cs_00->recvbuf + 5 + -uVar36) << uVar36 * 8 |\n                       (uint)psVar45 & 0xffffffffU >> (4 - uVar36) * 8) & -1 << (uVar32 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar32) >> (3 - uVar32) * 8);\n            psStack_90 = psVar45;\n            e = find234(cs_00->halfchannels,&psStack_90,(cmpfn234)0x0);\n            if (e == (void *)0x0) {\n              psStack_8c = psVar45;\n              unaff_s6 = (ssh_sharing_connstate *)\n                         find234(cs_00->xchannels_by_server,&psStack_90,(cmpfn234)0x0);\n              if (unaff_s6 == (ssh_sharing_connstate *)0x0) goto LAB_0008a14c;\n              server_id = unaff_s6->fn;\n            }\n            else {\n              unaff_s6 = (ssh_sharing_connstate *)0x0;\n              server_id = (plug_function_table *)\n                          (**(code **)(puVar47 + 0x88b8c))(cs_00->parent->ssh,cs_00);\n            }\n            cs_00->recvbuf[0xc] = (uchar)server_id;\n            cs_00->recvbuf[9] = (uchar)((uint)server_id >> 0x18);\n            cs_00->recvbuf[10] = (uchar)((uint)server_id >> 0x10);\n            cs_00->recvbuf[0xb] = (uchar)((uint)server_id >> 8);\n            uVar36 = (uint)(cs_00->recvbuf + 0x11) & 3;\n            uVar32 = (uint)(cs_00->recvbuf + 0x14) & 3;\n            psVar24 = share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)server_id\n                                        ,(int)psVar45,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar36) << uVar36 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar36) * 8) &\n                                         -1 << (uVar32 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar32) >>\n                                        (3 - uVar32) * 8));\n            if (e != (void *)0x0) {\n              psVar18 = cs_00->parent;\n              uVar35 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (ssh_sharing_connstate *)0x0) {\n              uVar36 = *(uint *)(cs_00->recvbuf + 0xd);\n              if (uVar36 < 0x100) {\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x4614,uVar36);\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(cs_00,(share_xchannel *)unaff_s6,psVar24,uVar36);\n              share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,unaff_s6);\n              cs_00->recvlen = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          cs_00->recvlen = 0;\n          goto LAB_000893ac;\n        }\n        iVar28 = *(int *)(puVar47 + 0x8839c);\n        if (3 < (int)puVar23) {\n          iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n          if (((iVar28 == 0) || ((int)psStack_90 < 0)) ||\n             (psVar45 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90),\n             (int)&unaff_s6[-1].xchannels_by_server <= (int)psStack_90)) {\n            iVar28 = *(int *)(puVar47 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pppVar14 = &psStack_90->fn;\n          pppVar15 = &psStack_90->fn;\n          psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)((int)&psStack_90->fn + 2));\n          unaff_s6 = (ssh_sharing_connstate *)\n                     ((uint)*(byte *)&psVar45->fn << 0x18 |\n                      (uint)puVar38[(int)((int)pppVar14 + 1)] << 0x10 |\n                      (uint)puVar38[(int)((int)pppVar15 + 3)] | (uint)*(byte *)&psStack_b0->fn << 8)\n          ;\n          uVar36 = (**(code **)(puVar47 + 0x88b8c))(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)unaff_s6,uVar36,0,3,\n                            (ssh_sharing_connstate *)\n                            ((uint)*(byte *)&psVar45->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 3) |\n                            (uint)*(uchar *)((int)&psVar45->sock + 2) << 8));\n          *(char *)&psVar45->fn = (char)(uVar36 >> 0x18);\n          puVar38[(int)((int)pppVar14 + 1)] = (byte)(uVar36 >> 0x10);\n          *(char *)&psStack_b0->fn = (char)(uVar36 >> 8);\n          puVar38[(int)((int)pppVar15 + 3)] = (byte)uVar36;\n          (**(code **)(puVar47 + 0x88b70))(cs_00->parent->ssh,cs_00->id,0x5a,puVar38,puVar23,0);\n          cs_00->recvlen = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))(iVar28 + 0x458c);\nLAB_00089674:\n        while (pcVar17 == (char *)0x0) {\n          (**(code **)(puVar47 + 0x88ff4))\n                    (*(int *)(puVar47 + 0x8839c) + 0x4768,*(int *)(puVar47 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar47 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                      (*(int *)(puVar47 + 0x8839c) + 0x45d8,psVar45);\n        }\n        share_disconnect(cs_00,pcVar17);\n        (**(code **)(puVar47 + 0x88394))(pcVar17);\n        cs_00->recvlen = 0;\n        goto LAB_000893ac;\n      }" { (expression_statement "unaff_s6 = (ssh_sharing_connstate *)cs_00->recvlen;" (assignment_expression "unaff_s6 = (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 (unaff_s5 = pbVar33, (int)unaff_s6 < iVar28) {\nLAB_00088fd4:\n          if (pbVar40 == (byte *)0x0) {\n            cs_00->crLine = 0x73b;\n            pbVar40 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar28 = cs_00->recvlen;\n          pbVar40 = pbVar40 + -1;\n          bVar31 = *pbVar33;\n          pbVar33 = pbVar33 + 1;\n          unaff_s6 = (ssh_sharing_connstate *)(iVar28 + 1);\n          cs_00->recvlen = (int)unaff_s6;\n          cs_00->recvbuf[iVar28] = bVar31;\n          iVar28 = cs_00->curr_packetlen;\n        }" while (parenthesized_expression "(unaff_s5 = pbVar33, (int)unaff_s6 < iVar28)" ( (comma_expression "unaff_s5 = pbVar33, (int)unaff_s6 < iVar28" (assignment_expression "unaff_s5 = pbVar33" identifier = identifier) , (binary_expression "(int)unaff_s6 < iVar28" (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier) < identifier)) )) (compound_statement "{\nLAB_00088fd4:\n          if (pbVar40 == (byte *)0x0) {\n            cs_00->crLine = 0x73b;\n            pbVar40 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar28 = cs_00->recvlen;\n          pbVar40 = pbVar40 + -1;\n          bVar31 = *pbVar33;\n          pbVar33 = pbVar33 + 1;\n          unaff_s6 = (ssh_sharing_connstate *)(iVar28 + 1);\n          cs_00->recvlen = (int)unaff_s6;\n          cs_00->recvbuf[iVar28] = bVar31;\n          iVar28 = cs_00->curr_packetlen;\n        }" { (labeled_statement "LAB_00088fd4:\n          if (pbVar40 == (byte *)0x0) {\n            cs_00->crLine = 0x73b;\n            pbVar40 = (byte *)0x0;\n            goto LAB_000890e4;\n          }" statement_identifier : (if_statement "if (pbVar40 == (byte *)0x0) {\n            cs_00->crLine = 0x73b;\n            pbVar40 = (byte *)0x0;\n            goto LAB_000890e4;\n          }" if (parenthesized_expression "(pbVar40 == (byte *)0x0)" ( (binary_expression "pbVar40 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            cs_00->crLine = 0x73b;\n            pbVar40 = (byte *)0x0;\n            goto LAB_000890e4;\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 "pbVar40 = (byte *)0x0;" (assignment_expression "pbVar40 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000890e4;" goto statement_identifier ;) }))) (expression_statement "iVar28 = cs_00->recvlen;" (assignment_expression "iVar28 = cs_00->recvlen" identifier = (field_expression "cs_00->recvlen" identifier -> field_identifier)) ;) (expression_statement "pbVar40 = pbVar40 + -1;" (assignment_expression "pbVar40 = pbVar40 + -1" identifier = (binary_expression "pbVar40 + -1" identifier + number_literal)) ;) (expression_statement "bVar31 = *pbVar33;" (assignment_expression "bVar31 = *pbVar33" identifier = (pointer_expression "*pbVar33" * identifier)) ;) (expression_statement "pbVar33 = pbVar33 + 1;" (assignment_expression "pbVar33 = pbVar33 + 1" identifier = (binary_expression "pbVar33 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s6 = (ssh_sharing_connstate *)(iVar28 + 1);" (assignment_expression "unaff_s6 = (ssh_sharing_connstate *)(iVar28 + 1)" identifier = (cast_expression "(ssh_sharing_connstate *)(iVar28 + 1)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + 1)" ( (binary_expression "iVar28 + 1" identifier + number_literal) )))) ;) (expression_statement "cs_00->recvlen = (int)unaff_s6;" (assignment_expression "cs_00->recvlen = (int)unaff_s6" (field_expression "cs_00->recvlen" identifier -> field_identifier) = (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "cs_00->recvbuf[iVar28] = bVar31;" (assignment_expression "cs_00->recvbuf[iVar28] = bVar31" (subscript_expression "cs_00->recvbuf[iVar28]" (field_expression "cs_00->recvbuf" identifier -> field_identifier) [ identifier ]) = identifier) ;) (expression_statement "iVar28 = cs_00->curr_packetlen;" (assignment_expression "iVar28 = cs_00->curr_packetlen" identifier = (field_expression "cs_00->curr_packetlen" identifier -> field_identifier)) ;) })) (expression_statement "bVar31 = cs_00->recvbuf[4];" (assignment_expression "bVar31 = cs_00->recvbuf[4]" identifier = (subscript_expression "cs_00->recvbuf[4]" (field_expression "cs_00->recvbuf" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "puVar38 = cs_00->recvbuf + 5;" (assignment_expression "puVar38 = cs_00->recvbuf + 5" identifier = (binary_expression "cs_00->recvbuf + 5" (field_expression "cs_00->recvbuf" identifier -> field_identifier) + number_literal)) ;) (expression_statement "puVar23 = (undefined1 *)((int)&unaff_s6[-1].globreq_head + 3);" (assignment_expression "puVar23 = (undefined1 *)((int)&unaff_s6[-1].globreq_head + 3)" identifier = (cast_expression "(undefined1 *)((int)&unaff_s6[-1].globreq_head + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&unaff_s6[-1].globreq_head + 3)" ( (binary_expression "(int)&unaff_s6[-1].globreq_head + 3" (cast_expression "(int)&unaff_s6[-1].globreq_head" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s6[-1].globreq_head" & (field_expression "unaff_s6[-1].globreq_head" (subscript_expression "unaff_s6[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (bVar31 != 0x5a) {\n          if (bVar31 < 0x5b) {\n            if (bVar31 != 2) {\n              if (2 < bVar31) {\n                if (bVar31 == 4) goto LAB_00089714;\n                if (bVar31 != 0x50) goto LAB_0008965c;\n                iVar28 = *(int *)(puVar47 + 0x8839c);\n                psVar39 = psVar45;\n                if ((int)puVar23 < 4) goto LAB_000896fc;\n                psVar39 = (ssh_sharing_connstate *)(*(int *)(puVar47 + 0x88acc) + 0x79c0);\n                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)&psStack_90,(int *)0x0);\n                psVar43 = psStack_90;\n                if ((iVar28 == 0) || (psStack_90 == (ssh_sharing_connstate *)0x0))\n                goto LAB_000896f8;\n                iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x30e8);\n                if (iVar28 != 0) {\n                  iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                     (psVar43,*(int *)(puVar47 + 0x8839c) + -0x317c);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psVar45 = psVar39;\n                  if (iVar28 == 0) {\n                    (*pcVar48)(psVar43);\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar43 = psStack_90;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                       (int)psStack_90 < (int)puVar23)) {\n                      psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90);\n                      iVar29 = (int)puVar23 - (int)puVar37;\n                      cVar1 = *(char *)&psStack_b0->fn;\n                      if ((iVar29 < 4) ||\n                         (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                                   (int *)&psStack_90), iVar28 == 0)) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if ((int)psVar43 < (int)&unaff_s6[-1].globreq_head) {\n                          if (iVar29 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar35 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        psVar43 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if (-1 < (int)psVar43) {\n                          pcVar48 = *(code **)(puVar47 + 0x8844c);\n                          if ((int)&unaff_s6[-1].globreq_head <= (int)psVar43) goto LAB_00089700;\nLAB_000892a4:\n                          iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,\n                                                   (char **)&psStack_90,(int *)0x0);\n                          psVar45 = psStack_90;\n                          if ((iVar28 == 0) ||\n                             (psVar39 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_00089eec;\n                          puVar44 = puVar38 + (int)psVar43;\n                          bVar31 = *puVar44;\n                          bVar2 = puVar44[1];\n                          bVar3 = puVar44[3];\n                          bVar4 = puVar44[2];\n                          psStack_90 = (ssh_sharing_connstate *)\n                                       (**(code **)(puVar47 + 0x883c0))(psStack_90);\n                          psStack_8c = (ssh_sharing_connstate *)\n                                       ((uint)bVar31 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                       (uint)bVar4 << 8);\n                          unaff_s6 = (ssh_sharing_connstate *)\n                                     find234(cs_00->forwardings,&psStack_90,(cmpfn234)0x0);\n                          (**(code **)(puVar47 + 0x88394))(psStack_90);\n                          if (unaff_s6 == (ssh_sharing_connstate *)0x0) {\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                            if (cVar1 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            cVar1 = *(char *)&psStack_b0->fn;\n                            *(undefined1 *)&psStack_b0->fn = 1;\n                            if (cVar1 == '\0') {\n                              iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar28 = 0;\n                            }\n                            (**(code **)(puVar47 + 0x88b70))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                            (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\nLAB_00089394:\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                          }\n                          (*pcVar48)(psVar45);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar48)();\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar39 = psVar45;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       ((int)psStack_90 < (int)puVar23)) {\n                      if (puVar38[(int)psStack_90] == '\0') goto LAB_000893a4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar47 + 0x88394))(psVar43);\n                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                psVar45 = psStack_90;\n                if (((iVar28 == 0) || ((int)psStack_90 < 0)) ||\n                   (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                   (int)puVar23 <= (int)psStack_90)) goto LAB_000896f8;\n                puVar44 = puVar38 + (int)psStack_90;\n                iVar29 = (int)puVar23 - (int)puVar37;\n                psStack_b0 = (ssh_sharing_connstate *)(uint)*puVar44;\n                if ((iVar29 < 4) ||\n                   (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                             (int *)&psStack_90), iVar28 == 0)) {\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\n                    if (iVar29 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar35 = 0x55e;\nLAB_00089ef0:\n                    pcVar48 = *(code **)(puVar47 + 0x88ff4);\n                    (*pcVar48)(*(int *)(puVar47 + 0x8839c) + 0x457c,\n                               *(int *)(puVar47 + 0x8839c) + 0x43dc,uVar35,\n                               *(int *)(puVar47 + 0x8839c) + 0x4870);\n                    psVar45 = psVar39;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                }\n                else {\n                  psVar45 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < 0) goto LAB_000896fc;\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\nLAB_0008a05c:\n                    iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)&psStack_90,\n                                             (int *)0x0);\n                    psVar43 = psStack_90;\n                    if ((iVar28 == 0) ||\n                       (unaff_s6 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_0008a304;\n                    puVar46 = puVar38 + (int)psVar45;\n                    psVar45 = (ssh_sharing_connstate *)\n                              ((uint)*puVar46 << 0x18 | (uint)puVar46[3] | (uint)puVar46[1] << 0x10\n                              | (uint)puVar46[2] << 8);\n                    iVar28 = (**(code **)(puVar47 + 0x88ba0))\n                                       (cs_00->parent->ssh,psStack_90,psVar45,cs_00);\n                    if (iVar28 == 0) {\n                      if (psStack_b0 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar31 = *puVar44;\n                      *puVar44 = 1;\n                      if (bVar31 == 0) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar28 = 0;\n                      }\n                      (**(code **)(puVar47 + 0x88b70))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                      e_00 = (share_forwarding *)(**(code **)(puVar47 + 0x88390))(1,0xc);\n                      pcVar17 = (char *)(**(code **)(puVar47 + 0x883c0))(psVar43);\n                      t = cs_00->forwardings;\n                      e_00->host = pcVar17;\n                      e_00->port = (int)psVar45;\n                      e_00->active = 0;\n                      psVar25 = (share_forwarding *)add234(t,e_00);\n                      if (e_00 == psVar25) {\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                        psVar26 = (share_globreq *)(**(code **)(puVar47 + 0x88390))(1,0x10);\n                        psVar30 = cs_00->globreq_tail;\n                        psVar26->next = (share_globreq *)0x0;\n                        if (psVar30 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar26;\n                        }\n                        else {\n                          psVar30->next = psVar26;\n                        }\n                        psVar26->fwd = e_00;\n                        psVar26->type = 0;\n                        psVar26->want_reply = (int)psStack_b0;\n                      }\n                      else {\n                        (**(code **)(puVar47 + 0x88394))(e_00);\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(puVar47 + 0x88394))(psVar43);\n                    cs_00->recvlen = 0;\n                    unaff_s6 = psVar43;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                pcVar17 = (char *)(*pcVar48)(iVar28 + 0x455c);\n                psVar45 = psVar39;\n                goto LAB_00089674;\n              }\n              if (bVar31 != 1) {\nLAB_0008965c:\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x474c,bVar31);\n                goto LAB_00089674;\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_000893ac;\n            }\nLAB_00089714:\n            puVar22 = (undefined1 *)((int)&unaff_s6[-1].forwardings + 3);\n            if ((bVar31 == 0x62) &&\n               (psVar45 = *(ssh_sharing_connstate **)(puVar47 + 0x88acc), 3 < (int)puVar22)) {\n              psVar45 = (ssh_sharing_connstate *)(psVar45[1].recvbuf + 0x394c);\n              iVar28 = getstring_inner(cs_00->recvbuf + 9,(int)puVar22,(char **)&psStack_90,\n                                       (int *)0x0);\n              psVar39 = psStack_90;\n              if ((iVar28 != 0) && (psStack_90 != (ssh_sharing_connstate *)0x0)) {\n                psStack_b0 = psStack_90;\n                iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x363c);\n                if ((iVar28 == 0) &&\n                   (iVar28 = (**(code **)(puVar47 + 0x888c4))(cs_00->parent->ssh), iVar28 == 0)) {\n                  ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  ppsStack_88 = ppsVar19;\n                  puVar27 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                  if (puVar27 == (undefined4 *)0x0) {\n                    pcVar48 = *(code **)(puVar47 + 0x8844c);\n                    iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    pcVar17 = (char *)(*pcVar48)(iVar28,ppsVar19);\n                    share_disconnect(cs_00,pcVar17);\n                    (**(code **)(puVar47 + 0x88394))(pcVar17);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_68 = (plug_function_table *)*puVar27;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar28 = *(int *)(puVar47 + 0x8839c);\n                iVar29 = (**(code **)(puVar47 + 0x8953c))(psVar39,iVar28 + -0x36a0);\n                if (iVar29 != 0) {\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  psStack_b0 = psVar39;\n                  goto LAB_00089cc8;\n                }\n                ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                (**(code **)(puVar47 + 0x88394))(psVar39);\n                ppsStack_88 = ppsVar19;\n                psStack_b0 = (ssh_sharing_connstate *)\n                             find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                if (psStack_b0 == (ssh_sharing_connstate *)0x0) {\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)puVar23 < 0x11) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                uVar5 = cs_00->recvbuf[0x14];\n                puVar22 = (undefined1 *)((int)&unaff_s6[-1].channels_by_server + 2);\n                uVar6 = cs_00->recvbuf[0x15];\n                if ((int)puVar22 < 4) {\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(0);\n                  (**(code **)(puVar47 + 0x88394))(0);\nLAB_0008a36c:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar29 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)&psStack_90,\n                                           (int *)0x0);\n                  psVar39 = psStack_90;\n                  if (iVar29 == 0) {\n                    psVar39 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(psVar39);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  iVar20 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_0008a36c;\n                }\n                puVar44 = (uchar *)((int)&psVar39->crLine + 1);\n                iVar20 = (int)puVar23 - (int)puVar44;\n                unaff_s6 = (ssh_sharing_connstate *)0x0;\n                if (iVar20 < 4) {\nLAB_00089ec4:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar21 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)&psStack_90,\n                                           (int *)0x0);\n                  unaff_s6 = psStack_90;\n                  if (iVar21 == 0) {\n                    unaff_s6 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar20 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_00089ec4;\n                }\n                if ((int)puVar23 <= (int)(puVar44 + (int)psVar39 + 3)) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar47 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                puVar38 = puVar38 + (int)(puVar44 + (int)psVar39);\n                if (-1 < iVar29) {\n                  pcVar48 = *(code **)(puVar47 + 0x88b94);\n                  uVar7 = *puVar38;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar38[1];\n                  uVar8 = puVar38[3];\n                  uVar9 = puVar38[2];\n                  psStack_b0->got_verstring = iVar29;\n                  iVar20 = (*pcVar48)(unaff_s6,psStack_b0->recvbuf);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psStack_b0->curr_packetlen = iVar20;\n                  (*pcVar48)(unaff_s6);\n                  iVar29 = (**(code **)(puVar47 + 0x88b98))\n                                     (cs_00->parent->ssh,iVar29,cs_00,psStack_b0);\n                  psStack_b0->sent_verstring = iVar29;\n                  *(uint *)(psStack_b0->recvbuf + 4) = (uint)bVar13;\n                  psVar45 = (ssh_sharing_connstate *)\n                            (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0xc));\n                  unaff_s6 = (ssh_sharing_connstate *)\n                             (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0x10));\n                  puVar38 = (uchar *)((int)&psVar45->curr_packetlen + 1) + (int)unaff_s6;\n                  puVar22 = (undefined1 *)(**(code **)(puVar47 + 0x88390))(puVar38,1);\n                  puVar22[4] = 0;\n                  puVar22[5] = 0;\n                  uVar32 = *(uint *)(iVar28 + -0x36a0);\n                  uVar10 = *(undefined1 *)(iVar28 + -0x369c);\n                  uVar11 = *(undefined1 *)(iVar28 + -0x369b);\n                  uVar12 = *(undefined1 *)(iVar28 + -0x369a);\n                  puVar22[3] = (char)ppsVar19;\n                  *puVar22 = (char)((uint)ppsVar19 >> 0x18);\n                  puVar22[1] = (char)((uint)ppsVar19 >> 0x10);\n                  puVar22[2] = (char)((uint)ppsVar19 >> 8);\n                  puVar22[7] = 7;\n                  puVar22[6] = 0;\n                  puVar23 = puVar22 + 8;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & -1 << (4 - uVar36) * 8 | uVar32 >> uVar36 * 8;\n                  puVar23 = puVar22 + 0xb;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & 0xffffffffU >> (uVar36 + 1) * 8 |\n                       uVar32 << (3 - uVar36) * 8;\n                  puVar22[0xc] = uVar10;\n                  puVar22[0xd] = uVar11;\n                  puVar22[0xe] = uVar12;\n                  puVar22[0x10] = bVar13;\n                  puVar22[0x11] = (char)((uint)psVar45 >> 0x18);\n                  puVar22[0x12] = (char)((uint)psVar45 >> 0x10);\n                  puVar22[0x13] = (char)((uint)psVar45 >> 8);\n                  puVar22[0x14] = (char)psVar45;\n                  pcVar48 = *(code **)(puVar47 + 0x89610);\n                  puVar22[0xf] = uVar5 != '\0';\n                  (*pcVar48)(puVar22 + 0x15,*(undefined4 *)(psStack_b0->sent_verstring + 0xc),\n                             psVar45);\n                  puVar23 = puVar22 + (int)psVar45;\n                  puVar23[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar23[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar23[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar23[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar47 + 0x89610))\n                            (puVar22 + (int)((int)&psVar45->got_verstring + 1),\n                             *(undefined4 *)(psStack_b0->sent_verstring + 0x10),unaff_s6);\n                  puVar23 = puVar22 + (int)(unaff_s6->recvbuf + (int)(psVar45->recvbuf + -0x40));\n                  puVar23[0x1c] = uVar8;\n                  puVar23[0x19] = uVar7;\n                  puVar23[0x1a] = uVar6;\n                  puVar23[0x1b] = uVar9;\n                  (**(code **)(puVar47 + 0x88b70))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar22,puVar38,0);\n                  (**(code **)(puVar47 + 0x88394))(puVar22);\n                  cs_00->recvlen = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar47 + 0x88b70))(cs_00->parent->ssh,cs_00->id,bVar31,puVar38,puVar23,0);\n            if ((bVar31 == 0x61) && (3 < (int)puVar23)) {\n              ppsStack_88 = *(Socket *)(cs_00->recvbuf + 5);\n              psVar24 = (share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n              if (psVar24 != (share_channel *)0x0) {\n                if (psVar24->state == 2) {\n                  (**(code **)(puVar47 + 0x88b74))(cs_00->parent->ssh,psVar24->upstream_id);\n                  share_remove_channel(cs_00,psVar24);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar24->state = 1;\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar31 == 0x5c) {\n              if (3 < (int)puVar23) {\n                psVar45 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                unaff_s6 = (ssh_sharing_connstate *)&psStack_90;\n                psStack_90 = psVar45;\n                e = find234(cs_00->halfchannels,unaff_s6,(cmpfn234)0x0);\n                if (e == (void *)0x0) {\n                  psStack_8c = psVar45;\n                  xc_00 = (share_xchannel *)\n                          find234(cs_00->xchannels_by_server,unaff_s6,(cmpfn234)0x0);\n                  if (xc_00 == (share_xchannel *)0x0) {\n                    pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                                (*(int *)(puVar47 + 0x8839c) + 0x4680,psVar45);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(cs_00,xc_00);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar18 = cs_00->parent;\n                  uVar35 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar47 + 0x88b70))(psVar18->ssh,cs_00->id,uVar35,puVar38,puVar23,0);\n                  del234(cs_00->halfchannels,e);\n                  (**(code **)(puVar47 + 0x88394))(e);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }\n              pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar31) {\n              if (100 < bVar31) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)puVar23 < 0x10) {\n              pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar36 = (uint)(cs_00->recvbuf + 5) & 3;\n            upstream_id = *(uint *)(cs_00->recvbuf + 9);\n            uVar32 = (uint)(cs_00->recvbuf + 8) & 3;\n            psVar45 = (ssh_sharing_connstate *)\n                      ((*(int *)(cs_00->recvbuf + 5 + -uVar36) << uVar36 * 8 |\n                       (uint)psVar45 & 0xffffffffU >> (4 - uVar36) * 8) & -1 << (uVar32 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar32) >> (3 - uVar32) * 8);\n            psStack_90 = psVar45;\n            e = find234(cs_00->halfchannels,&psStack_90,(cmpfn234)0x0);\n            if (e == (void *)0x0) {\n              psStack_8c = psVar45;\n              unaff_s6 = (ssh_sharing_connstate *)\n                         find234(cs_00->xchannels_by_server,&psStack_90,(cmpfn234)0x0);\n              if (unaff_s6 == (ssh_sharing_connstate *)0x0) goto LAB_0008a14c;\n              server_id = unaff_s6->fn;\n            }\n            else {\n              unaff_s6 = (ssh_sharing_connstate *)0x0;\n              server_id = (plug_function_table *)\n                          (**(code **)(puVar47 + 0x88b8c))(cs_00->parent->ssh,cs_00);\n            }\n            cs_00->recvbuf[0xc] = (uchar)server_id;\n            cs_00->recvbuf[9] = (uchar)((uint)server_id >> 0x18);\n            cs_00->recvbuf[10] = (uchar)((uint)server_id >> 0x10);\n            cs_00->recvbuf[0xb] = (uchar)((uint)server_id >> 8);\n            uVar36 = (uint)(cs_00->recvbuf + 0x11) & 3;\n            uVar32 = (uint)(cs_00->recvbuf + 0x14) & 3;\n            psVar24 = share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)server_id\n                                        ,(int)psVar45,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar36) << uVar36 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar36) * 8) &\n                                         -1 << (uVar32 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar32) >>\n                                        (3 - uVar32) * 8));\n            if (e != (void *)0x0) {\n              psVar18 = cs_00->parent;\n              uVar35 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (ssh_sharing_connstate *)0x0) {\n              uVar36 = *(uint *)(cs_00->recvbuf + 0xd);\n              if (uVar36 < 0x100) {\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x4614,uVar36);\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(cs_00,(share_xchannel *)unaff_s6,psVar24,uVar36);\n              share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,unaff_s6);\n              cs_00->recvlen = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          cs_00->recvlen = 0;\n          goto LAB_000893ac;\n        }" if (parenthesized_expression "(bVar31 != 0x5a)" ( (binary_expression "bVar31 != 0x5a" identifier != number_literal) )) (compound_statement "{\n          if (bVar31 < 0x5b) {\n            if (bVar31 != 2) {\n              if (2 < bVar31) {\n                if (bVar31 == 4) goto LAB_00089714;\n                if (bVar31 != 0x50) goto LAB_0008965c;\n                iVar28 = *(int *)(puVar47 + 0x8839c);\n                psVar39 = psVar45;\n                if ((int)puVar23 < 4) goto LAB_000896fc;\n                psVar39 = (ssh_sharing_connstate *)(*(int *)(puVar47 + 0x88acc) + 0x79c0);\n                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)&psStack_90,(int *)0x0);\n                psVar43 = psStack_90;\n                if ((iVar28 == 0) || (psStack_90 == (ssh_sharing_connstate *)0x0))\n                goto LAB_000896f8;\n                iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x30e8);\n                if (iVar28 != 0) {\n                  iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                     (psVar43,*(int *)(puVar47 + 0x8839c) + -0x317c);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psVar45 = psVar39;\n                  if (iVar28 == 0) {\n                    (*pcVar48)(psVar43);\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar43 = psStack_90;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                       (int)psStack_90 < (int)puVar23)) {\n                      psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90);\n                      iVar29 = (int)puVar23 - (int)puVar37;\n                      cVar1 = *(char *)&psStack_b0->fn;\n                      if ((iVar29 < 4) ||\n                         (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                                   (int *)&psStack_90), iVar28 == 0)) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if ((int)psVar43 < (int)&unaff_s6[-1].globreq_head) {\n                          if (iVar29 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar35 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        psVar43 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if (-1 < (int)psVar43) {\n                          pcVar48 = *(code **)(puVar47 + 0x8844c);\n                          if ((int)&unaff_s6[-1].globreq_head <= (int)psVar43) goto LAB_00089700;\nLAB_000892a4:\n                          iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,\n                                                   (char **)&psStack_90,(int *)0x0);\n                          psVar45 = psStack_90;\n                          if ((iVar28 == 0) ||\n                             (psVar39 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_00089eec;\n                          puVar44 = puVar38 + (int)psVar43;\n                          bVar31 = *puVar44;\n                          bVar2 = puVar44[1];\n                          bVar3 = puVar44[3];\n                          bVar4 = puVar44[2];\n                          psStack_90 = (ssh_sharing_connstate *)\n                                       (**(code **)(puVar47 + 0x883c0))(psStack_90);\n                          psStack_8c = (ssh_sharing_connstate *)\n                                       ((uint)bVar31 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                       (uint)bVar4 << 8);\n                          unaff_s6 = (ssh_sharing_connstate *)\n                                     find234(cs_00->forwardings,&psStack_90,(cmpfn234)0x0);\n                          (**(code **)(puVar47 + 0x88394))(psStack_90);\n                          if (unaff_s6 == (ssh_sharing_connstate *)0x0) {\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                            if (cVar1 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            cVar1 = *(char *)&psStack_b0->fn;\n                            *(undefined1 *)&psStack_b0->fn = 1;\n                            if (cVar1 == '\0') {\n                              iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar28 = 0;\n                            }\n                            (**(code **)(puVar47 + 0x88b70))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                            (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\nLAB_00089394:\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                          }\n                          (*pcVar48)(psVar45);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar48)();\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar39 = psVar45;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       ((int)psStack_90 < (int)puVar23)) {\n                      if (puVar38[(int)psStack_90] == '\0') goto LAB_000893a4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar47 + 0x88394))(psVar43);\n                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                psVar45 = psStack_90;\n                if (((iVar28 == 0) || ((int)psStack_90 < 0)) ||\n                   (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                   (int)puVar23 <= (int)psStack_90)) goto LAB_000896f8;\n                puVar44 = puVar38 + (int)psStack_90;\n                iVar29 = (int)puVar23 - (int)puVar37;\n                psStack_b0 = (ssh_sharing_connstate *)(uint)*puVar44;\n                if ((iVar29 < 4) ||\n                   (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                             (int *)&psStack_90), iVar28 == 0)) {\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\n                    if (iVar29 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar35 = 0x55e;\nLAB_00089ef0:\n                    pcVar48 = *(code **)(puVar47 + 0x88ff4);\n                    (*pcVar48)(*(int *)(puVar47 + 0x8839c) + 0x457c,\n                               *(int *)(puVar47 + 0x8839c) + 0x43dc,uVar35,\n                               *(int *)(puVar47 + 0x8839c) + 0x4870);\n                    psVar45 = psVar39;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                }\n                else {\n                  psVar45 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < 0) goto LAB_000896fc;\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\nLAB_0008a05c:\n                    iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)&psStack_90,\n                                             (int *)0x0);\n                    psVar43 = psStack_90;\n                    if ((iVar28 == 0) ||\n                       (unaff_s6 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_0008a304;\n                    puVar46 = puVar38 + (int)psVar45;\n                    psVar45 = (ssh_sharing_connstate *)\n                              ((uint)*puVar46 << 0x18 | (uint)puVar46[3] | (uint)puVar46[1] << 0x10\n                              | (uint)puVar46[2] << 8);\n                    iVar28 = (**(code **)(puVar47 + 0x88ba0))\n                                       (cs_00->parent->ssh,psStack_90,psVar45,cs_00);\n                    if (iVar28 == 0) {\n                      if (psStack_b0 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar31 = *puVar44;\n                      *puVar44 = 1;\n                      if (bVar31 == 0) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar28 = 0;\n                      }\n                      (**(code **)(puVar47 + 0x88b70))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                      e_00 = (share_forwarding *)(**(code **)(puVar47 + 0x88390))(1,0xc);\n                      pcVar17 = (char *)(**(code **)(puVar47 + 0x883c0))(psVar43);\n                      t = cs_00->forwardings;\n                      e_00->host = pcVar17;\n                      e_00->port = (int)psVar45;\n                      e_00->active = 0;\n                      psVar25 = (share_forwarding *)add234(t,e_00);\n                      if (e_00 == psVar25) {\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                        psVar26 = (share_globreq *)(**(code **)(puVar47 + 0x88390))(1,0x10);\n                        psVar30 = cs_00->globreq_tail;\n                        psVar26->next = (share_globreq *)0x0;\n                        if (psVar30 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar26;\n                        }\n                        else {\n                          psVar30->next = psVar26;\n                        }\n                        psVar26->fwd = e_00;\n                        psVar26->type = 0;\n                        psVar26->want_reply = (int)psStack_b0;\n                      }\n                      else {\n                        (**(code **)(puVar47 + 0x88394))(e_00);\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(puVar47 + 0x88394))(psVar43);\n                    cs_00->recvlen = 0;\n                    unaff_s6 = psVar43;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                pcVar17 = (char *)(*pcVar48)(iVar28 + 0x455c);\n                psVar45 = psVar39;\n                goto LAB_00089674;\n              }\n              if (bVar31 != 1) {\nLAB_0008965c:\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x474c,bVar31);\n                goto LAB_00089674;\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_000893ac;\n            }\nLAB_00089714:\n            puVar22 = (undefined1 *)((int)&unaff_s6[-1].forwardings + 3);\n            if ((bVar31 == 0x62) &&\n               (psVar45 = *(ssh_sharing_connstate **)(puVar47 + 0x88acc), 3 < (int)puVar22)) {\n              psVar45 = (ssh_sharing_connstate *)(psVar45[1].recvbuf + 0x394c);\n              iVar28 = getstring_inner(cs_00->recvbuf + 9,(int)puVar22,(char **)&psStack_90,\n                                       (int *)0x0);\n              psVar39 = psStack_90;\n              if ((iVar28 != 0) && (psStack_90 != (ssh_sharing_connstate *)0x0)) {\n                psStack_b0 = psStack_90;\n                iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x363c);\n                if ((iVar28 == 0) &&\n                   (iVar28 = (**(code **)(puVar47 + 0x888c4))(cs_00->parent->ssh), iVar28 == 0)) {\n                  ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  ppsStack_88 = ppsVar19;\n                  puVar27 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                  if (puVar27 == (undefined4 *)0x0) {\n                    pcVar48 = *(code **)(puVar47 + 0x8844c);\n                    iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    pcVar17 = (char *)(*pcVar48)(iVar28,ppsVar19);\n                    share_disconnect(cs_00,pcVar17);\n                    (**(code **)(puVar47 + 0x88394))(pcVar17);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_68 = (plug_function_table *)*puVar27;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar28 = *(int *)(puVar47 + 0x8839c);\n                iVar29 = (**(code **)(puVar47 + 0x8953c))(psVar39,iVar28 + -0x36a0);\n                if (iVar29 != 0) {\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  psStack_b0 = psVar39;\n                  goto LAB_00089cc8;\n                }\n                ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                (**(code **)(puVar47 + 0x88394))(psVar39);\n                ppsStack_88 = ppsVar19;\n                psStack_b0 = (ssh_sharing_connstate *)\n                             find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                if (psStack_b0 == (ssh_sharing_connstate *)0x0) {\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)puVar23 < 0x11) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                uVar5 = cs_00->recvbuf[0x14];\n                puVar22 = (undefined1 *)((int)&unaff_s6[-1].channels_by_server + 2);\n                uVar6 = cs_00->recvbuf[0x15];\n                if ((int)puVar22 < 4) {\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(0);\n                  (**(code **)(puVar47 + 0x88394))(0);\nLAB_0008a36c:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar29 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)&psStack_90,\n                                           (int *)0x0);\n                  psVar39 = psStack_90;\n                  if (iVar29 == 0) {\n                    psVar39 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(psVar39);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  iVar20 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_0008a36c;\n                }\n                puVar44 = (uchar *)((int)&psVar39->crLine + 1);\n                iVar20 = (int)puVar23 - (int)puVar44;\n                unaff_s6 = (ssh_sharing_connstate *)0x0;\n                if (iVar20 < 4) {\nLAB_00089ec4:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar21 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)&psStack_90,\n                                           (int *)0x0);\n                  unaff_s6 = psStack_90;\n                  if (iVar21 == 0) {\n                    unaff_s6 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar20 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_00089ec4;\n                }\n                if ((int)puVar23 <= (int)(puVar44 + (int)psVar39 + 3)) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar47 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                puVar38 = puVar38 + (int)(puVar44 + (int)psVar39);\n                if (-1 < iVar29) {\n                  pcVar48 = *(code **)(puVar47 + 0x88b94);\n                  uVar7 = *puVar38;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar38[1];\n                  uVar8 = puVar38[3];\n                  uVar9 = puVar38[2];\n                  psStack_b0->got_verstring = iVar29;\n                  iVar20 = (*pcVar48)(unaff_s6,psStack_b0->recvbuf);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psStack_b0->curr_packetlen = iVar20;\n                  (*pcVar48)(unaff_s6);\n                  iVar29 = (**(code **)(puVar47 + 0x88b98))\n                                     (cs_00->parent->ssh,iVar29,cs_00,psStack_b0);\n                  psStack_b0->sent_verstring = iVar29;\n                  *(uint *)(psStack_b0->recvbuf + 4) = (uint)bVar13;\n                  psVar45 = (ssh_sharing_connstate *)\n                            (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0xc));\n                  unaff_s6 = (ssh_sharing_connstate *)\n                             (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0x10));\n                  puVar38 = (uchar *)((int)&psVar45->curr_packetlen + 1) + (int)unaff_s6;\n                  puVar22 = (undefined1 *)(**(code **)(puVar47 + 0x88390))(puVar38,1);\n                  puVar22[4] = 0;\n                  puVar22[5] = 0;\n                  uVar32 = *(uint *)(iVar28 + -0x36a0);\n                  uVar10 = *(undefined1 *)(iVar28 + -0x369c);\n                  uVar11 = *(undefined1 *)(iVar28 + -0x369b);\n                  uVar12 = *(undefined1 *)(iVar28 + -0x369a);\n                  puVar22[3] = (char)ppsVar19;\n                  *puVar22 = (char)((uint)ppsVar19 >> 0x18);\n                  puVar22[1] = (char)((uint)ppsVar19 >> 0x10);\n                  puVar22[2] = (char)((uint)ppsVar19 >> 8);\n                  puVar22[7] = 7;\n                  puVar22[6] = 0;\n                  puVar23 = puVar22 + 8;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & -1 << (4 - uVar36) * 8 | uVar32 >> uVar36 * 8;\n                  puVar23 = puVar22 + 0xb;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & 0xffffffffU >> (uVar36 + 1) * 8 |\n                       uVar32 << (3 - uVar36) * 8;\n                  puVar22[0xc] = uVar10;\n                  puVar22[0xd] = uVar11;\n                  puVar22[0xe] = uVar12;\n                  puVar22[0x10] = bVar13;\n                  puVar22[0x11] = (char)((uint)psVar45 >> 0x18);\n                  puVar22[0x12] = (char)((uint)psVar45 >> 0x10);\n                  puVar22[0x13] = (char)((uint)psVar45 >> 8);\n                  puVar22[0x14] = (char)psVar45;\n                  pcVar48 = *(code **)(puVar47 + 0x89610);\n                  puVar22[0xf] = uVar5 != '\0';\n                  (*pcVar48)(puVar22 + 0x15,*(undefined4 *)(psStack_b0->sent_verstring + 0xc),\n                             psVar45);\n                  puVar23 = puVar22 + (int)psVar45;\n                  puVar23[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar23[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar23[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar23[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar47 + 0x89610))\n                            (puVar22 + (int)((int)&psVar45->got_verstring + 1),\n                             *(undefined4 *)(psStack_b0->sent_verstring + 0x10),unaff_s6);\n                  puVar23 = puVar22 + (int)(unaff_s6->recvbuf + (int)(psVar45->recvbuf + -0x40));\n                  puVar23[0x1c] = uVar8;\n                  puVar23[0x19] = uVar7;\n                  puVar23[0x1a] = uVar6;\n                  puVar23[0x1b] = uVar9;\n                  (**(code **)(puVar47 + 0x88b70))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar22,puVar38,0);\n                  (**(code **)(puVar47 + 0x88394))(puVar22);\n                  cs_00->recvlen = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar47 + 0x88b70))(cs_00->parent->ssh,cs_00->id,bVar31,puVar38,puVar23,0);\n            if ((bVar31 == 0x61) && (3 < (int)puVar23)) {\n              ppsStack_88 = *(Socket *)(cs_00->recvbuf + 5);\n              psVar24 = (share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n              if (psVar24 != (share_channel *)0x0) {\n                if (psVar24->state == 2) {\n                  (**(code **)(puVar47 + 0x88b74))(cs_00->parent->ssh,psVar24->upstream_id);\n                  share_remove_channel(cs_00,psVar24);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar24->state = 1;\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar31 == 0x5c) {\n              if (3 < (int)puVar23) {\n                psVar45 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                unaff_s6 = (ssh_sharing_connstate *)&psStack_90;\n                psStack_90 = psVar45;\n                e = find234(cs_00->halfchannels,unaff_s6,(cmpfn234)0x0);\n                if (e == (void *)0x0) {\n                  psStack_8c = psVar45;\n                  xc_00 = (share_xchannel *)\n                          find234(cs_00->xchannels_by_server,unaff_s6,(cmpfn234)0x0);\n                  if (xc_00 == (share_xchannel *)0x0) {\n                    pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                                (*(int *)(puVar47 + 0x8839c) + 0x4680,psVar45);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(cs_00,xc_00);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar18 = cs_00->parent;\n                  uVar35 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar47 + 0x88b70))(psVar18->ssh,cs_00->id,uVar35,puVar38,puVar23,0);\n                  del234(cs_00->halfchannels,e);\n                  (**(code **)(puVar47 + 0x88394))(e);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }\n              pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar31) {\n              if (100 < bVar31) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)puVar23 < 0x10) {\n              pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar36 = (uint)(cs_00->recvbuf + 5) & 3;\n            upstream_id = *(uint *)(cs_00->recvbuf + 9);\n            uVar32 = (uint)(cs_00->recvbuf + 8) & 3;\n            psVar45 = (ssh_sharing_connstate *)\n                      ((*(int *)(cs_00->recvbuf + 5 + -uVar36) << uVar36 * 8 |\n                       (uint)psVar45 & 0xffffffffU >> (4 - uVar36) * 8) & -1 << (uVar32 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar32) >> (3 - uVar32) * 8);\n            psStack_90 = psVar45;\n            e = find234(cs_00->halfchannels,&psStack_90,(cmpfn234)0x0);\n            if (e == (void *)0x0) {\n              psStack_8c = psVar45;\n              unaff_s6 = (ssh_sharing_connstate *)\n                         find234(cs_00->xchannels_by_server,&psStack_90,(cmpfn234)0x0);\n              if (unaff_s6 == (ssh_sharing_connstate *)0x0) goto LAB_0008a14c;\n              server_id = unaff_s6->fn;\n            }\n            else {\n              unaff_s6 = (ssh_sharing_connstate *)0x0;\n              server_id = (plug_function_table *)\n                          (**(code **)(puVar47 + 0x88b8c))(cs_00->parent->ssh,cs_00);\n            }\n            cs_00->recvbuf[0xc] = (uchar)server_id;\n            cs_00->recvbuf[9] = (uchar)((uint)server_id >> 0x18);\n            cs_00->recvbuf[10] = (uchar)((uint)server_id >> 0x10);\n            cs_00->recvbuf[0xb] = (uchar)((uint)server_id >> 8);\n            uVar36 = (uint)(cs_00->recvbuf + 0x11) & 3;\n            uVar32 = (uint)(cs_00->recvbuf + 0x14) & 3;\n            psVar24 = share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)server_id\n                                        ,(int)psVar45,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar36) << uVar36 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar36) * 8) &\n                                         -1 << (uVar32 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar32) >>\n                                        (3 - uVar32) * 8));\n            if (e != (void *)0x0) {\n              psVar18 = cs_00->parent;\n              uVar35 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (ssh_sharing_connstate *)0x0) {\n              uVar36 = *(uint *)(cs_00->recvbuf + 0xd);\n              if (uVar36 < 0x100) {\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x4614,uVar36);\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(cs_00,(share_xchannel *)unaff_s6,psVar24,uVar36);\n              share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,unaff_s6);\n              cs_00->recvlen = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          cs_00->recvlen = 0;\n          goto LAB_000893ac;\n        }" { (if_statement "if (bVar31 < 0x5b) {\n            if (bVar31 != 2) {\n              if (2 < bVar31) {\n                if (bVar31 == 4) goto LAB_00089714;\n                if (bVar31 != 0x50) goto LAB_0008965c;\n                iVar28 = *(int *)(puVar47 + 0x8839c);\n                psVar39 = psVar45;\n                if ((int)puVar23 < 4) goto LAB_000896fc;\n                psVar39 = (ssh_sharing_connstate *)(*(int *)(puVar47 + 0x88acc) + 0x79c0);\n                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)&psStack_90,(int *)0x0);\n                psVar43 = psStack_90;\n                if ((iVar28 == 0) || (psStack_90 == (ssh_sharing_connstate *)0x0))\n                goto LAB_000896f8;\n                iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x30e8);\n                if (iVar28 != 0) {\n                  iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                     (psVar43,*(int *)(puVar47 + 0x8839c) + -0x317c);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psVar45 = psVar39;\n                  if (iVar28 == 0) {\n                    (*pcVar48)(psVar43);\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar43 = psStack_90;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                       (int)psStack_90 < (int)puVar23)) {\n                      psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90);\n                      iVar29 = (int)puVar23 - (int)puVar37;\n                      cVar1 = *(char *)&psStack_b0->fn;\n                      if ((iVar29 < 4) ||\n                         (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                                   (int *)&psStack_90), iVar28 == 0)) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if ((int)psVar43 < (int)&unaff_s6[-1].globreq_head) {\n                          if (iVar29 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar35 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        psVar43 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if (-1 < (int)psVar43) {\n                          pcVar48 = *(code **)(puVar47 + 0x8844c);\n                          if ((int)&unaff_s6[-1].globreq_head <= (int)psVar43) goto LAB_00089700;\nLAB_000892a4:\n                          iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,\n                                                   (char **)&psStack_90,(int *)0x0);\n                          psVar45 = psStack_90;\n                          if ((iVar28 == 0) ||\n                             (psVar39 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_00089eec;\n                          puVar44 = puVar38 + (int)psVar43;\n                          bVar31 = *puVar44;\n                          bVar2 = puVar44[1];\n                          bVar3 = puVar44[3];\n                          bVar4 = puVar44[2];\n                          psStack_90 = (ssh_sharing_connstate *)\n                                       (**(code **)(puVar47 + 0x883c0))(psStack_90);\n                          psStack_8c = (ssh_sharing_connstate *)\n                                       ((uint)bVar31 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                       (uint)bVar4 << 8);\n                          unaff_s6 = (ssh_sharing_connstate *)\n                                     find234(cs_00->forwardings,&psStack_90,(cmpfn234)0x0);\n                          (**(code **)(puVar47 + 0x88394))(psStack_90);\n                          if (unaff_s6 == (ssh_sharing_connstate *)0x0) {\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                            if (cVar1 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            cVar1 = *(char *)&psStack_b0->fn;\n                            *(undefined1 *)&psStack_b0->fn = 1;\n                            if (cVar1 == '\0') {\n                              iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar28 = 0;\n                            }\n                            (**(code **)(puVar47 + 0x88b70))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                            (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\nLAB_00089394:\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                          }\n                          (*pcVar48)(psVar45);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar48)();\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar39 = psVar45;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       ((int)psStack_90 < (int)puVar23)) {\n                      if (puVar38[(int)psStack_90] == '\0') goto LAB_000893a4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar47 + 0x88394))(psVar43);\n                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                psVar45 = psStack_90;\n                if (((iVar28 == 0) || ((int)psStack_90 < 0)) ||\n                   (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                   (int)puVar23 <= (int)psStack_90)) goto LAB_000896f8;\n                puVar44 = puVar38 + (int)psStack_90;\n                iVar29 = (int)puVar23 - (int)puVar37;\n                psStack_b0 = (ssh_sharing_connstate *)(uint)*puVar44;\n                if ((iVar29 < 4) ||\n                   (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                             (int *)&psStack_90), iVar28 == 0)) {\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\n                    if (iVar29 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar35 = 0x55e;\nLAB_00089ef0:\n                    pcVar48 = *(code **)(puVar47 + 0x88ff4);\n                    (*pcVar48)(*(int *)(puVar47 + 0x8839c) + 0x457c,\n                               *(int *)(puVar47 + 0x8839c) + 0x43dc,uVar35,\n                               *(int *)(puVar47 + 0x8839c) + 0x4870);\n                    psVar45 = psVar39;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                }\n                else {\n                  psVar45 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < 0) goto LAB_000896fc;\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\nLAB_0008a05c:\n                    iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)&psStack_90,\n                                             (int *)0x0);\n                    psVar43 = psStack_90;\n                    if ((iVar28 == 0) ||\n                       (unaff_s6 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_0008a304;\n                    puVar46 = puVar38 + (int)psVar45;\n                    psVar45 = (ssh_sharing_connstate *)\n                              ((uint)*puVar46 << 0x18 | (uint)puVar46[3] | (uint)puVar46[1] << 0x10\n                              | (uint)puVar46[2] << 8);\n                    iVar28 = (**(code **)(puVar47 + 0x88ba0))\n                                       (cs_00->parent->ssh,psStack_90,psVar45,cs_00);\n                    if (iVar28 == 0) {\n                      if (psStack_b0 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar31 = *puVar44;\n                      *puVar44 = 1;\n                      if (bVar31 == 0) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar28 = 0;\n                      }\n                      (**(code **)(puVar47 + 0x88b70))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                      e_00 = (share_forwarding *)(**(code **)(puVar47 + 0x88390))(1,0xc);\n                      pcVar17 = (char *)(**(code **)(puVar47 + 0x883c0))(psVar43);\n                      t = cs_00->forwardings;\n                      e_00->host = pcVar17;\n                      e_00->port = (int)psVar45;\n                      e_00->active = 0;\n                      psVar25 = (share_forwarding *)add234(t,e_00);\n                      if (e_00 == psVar25) {\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                        psVar26 = (share_globreq *)(**(code **)(puVar47 + 0x88390))(1,0x10);\n                        psVar30 = cs_00->globreq_tail;\n                        psVar26->next = (share_globreq *)0x0;\n                        if (psVar30 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar26;\n                        }\n                        else {\n                          psVar30->next = psVar26;\n                        }\n                        psVar26->fwd = e_00;\n                        psVar26->type = 0;\n                        psVar26->want_reply = (int)psStack_b0;\n                      }\n                      else {\n                        (**(code **)(puVar47 + 0x88394))(e_00);\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(puVar47 + 0x88394))(psVar43);\n                    cs_00->recvlen = 0;\n                    unaff_s6 = psVar43;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                pcVar17 = (char *)(*pcVar48)(iVar28 + 0x455c);\n                psVar45 = psVar39;\n                goto LAB_00089674;\n              }\n              if (bVar31 != 1) {\nLAB_0008965c:\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x474c,bVar31);\n                goto LAB_00089674;\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_000893ac;\n            }\nLAB_00089714:\n            puVar22 = (undefined1 *)((int)&unaff_s6[-1].forwardings + 3);\n            if ((bVar31 == 0x62) &&\n               (psVar45 = *(ssh_sharing_connstate **)(puVar47 + 0x88acc), 3 < (int)puVar22)) {\n              psVar45 = (ssh_sharing_connstate *)(psVar45[1].recvbuf + 0x394c);\n              iVar28 = getstring_inner(cs_00->recvbuf + 9,(int)puVar22,(char **)&psStack_90,\n                                       (int *)0x0);\n              psVar39 = psStack_90;\n              if ((iVar28 != 0) && (psStack_90 != (ssh_sharing_connstate *)0x0)) {\n                psStack_b0 = psStack_90;\n                iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x363c);\n                if ((iVar28 == 0) &&\n                   (iVar28 = (**(code **)(puVar47 + 0x888c4))(cs_00->parent->ssh), iVar28 == 0)) {\n                  ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  ppsStack_88 = ppsVar19;\n                  puVar27 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                  if (puVar27 == (undefined4 *)0x0) {\n                    pcVar48 = *(code **)(puVar47 + 0x8844c);\n                    iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    pcVar17 = (char *)(*pcVar48)(iVar28,ppsVar19);\n                    share_disconnect(cs_00,pcVar17);\n                    (**(code **)(puVar47 + 0x88394))(pcVar17);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_68 = (plug_function_table *)*puVar27;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar28 = *(int *)(puVar47 + 0x8839c);\n                iVar29 = (**(code **)(puVar47 + 0x8953c))(psVar39,iVar28 + -0x36a0);\n                if (iVar29 != 0) {\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  psStack_b0 = psVar39;\n                  goto LAB_00089cc8;\n                }\n                ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                (**(code **)(puVar47 + 0x88394))(psVar39);\n                ppsStack_88 = ppsVar19;\n                psStack_b0 = (ssh_sharing_connstate *)\n                             find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                if (psStack_b0 == (ssh_sharing_connstate *)0x0) {\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)puVar23 < 0x11) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                uVar5 = cs_00->recvbuf[0x14];\n                puVar22 = (undefined1 *)((int)&unaff_s6[-1].channels_by_server + 2);\n                uVar6 = cs_00->recvbuf[0x15];\n                if ((int)puVar22 < 4) {\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(0);\n                  (**(code **)(puVar47 + 0x88394))(0);\nLAB_0008a36c:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar29 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)&psStack_90,\n                                           (int *)0x0);\n                  psVar39 = psStack_90;\n                  if (iVar29 == 0) {\n                    psVar39 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(psVar39);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  iVar20 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_0008a36c;\n                }\n                puVar44 = (uchar *)((int)&psVar39->crLine + 1);\n                iVar20 = (int)puVar23 - (int)puVar44;\n                unaff_s6 = (ssh_sharing_connstate *)0x0;\n                if (iVar20 < 4) {\nLAB_00089ec4:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar21 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)&psStack_90,\n                                           (int *)0x0);\n                  unaff_s6 = psStack_90;\n                  if (iVar21 == 0) {\n                    unaff_s6 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar20 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_00089ec4;\n                }\n                if ((int)puVar23 <= (int)(puVar44 + (int)psVar39 + 3)) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar47 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                puVar38 = puVar38 + (int)(puVar44 + (int)psVar39);\n                if (-1 < iVar29) {\n                  pcVar48 = *(code **)(puVar47 + 0x88b94);\n                  uVar7 = *puVar38;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar38[1];\n                  uVar8 = puVar38[3];\n                  uVar9 = puVar38[2];\n                  psStack_b0->got_verstring = iVar29;\n                  iVar20 = (*pcVar48)(unaff_s6,psStack_b0->recvbuf);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psStack_b0->curr_packetlen = iVar20;\n                  (*pcVar48)(unaff_s6);\n                  iVar29 = (**(code **)(puVar47 + 0x88b98))\n                                     (cs_00->parent->ssh,iVar29,cs_00,psStack_b0);\n                  psStack_b0->sent_verstring = iVar29;\n                  *(uint *)(psStack_b0->recvbuf + 4) = (uint)bVar13;\n                  psVar45 = (ssh_sharing_connstate *)\n                            (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0xc));\n                  unaff_s6 = (ssh_sharing_connstate *)\n                             (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0x10));\n                  puVar38 = (uchar *)((int)&psVar45->curr_packetlen + 1) + (int)unaff_s6;\n                  puVar22 = (undefined1 *)(**(code **)(puVar47 + 0x88390))(puVar38,1);\n                  puVar22[4] = 0;\n                  puVar22[5] = 0;\n                  uVar32 = *(uint *)(iVar28 + -0x36a0);\n                  uVar10 = *(undefined1 *)(iVar28 + -0x369c);\n                  uVar11 = *(undefined1 *)(iVar28 + -0x369b);\n                  uVar12 = *(undefined1 *)(iVar28 + -0x369a);\n                  puVar22[3] = (char)ppsVar19;\n                  *puVar22 = (char)((uint)ppsVar19 >> 0x18);\n                  puVar22[1] = (char)((uint)ppsVar19 >> 0x10);\n                  puVar22[2] = (char)((uint)ppsVar19 >> 8);\n                  puVar22[7] = 7;\n                  puVar22[6] = 0;\n                  puVar23 = puVar22 + 8;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & -1 << (4 - uVar36) * 8 | uVar32 >> uVar36 * 8;\n                  puVar23 = puVar22 + 0xb;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & 0xffffffffU >> (uVar36 + 1) * 8 |\n                       uVar32 << (3 - uVar36) * 8;\n                  puVar22[0xc] = uVar10;\n                  puVar22[0xd] = uVar11;\n                  puVar22[0xe] = uVar12;\n                  puVar22[0x10] = bVar13;\n                  puVar22[0x11] = (char)((uint)psVar45 >> 0x18);\n                  puVar22[0x12] = (char)((uint)psVar45 >> 0x10);\n                  puVar22[0x13] = (char)((uint)psVar45 >> 8);\n                  puVar22[0x14] = (char)psVar45;\n                  pcVar48 = *(code **)(puVar47 + 0x89610);\n                  puVar22[0xf] = uVar5 != '\0';\n                  (*pcVar48)(puVar22 + 0x15,*(undefined4 *)(psStack_b0->sent_verstring + 0xc),\n                             psVar45);\n                  puVar23 = puVar22 + (int)psVar45;\n                  puVar23[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar23[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar23[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar23[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar47 + 0x89610))\n                            (puVar22 + (int)((int)&psVar45->got_verstring + 1),\n                             *(undefined4 *)(psStack_b0->sent_verstring + 0x10),unaff_s6);\n                  puVar23 = puVar22 + (int)(unaff_s6->recvbuf + (int)(psVar45->recvbuf + -0x40));\n                  puVar23[0x1c] = uVar8;\n                  puVar23[0x19] = uVar7;\n                  puVar23[0x1a] = uVar6;\n                  puVar23[0x1b] = uVar9;\n                  (**(code **)(puVar47 + 0x88b70))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar22,puVar38,0);\n                  (**(code **)(puVar47 + 0x88394))(puVar22);\n                  cs_00->recvlen = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar47 + 0x88b70))(cs_00->parent->ssh,cs_00->id,bVar31,puVar38,puVar23,0);\n            if ((bVar31 == 0x61) && (3 < (int)puVar23)) {\n              ppsStack_88 = *(Socket *)(cs_00->recvbuf + 5);\n              psVar24 = (share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n              if (psVar24 != (share_channel *)0x0) {\n                if (psVar24->state == 2) {\n                  (**(code **)(puVar47 + 0x88b74))(cs_00->parent->ssh,psVar24->upstream_id);\n                  share_remove_channel(cs_00,psVar24);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar24->state = 1;\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar31 == 0x5c) {\n              if (3 < (int)puVar23) {\n                psVar45 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                unaff_s6 = (ssh_sharing_connstate *)&psStack_90;\n                psStack_90 = psVar45;\n                e = find234(cs_00->halfchannels,unaff_s6,(cmpfn234)0x0);\n                if (e == (void *)0x0) {\n                  psStack_8c = psVar45;\n                  xc_00 = (share_xchannel *)\n                          find234(cs_00->xchannels_by_server,unaff_s6,(cmpfn234)0x0);\n                  if (xc_00 == (share_xchannel *)0x0) {\n                    pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                                (*(int *)(puVar47 + 0x8839c) + 0x4680,psVar45);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(cs_00,xc_00);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar18 = cs_00->parent;\n                  uVar35 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar47 + 0x88b70))(psVar18->ssh,cs_00->id,uVar35,puVar38,puVar23,0);\n                  del234(cs_00->halfchannels,e);\n                  (**(code **)(puVar47 + 0x88394))(e);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }\n              pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar31) {\n              if (100 < bVar31) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)puVar23 < 0x10) {\n              pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar36 = (uint)(cs_00->recvbuf + 5) & 3;\n            upstream_id = *(uint *)(cs_00->recvbuf + 9);\n            uVar32 = (uint)(cs_00->recvbuf + 8) & 3;\n            psVar45 = (ssh_sharing_connstate *)\n                      ((*(int *)(cs_00->recvbuf + 5 + -uVar36) << uVar36 * 8 |\n                       (uint)psVar45 & 0xffffffffU >> (4 - uVar36) * 8) & -1 << (uVar32 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar32) >> (3 - uVar32) * 8);\n            psStack_90 = psVar45;\n            e = find234(cs_00->halfchannels,&psStack_90,(cmpfn234)0x0);\n            if (e == (void *)0x0) {\n              psStack_8c = psVar45;\n              unaff_s6 = (ssh_sharing_connstate *)\n                         find234(cs_00->xchannels_by_server,&psStack_90,(cmpfn234)0x0);\n              if (unaff_s6 == (ssh_sharing_connstate *)0x0) goto LAB_0008a14c;\n              server_id = unaff_s6->fn;\n            }\n            else {\n              unaff_s6 = (ssh_sharing_connstate *)0x0;\n              server_id = (plug_function_table *)\n                          (**(code **)(puVar47 + 0x88b8c))(cs_00->parent->ssh,cs_00);\n            }\n            cs_00->recvbuf[0xc] = (uchar)server_id;\n            cs_00->recvbuf[9] = (uchar)((uint)server_id >> 0x18);\n            cs_00->recvbuf[10] = (uchar)((uint)server_id >> 0x10);\n            cs_00->recvbuf[0xb] = (uchar)((uint)server_id >> 8);\n            uVar36 = (uint)(cs_00->recvbuf + 0x11) & 3;\n            uVar32 = (uint)(cs_00->recvbuf + 0x14) & 3;\n            psVar24 = share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)server_id\n                                        ,(int)psVar45,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar36) << uVar36 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar36) * 8) &\n                                         -1 << (uVar32 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar32) >>\n                                        (3 - uVar32) * 8));\n            if (e != (void *)0x0) {\n              psVar18 = cs_00->parent;\n              uVar35 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (ssh_sharing_connstate *)0x0) {\n              uVar36 = *(uint *)(cs_00->recvbuf + 0xd);\n              if (uVar36 < 0x100) {\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x4614,uVar36);\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(cs_00,(share_xchannel *)unaff_s6,psVar24,uVar36);\n              share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,unaff_s6);\n              cs_00->recvlen = 0;\n              goto LAB_000893ac;\n            }\n          }" if (parenthesized_expression "(bVar31 < 0x5b)" ( (binary_expression "bVar31 < 0x5b" identifier < number_literal) )) (compound_statement "{\n            if (bVar31 != 2) {\n              if (2 < bVar31) {\n                if (bVar31 == 4) goto LAB_00089714;\n                if (bVar31 != 0x50) goto LAB_0008965c;\n                iVar28 = *(int *)(puVar47 + 0x8839c);\n                psVar39 = psVar45;\n                if ((int)puVar23 < 4) goto LAB_000896fc;\n                psVar39 = (ssh_sharing_connstate *)(*(int *)(puVar47 + 0x88acc) + 0x79c0);\n                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)&psStack_90,(int *)0x0);\n                psVar43 = psStack_90;\n                if ((iVar28 == 0) || (psStack_90 == (ssh_sharing_connstate *)0x0))\n                goto LAB_000896f8;\n                iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x30e8);\n                if (iVar28 != 0) {\n                  iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                     (psVar43,*(int *)(puVar47 + 0x8839c) + -0x317c);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psVar45 = psVar39;\n                  if (iVar28 == 0) {\n                    (*pcVar48)(psVar43);\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar43 = psStack_90;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                       (int)psStack_90 < (int)puVar23)) {\n                      psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90);\n                      iVar29 = (int)puVar23 - (int)puVar37;\n                      cVar1 = *(char *)&psStack_b0->fn;\n                      if ((iVar29 < 4) ||\n                         (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                                   (int *)&psStack_90), iVar28 == 0)) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if ((int)psVar43 < (int)&unaff_s6[-1].globreq_head) {\n                          if (iVar29 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar35 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        psVar43 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if (-1 < (int)psVar43) {\n                          pcVar48 = *(code **)(puVar47 + 0x8844c);\n                          if ((int)&unaff_s6[-1].globreq_head <= (int)psVar43) goto LAB_00089700;\nLAB_000892a4:\n                          iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,\n                                                   (char **)&psStack_90,(int *)0x0);\n                          psVar45 = psStack_90;\n                          if ((iVar28 == 0) ||\n                             (psVar39 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_00089eec;\n                          puVar44 = puVar38 + (int)psVar43;\n                          bVar31 = *puVar44;\n                          bVar2 = puVar44[1];\n                          bVar3 = puVar44[3];\n                          bVar4 = puVar44[2];\n                          psStack_90 = (ssh_sharing_connstate *)\n                                       (**(code **)(puVar47 + 0x883c0))(psStack_90);\n                          psStack_8c = (ssh_sharing_connstate *)\n                                       ((uint)bVar31 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                       (uint)bVar4 << 8);\n                          unaff_s6 = (ssh_sharing_connstate *)\n                                     find234(cs_00->forwardings,&psStack_90,(cmpfn234)0x0);\n                          (**(code **)(puVar47 + 0x88394))(psStack_90);\n                          if (unaff_s6 == (ssh_sharing_connstate *)0x0) {\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                            if (cVar1 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            cVar1 = *(char *)&psStack_b0->fn;\n                            *(undefined1 *)&psStack_b0->fn = 1;\n                            if (cVar1 == '\0') {\n                              iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar28 = 0;\n                            }\n                            (**(code **)(puVar47 + 0x88b70))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                            (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\nLAB_00089394:\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                          }\n                          (*pcVar48)(psVar45);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar48)();\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar39 = psVar45;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       ((int)psStack_90 < (int)puVar23)) {\n                      if (puVar38[(int)psStack_90] == '\0') goto LAB_000893a4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar47 + 0x88394))(psVar43);\n                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                psVar45 = psStack_90;\n                if (((iVar28 == 0) || ((int)psStack_90 < 0)) ||\n                   (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                   (int)puVar23 <= (int)psStack_90)) goto LAB_000896f8;\n                puVar44 = puVar38 + (int)psStack_90;\n                iVar29 = (int)puVar23 - (int)puVar37;\n                psStack_b0 = (ssh_sharing_connstate *)(uint)*puVar44;\n                if ((iVar29 < 4) ||\n                   (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                             (int *)&psStack_90), iVar28 == 0)) {\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\n                    if (iVar29 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar35 = 0x55e;\nLAB_00089ef0:\n                    pcVar48 = *(code **)(puVar47 + 0x88ff4);\n                    (*pcVar48)(*(int *)(puVar47 + 0x8839c) + 0x457c,\n                               *(int *)(puVar47 + 0x8839c) + 0x43dc,uVar35,\n                               *(int *)(puVar47 + 0x8839c) + 0x4870);\n                    psVar45 = psVar39;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                }\n                else {\n                  psVar45 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < 0) goto LAB_000896fc;\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\nLAB_0008a05c:\n                    iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)&psStack_90,\n                                             (int *)0x0);\n                    psVar43 = psStack_90;\n                    if ((iVar28 == 0) ||\n                       (unaff_s6 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_0008a304;\n                    puVar46 = puVar38 + (int)psVar45;\n                    psVar45 = (ssh_sharing_connstate *)\n                              ((uint)*puVar46 << 0x18 | (uint)puVar46[3] | (uint)puVar46[1] << 0x10\n                              | (uint)puVar46[2] << 8);\n                    iVar28 = (**(code **)(puVar47 + 0x88ba0))\n                                       (cs_00->parent->ssh,psStack_90,psVar45,cs_00);\n                    if (iVar28 == 0) {\n                      if (psStack_b0 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar31 = *puVar44;\n                      *puVar44 = 1;\n                      if (bVar31 == 0) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar28 = 0;\n                      }\n                      (**(code **)(puVar47 + 0x88b70))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                      e_00 = (share_forwarding *)(**(code **)(puVar47 + 0x88390))(1,0xc);\n                      pcVar17 = (char *)(**(code **)(puVar47 + 0x883c0))(psVar43);\n                      t = cs_00->forwardings;\n                      e_00->host = pcVar17;\n                      e_00->port = (int)psVar45;\n                      e_00->active = 0;\n                      psVar25 = (share_forwarding *)add234(t,e_00);\n                      if (e_00 == psVar25) {\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                        psVar26 = (share_globreq *)(**(code **)(puVar47 + 0x88390))(1,0x10);\n                        psVar30 = cs_00->globreq_tail;\n                        psVar26->next = (share_globreq *)0x0;\n                        if (psVar30 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar26;\n                        }\n                        else {\n                          psVar30->next = psVar26;\n                        }\n                        psVar26->fwd = e_00;\n                        psVar26->type = 0;\n                        psVar26->want_reply = (int)psStack_b0;\n                      }\n                      else {\n                        (**(code **)(puVar47 + 0x88394))(e_00);\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(puVar47 + 0x88394))(psVar43);\n                    cs_00->recvlen = 0;\n                    unaff_s6 = psVar43;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                pcVar17 = (char *)(*pcVar48)(iVar28 + 0x455c);\n                psVar45 = psVar39;\n                goto LAB_00089674;\n              }\n              if (bVar31 != 1) {\nLAB_0008965c:\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x474c,bVar31);\n                goto LAB_00089674;\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_000893ac;\n            }\nLAB_00089714:\n            puVar22 = (undefined1 *)((int)&unaff_s6[-1].forwardings + 3);\n            if ((bVar31 == 0x62) &&\n               (psVar45 = *(ssh_sharing_connstate **)(puVar47 + 0x88acc), 3 < (int)puVar22)) {\n              psVar45 = (ssh_sharing_connstate *)(psVar45[1].recvbuf + 0x394c);\n              iVar28 = getstring_inner(cs_00->recvbuf + 9,(int)puVar22,(char **)&psStack_90,\n                                       (int *)0x0);\n              psVar39 = psStack_90;\n              if ((iVar28 != 0) && (psStack_90 != (ssh_sharing_connstate *)0x0)) {\n                psStack_b0 = psStack_90;\n                iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x363c);\n                if ((iVar28 == 0) &&\n                   (iVar28 = (**(code **)(puVar47 + 0x888c4))(cs_00->parent->ssh), iVar28 == 0)) {\n                  ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  ppsStack_88 = ppsVar19;\n                  puVar27 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                  if (puVar27 == (undefined4 *)0x0) {\n                    pcVar48 = *(code **)(puVar47 + 0x8844c);\n                    iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    pcVar17 = (char *)(*pcVar48)(iVar28,ppsVar19);\n                    share_disconnect(cs_00,pcVar17);\n                    (**(code **)(puVar47 + 0x88394))(pcVar17);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_68 = (plug_function_table *)*puVar27;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar28 = *(int *)(puVar47 + 0x8839c);\n                iVar29 = (**(code **)(puVar47 + 0x8953c))(psVar39,iVar28 + -0x36a0);\n                if (iVar29 != 0) {\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  psStack_b0 = psVar39;\n                  goto LAB_00089cc8;\n                }\n                ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                (**(code **)(puVar47 + 0x88394))(psVar39);\n                ppsStack_88 = ppsVar19;\n                psStack_b0 = (ssh_sharing_connstate *)\n                             find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                if (psStack_b0 == (ssh_sharing_connstate *)0x0) {\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)puVar23 < 0x11) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                uVar5 = cs_00->recvbuf[0x14];\n                puVar22 = (undefined1 *)((int)&unaff_s6[-1].channels_by_server + 2);\n                uVar6 = cs_00->recvbuf[0x15];\n                if ((int)puVar22 < 4) {\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(0);\n                  (**(code **)(puVar47 + 0x88394))(0);\nLAB_0008a36c:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar29 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)&psStack_90,\n                                           (int *)0x0);\n                  psVar39 = psStack_90;\n                  if (iVar29 == 0) {\n                    psVar39 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(psVar39);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  iVar20 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_0008a36c;\n                }\n                puVar44 = (uchar *)((int)&psVar39->crLine + 1);\n                iVar20 = (int)puVar23 - (int)puVar44;\n                unaff_s6 = (ssh_sharing_connstate *)0x0;\n                if (iVar20 < 4) {\nLAB_00089ec4:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar21 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)&psStack_90,\n                                           (int *)0x0);\n                  unaff_s6 = psStack_90;\n                  if (iVar21 == 0) {\n                    unaff_s6 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar20 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_00089ec4;\n                }\n                if ((int)puVar23 <= (int)(puVar44 + (int)psVar39 + 3)) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar47 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                puVar38 = puVar38 + (int)(puVar44 + (int)psVar39);\n                if (-1 < iVar29) {\n                  pcVar48 = *(code **)(puVar47 + 0x88b94);\n                  uVar7 = *puVar38;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar38[1];\n                  uVar8 = puVar38[3];\n                  uVar9 = puVar38[2];\n                  psStack_b0->got_verstring = iVar29;\n                  iVar20 = (*pcVar48)(unaff_s6,psStack_b0->recvbuf);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psStack_b0->curr_packetlen = iVar20;\n                  (*pcVar48)(unaff_s6);\n                  iVar29 = (**(code **)(puVar47 + 0x88b98))\n                                     (cs_00->parent->ssh,iVar29,cs_00,psStack_b0);\n                  psStack_b0->sent_verstring = iVar29;\n                  *(uint *)(psStack_b0->recvbuf + 4) = (uint)bVar13;\n                  psVar45 = (ssh_sharing_connstate *)\n                            (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0xc));\n                  unaff_s6 = (ssh_sharing_connstate *)\n                             (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0x10));\n                  puVar38 = (uchar *)((int)&psVar45->curr_packetlen + 1) + (int)unaff_s6;\n                  puVar22 = (undefined1 *)(**(code **)(puVar47 + 0x88390))(puVar38,1);\n                  puVar22[4] = 0;\n                  puVar22[5] = 0;\n                  uVar32 = *(uint *)(iVar28 + -0x36a0);\n                  uVar10 = *(undefined1 *)(iVar28 + -0x369c);\n                  uVar11 = *(undefined1 *)(iVar28 + -0x369b);\n                  uVar12 = *(undefined1 *)(iVar28 + -0x369a);\n                  puVar22[3] = (char)ppsVar19;\n                  *puVar22 = (char)((uint)ppsVar19 >> 0x18);\n                  puVar22[1] = (char)((uint)ppsVar19 >> 0x10);\n                  puVar22[2] = (char)((uint)ppsVar19 >> 8);\n                  puVar22[7] = 7;\n                  puVar22[6] = 0;\n                  puVar23 = puVar22 + 8;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & -1 << (4 - uVar36) * 8 | uVar32 >> uVar36 * 8;\n                  puVar23 = puVar22 + 0xb;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & 0xffffffffU >> (uVar36 + 1) * 8 |\n                       uVar32 << (3 - uVar36) * 8;\n                  puVar22[0xc] = uVar10;\n                  puVar22[0xd] = uVar11;\n                  puVar22[0xe] = uVar12;\n                  puVar22[0x10] = bVar13;\n                  puVar22[0x11] = (char)((uint)psVar45 >> 0x18);\n                  puVar22[0x12] = (char)((uint)psVar45 >> 0x10);\n                  puVar22[0x13] = (char)((uint)psVar45 >> 8);\n                  puVar22[0x14] = (char)psVar45;\n                  pcVar48 = *(code **)(puVar47 + 0x89610);\n                  puVar22[0xf] = uVar5 != '\0';\n                  (*pcVar48)(puVar22 + 0x15,*(undefined4 *)(psStack_b0->sent_verstring + 0xc),\n                             psVar45);\n                  puVar23 = puVar22 + (int)psVar45;\n                  puVar23[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar23[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar23[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar23[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar47 + 0x89610))\n                            (puVar22 + (int)((int)&psVar45->got_verstring + 1),\n                             *(undefined4 *)(psStack_b0->sent_verstring + 0x10),unaff_s6);\n                  puVar23 = puVar22 + (int)(unaff_s6->recvbuf + (int)(psVar45->recvbuf + -0x40));\n                  puVar23[0x1c] = uVar8;\n                  puVar23[0x19] = uVar7;\n                  puVar23[0x1a] = uVar6;\n                  puVar23[0x1b] = uVar9;\n                  (**(code **)(puVar47 + 0x88b70))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar22,puVar38,0);\n                  (**(code **)(puVar47 + 0x88394))(puVar22);\n                  cs_00->recvlen = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar47 + 0x88b70))(cs_00->parent->ssh,cs_00->id,bVar31,puVar38,puVar23,0);\n            if ((bVar31 == 0x61) && (3 < (int)puVar23)) {\n              ppsStack_88 = *(Socket *)(cs_00->recvbuf + 5);\n              psVar24 = (share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n              if (psVar24 != (share_channel *)0x0) {\n                if (psVar24->state == 2) {\n                  (**(code **)(puVar47 + 0x88b74))(cs_00->parent->ssh,psVar24->upstream_id);\n                  share_remove_channel(cs_00,psVar24);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar24->state = 1;\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }" { (if_statement "if (bVar31 != 2) {\n              if (2 < bVar31) {\n                if (bVar31 == 4) goto LAB_00089714;\n                if (bVar31 != 0x50) goto LAB_0008965c;\n                iVar28 = *(int *)(puVar47 + 0x8839c);\n                psVar39 = psVar45;\n                if ((int)puVar23 < 4) goto LAB_000896fc;\n                psVar39 = (ssh_sharing_connstate *)(*(int *)(puVar47 + 0x88acc) + 0x79c0);\n                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)&psStack_90,(int *)0x0);\n                psVar43 = psStack_90;\n                if ((iVar28 == 0) || (psStack_90 == (ssh_sharing_connstate *)0x0))\n                goto LAB_000896f8;\n                iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x30e8);\n                if (iVar28 != 0) {\n                  iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                     (psVar43,*(int *)(puVar47 + 0x8839c) + -0x317c);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psVar45 = psVar39;\n                  if (iVar28 == 0) {\n                    (*pcVar48)(psVar43);\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar43 = psStack_90;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                       (int)psStack_90 < (int)puVar23)) {\n                      psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90);\n                      iVar29 = (int)puVar23 - (int)puVar37;\n                      cVar1 = *(char *)&psStack_b0->fn;\n                      if ((iVar29 < 4) ||\n                         (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                                   (int *)&psStack_90), iVar28 == 0)) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if ((int)psVar43 < (int)&unaff_s6[-1].globreq_head) {\n                          if (iVar29 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar35 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        psVar43 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if (-1 < (int)psVar43) {\n                          pcVar48 = *(code **)(puVar47 + 0x8844c);\n                          if ((int)&unaff_s6[-1].globreq_head <= (int)psVar43) goto LAB_00089700;\nLAB_000892a4:\n                          iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,\n                                                   (char **)&psStack_90,(int *)0x0);\n                          psVar45 = psStack_90;\n                          if ((iVar28 == 0) ||\n                             (psVar39 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_00089eec;\n                          puVar44 = puVar38 + (int)psVar43;\n                          bVar31 = *puVar44;\n                          bVar2 = puVar44[1];\n                          bVar3 = puVar44[3];\n                          bVar4 = puVar44[2];\n                          psStack_90 = (ssh_sharing_connstate *)\n                                       (**(code **)(puVar47 + 0x883c0))(psStack_90);\n                          psStack_8c = (ssh_sharing_connstate *)\n                                       ((uint)bVar31 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                       (uint)bVar4 << 8);\n                          unaff_s6 = (ssh_sharing_connstate *)\n                                     find234(cs_00->forwardings,&psStack_90,(cmpfn234)0x0);\n                          (**(code **)(puVar47 + 0x88394))(psStack_90);\n                          if (unaff_s6 == (ssh_sharing_connstate *)0x0) {\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                            if (cVar1 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            cVar1 = *(char *)&psStack_b0->fn;\n                            *(undefined1 *)&psStack_b0->fn = 1;\n                            if (cVar1 == '\0') {\n                              iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar28 = 0;\n                            }\n                            (**(code **)(puVar47 + 0x88b70))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                            (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\nLAB_00089394:\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                          }\n                          (*pcVar48)(psVar45);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar48)();\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar39 = psVar45;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       ((int)psStack_90 < (int)puVar23)) {\n                      if (puVar38[(int)psStack_90] == '\0') goto LAB_000893a4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar47 + 0x88394))(psVar43);\n                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                psVar45 = psStack_90;\n                if (((iVar28 == 0) || ((int)psStack_90 < 0)) ||\n                   (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                   (int)puVar23 <= (int)psStack_90)) goto LAB_000896f8;\n                puVar44 = puVar38 + (int)psStack_90;\n                iVar29 = (int)puVar23 - (int)puVar37;\n                psStack_b0 = (ssh_sharing_connstate *)(uint)*puVar44;\n                if ((iVar29 < 4) ||\n                   (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                             (int *)&psStack_90), iVar28 == 0)) {\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\n                    if (iVar29 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar35 = 0x55e;\nLAB_00089ef0:\n                    pcVar48 = *(code **)(puVar47 + 0x88ff4);\n                    (*pcVar48)(*(int *)(puVar47 + 0x8839c) + 0x457c,\n                               *(int *)(puVar47 + 0x8839c) + 0x43dc,uVar35,\n                               *(int *)(puVar47 + 0x8839c) + 0x4870);\n                    psVar45 = psVar39;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                }\n                else {\n                  psVar45 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < 0) goto LAB_000896fc;\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\nLAB_0008a05c:\n                    iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)&psStack_90,\n                                             (int *)0x0);\n                    psVar43 = psStack_90;\n                    if ((iVar28 == 0) ||\n                       (unaff_s6 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_0008a304;\n                    puVar46 = puVar38 + (int)psVar45;\n                    psVar45 = (ssh_sharing_connstate *)\n                              ((uint)*puVar46 << 0x18 | (uint)puVar46[3] | (uint)puVar46[1] << 0x10\n                              | (uint)puVar46[2] << 8);\n                    iVar28 = (**(code **)(puVar47 + 0x88ba0))\n                                       (cs_00->parent->ssh,psStack_90,psVar45,cs_00);\n                    if (iVar28 == 0) {\n                      if (psStack_b0 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar31 = *puVar44;\n                      *puVar44 = 1;\n                      if (bVar31 == 0) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar28 = 0;\n                      }\n                      (**(code **)(puVar47 + 0x88b70))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                      e_00 = (share_forwarding *)(**(code **)(puVar47 + 0x88390))(1,0xc);\n                      pcVar17 = (char *)(**(code **)(puVar47 + 0x883c0))(psVar43);\n                      t = cs_00->forwardings;\n                      e_00->host = pcVar17;\n                      e_00->port = (int)psVar45;\n                      e_00->active = 0;\n                      psVar25 = (share_forwarding *)add234(t,e_00);\n                      if (e_00 == psVar25) {\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                        psVar26 = (share_globreq *)(**(code **)(puVar47 + 0x88390))(1,0x10);\n                        psVar30 = cs_00->globreq_tail;\n                        psVar26->next = (share_globreq *)0x0;\n                        if (psVar30 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar26;\n                        }\n                        else {\n                          psVar30->next = psVar26;\n                        }\n                        psVar26->fwd = e_00;\n                        psVar26->type = 0;\n                        psVar26->want_reply = (int)psStack_b0;\n                      }\n                      else {\n                        (**(code **)(puVar47 + 0x88394))(e_00);\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(puVar47 + 0x88394))(psVar43);\n                    cs_00->recvlen = 0;\n                    unaff_s6 = psVar43;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                pcVar17 = (char *)(*pcVar48)(iVar28 + 0x455c);\n                psVar45 = psVar39;\n                goto LAB_00089674;\n              }\n              if (bVar31 != 1) {\nLAB_0008965c:\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x474c,bVar31);\n                goto LAB_00089674;\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_000893ac;\n            }" if (parenthesized_expression "(bVar31 != 2)" ( (binary_expression "bVar31 != 2" identifier != number_literal) )) (compound_statement "{\n              if (2 < bVar31) {\n                if (bVar31 == 4) goto LAB_00089714;\n                if (bVar31 != 0x50) goto LAB_0008965c;\n                iVar28 = *(int *)(puVar47 + 0x8839c);\n                psVar39 = psVar45;\n                if ((int)puVar23 < 4) goto LAB_000896fc;\n                psVar39 = (ssh_sharing_connstate *)(*(int *)(puVar47 + 0x88acc) + 0x79c0);\n                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)&psStack_90,(int *)0x0);\n                psVar43 = psStack_90;\n                if ((iVar28 == 0) || (psStack_90 == (ssh_sharing_connstate *)0x0))\n                goto LAB_000896f8;\n                iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x30e8);\n                if (iVar28 != 0) {\n                  iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                     (psVar43,*(int *)(puVar47 + 0x8839c) + -0x317c);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psVar45 = psVar39;\n                  if (iVar28 == 0) {\n                    (*pcVar48)(psVar43);\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar43 = psStack_90;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                       (int)psStack_90 < (int)puVar23)) {\n                      psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90);\n                      iVar29 = (int)puVar23 - (int)puVar37;\n                      cVar1 = *(char *)&psStack_b0->fn;\n                      if ((iVar29 < 4) ||\n                         (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                                   (int *)&psStack_90), iVar28 == 0)) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if ((int)psVar43 < (int)&unaff_s6[-1].globreq_head) {\n                          if (iVar29 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar35 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        psVar43 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if (-1 < (int)psVar43) {\n                          pcVar48 = *(code **)(puVar47 + 0x8844c);\n                          if ((int)&unaff_s6[-1].globreq_head <= (int)psVar43) goto LAB_00089700;\nLAB_000892a4:\n                          iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,\n                                                   (char **)&psStack_90,(int *)0x0);\n                          psVar45 = psStack_90;\n                          if ((iVar28 == 0) ||\n                             (psVar39 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_00089eec;\n                          puVar44 = puVar38 + (int)psVar43;\n                          bVar31 = *puVar44;\n                          bVar2 = puVar44[1];\n                          bVar3 = puVar44[3];\n                          bVar4 = puVar44[2];\n                          psStack_90 = (ssh_sharing_connstate *)\n                                       (**(code **)(puVar47 + 0x883c0))(psStack_90);\n                          psStack_8c = (ssh_sharing_connstate *)\n                                       ((uint)bVar31 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                       (uint)bVar4 << 8);\n                          unaff_s6 = (ssh_sharing_connstate *)\n                                     find234(cs_00->forwardings,&psStack_90,(cmpfn234)0x0);\n                          (**(code **)(puVar47 + 0x88394))(psStack_90);\n                          if (unaff_s6 == (ssh_sharing_connstate *)0x0) {\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                            if (cVar1 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            cVar1 = *(char *)&psStack_b0->fn;\n                            *(undefined1 *)&psStack_b0->fn = 1;\n                            if (cVar1 == '\0') {\n                              iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar28 = 0;\n                            }\n                            (**(code **)(puVar47 + 0x88b70))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                            (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\nLAB_00089394:\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                          }\n                          (*pcVar48)(psVar45);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar48)();\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar39 = psVar45;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       ((int)psStack_90 < (int)puVar23)) {\n                      if (puVar38[(int)psStack_90] == '\0') goto LAB_000893a4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar47 + 0x88394))(psVar43);\n                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                psVar45 = psStack_90;\n                if (((iVar28 == 0) || ((int)psStack_90 < 0)) ||\n                   (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                   (int)puVar23 <= (int)psStack_90)) goto LAB_000896f8;\n                puVar44 = puVar38 + (int)psStack_90;\n                iVar29 = (int)puVar23 - (int)puVar37;\n                psStack_b0 = (ssh_sharing_connstate *)(uint)*puVar44;\n                if ((iVar29 < 4) ||\n                   (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                             (int *)&psStack_90), iVar28 == 0)) {\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\n                    if (iVar29 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar35 = 0x55e;\nLAB_00089ef0:\n                    pcVar48 = *(code **)(puVar47 + 0x88ff4);\n                    (*pcVar48)(*(int *)(puVar47 + 0x8839c) + 0x457c,\n                               *(int *)(puVar47 + 0x8839c) + 0x43dc,uVar35,\n                               *(int *)(puVar47 + 0x8839c) + 0x4870);\n                    psVar45 = psVar39;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                }\n                else {\n                  psVar45 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < 0) goto LAB_000896fc;\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\nLAB_0008a05c:\n                    iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)&psStack_90,\n                                             (int *)0x0);\n                    psVar43 = psStack_90;\n                    if ((iVar28 == 0) ||\n                       (unaff_s6 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_0008a304;\n                    puVar46 = puVar38 + (int)psVar45;\n                    psVar45 = (ssh_sharing_connstate *)\n                              ((uint)*puVar46 << 0x18 | (uint)puVar46[3] | (uint)puVar46[1] << 0x10\n                              | (uint)puVar46[2] << 8);\n                    iVar28 = (**(code **)(puVar47 + 0x88ba0))\n                                       (cs_00->parent->ssh,psStack_90,psVar45,cs_00);\n                    if (iVar28 == 0) {\n                      if (psStack_b0 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar31 = *puVar44;\n                      *puVar44 = 1;\n                      if (bVar31 == 0) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar28 = 0;\n                      }\n                      (**(code **)(puVar47 + 0x88b70))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                      e_00 = (share_forwarding *)(**(code **)(puVar47 + 0x88390))(1,0xc);\n                      pcVar17 = (char *)(**(code **)(puVar47 + 0x883c0))(psVar43);\n                      t = cs_00->forwardings;\n                      e_00->host = pcVar17;\n                      e_00->port = (int)psVar45;\n                      e_00->active = 0;\n                      psVar25 = (share_forwarding *)add234(t,e_00);\n                      if (e_00 == psVar25) {\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                        psVar26 = (share_globreq *)(**(code **)(puVar47 + 0x88390))(1,0x10);\n                        psVar30 = cs_00->globreq_tail;\n                        psVar26->next = (share_globreq *)0x0;\n                        if (psVar30 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar26;\n                        }\n                        else {\n                          psVar30->next = psVar26;\n                        }\n                        psVar26->fwd = e_00;\n                        psVar26->type = 0;\n                        psVar26->want_reply = (int)psStack_b0;\n                      }\n                      else {\n                        (**(code **)(puVar47 + 0x88394))(e_00);\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(puVar47 + 0x88394))(psVar43);\n                    cs_00->recvlen = 0;\n                    unaff_s6 = psVar43;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                pcVar17 = (char *)(*pcVar48)(iVar28 + 0x455c);\n                psVar45 = psVar39;\n                goto LAB_00089674;\n              }\n              if (bVar31 != 1) {\nLAB_0008965c:\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x474c,bVar31);\n                goto LAB_00089674;\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_000893ac;\n            }" { (if_statement "if (2 < bVar31) {\n                if (bVar31 == 4) goto LAB_00089714;\n                if (bVar31 != 0x50) goto LAB_0008965c;\n                iVar28 = *(int *)(puVar47 + 0x8839c);\n                psVar39 = psVar45;\n                if ((int)puVar23 < 4) goto LAB_000896fc;\n                psVar39 = (ssh_sharing_connstate *)(*(int *)(puVar47 + 0x88acc) + 0x79c0);\n                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)&psStack_90,(int *)0x0);\n                psVar43 = psStack_90;\n                if ((iVar28 == 0) || (psStack_90 == (ssh_sharing_connstate *)0x0))\n                goto LAB_000896f8;\n                iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x30e8);\n                if (iVar28 != 0) {\n                  iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                     (psVar43,*(int *)(puVar47 + 0x8839c) + -0x317c);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psVar45 = psVar39;\n                  if (iVar28 == 0) {\n                    (*pcVar48)(psVar43);\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar43 = psStack_90;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                       (int)psStack_90 < (int)puVar23)) {\n                      psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90);\n                      iVar29 = (int)puVar23 - (int)puVar37;\n                      cVar1 = *(char *)&psStack_b0->fn;\n                      if ((iVar29 < 4) ||\n                         (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                                   (int *)&psStack_90), iVar28 == 0)) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if ((int)psVar43 < (int)&unaff_s6[-1].globreq_head) {\n                          if (iVar29 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar35 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        psVar43 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if (-1 < (int)psVar43) {\n                          pcVar48 = *(code **)(puVar47 + 0x8844c);\n                          if ((int)&unaff_s6[-1].globreq_head <= (int)psVar43) goto LAB_00089700;\nLAB_000892a4:\n                          iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,\n                                                   (char **)&psStack_90,(int *)0x0);\n                          psVar45 = psStack_90;\n                          if ((iVar28 == 0) ||\n                             (psVar39 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_00089eec;\n                          puVar44 = puVar38 + (int)psVar43;\n                          bVar31 = *puVar44;\n                          bVar2 = puVar44[1];\n                          bVar3 = puVar44[3];\n                          bVar4 = puVar44[2];\n                          psStack_90 = (ssh_sharing_connstate *)\n                                       (**(code **)(puVar47 + 0x883c0))(psStack_90);\n                          psStack_8c = (ssh_sharing_connstate *)\n                                       ((uint)bVar31 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                       (uint)bVar4 << 8);\n                          unaff_s6 = (ssh_sharing_connstate *)\n                                     find234(cs_00->forwardings,&psStack_90,(cmpfn234)0x0);\n                          (**(code **)(puVar47 + 0x88394))(psStack_90);\n                          if (unaff_s6 == (ssh_sharing_connstate *)0x0) {\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                            if (cVar1 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            cVar1 = *(char *)&psStack_b0->fn;\n                            *(undefined1 *)&psStack_b0->fn = 1;\n                            if (cVar1 == '\0') {\n                              iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar28 = 0;\n                            }\n                            (**(code **)(puVar47 + 0x88b70))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                            (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\nLAB_00089394:\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                          }\n                          (*pcVar48)(psVar45);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar48)();\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar39 = psVar45;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       ((int)psStack_90 < (int)puVar23)) {\n                      if (puVar38[(int)psStack_90] == '\0') goto LAB_000893a4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar47 + 0x88394))(psVar43);\n                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                psVar45 = psStack_90;\n                if (((iVar28 == 0) || ((int)psStack_90 < 0)) ||\n                   (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                   (int)puVar23 <= (int)psStack_90)) goto LAB_000896f8;\n                puVar44 = puVar38 + (int)psStack_90;\n                iVar29 = (int)puVar23 - (int)puVar37;\n                psStack_b0 = (ssh_sharing_connstate *)(uint)*puVar44;\n                if ((iVar29 < 4) ||\n                   (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                             (int *)&psStack_90), iVar28 == 0)) {\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\n                    if (iVar29 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar35 = 0x55e;\nLAB_00089ef0:\n                    pcVar48 = *(code **)(puVar47 + 0x88ff4);\n                    (*pcVar48)(*(int *)(puVar47 + 0x8839c) + 0x457c,\n                               *(int *)(puVar47 + 0x8839c) + 0x43dc,uVar35,\n                               *(int *)(puVar47 + 0x8839c) + 0x4870);\n                    psVar45 = psVar39;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                }\n                else {\n                  psVar45 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < 0) goto LAB_000896fc;\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\nLAB_0008a05c:\n                    iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)&psStack_90,\n                                             (int *)0x0);\n                    psVar43 = psStack_90;\n                    if ((iVar28 == 0) ||\n                       (unaff_s6 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_0008a304;\n                    puVar46 = puVar38 + (int)psVar45;\n                    psVar45 = (ssh_sharing_connstate *)\n                              ((uint)*puVar46 << 0x18 | (uint)puVar46[3] | (uint)puVar46[1] << 0x10\n                              | (uint)puVar46[2] << 8);\n                    iVar28 = (**(code **)(puVar47 + 0x88ba0))\n                                       (cs_00->parent->ssh,psStack_90,psVar45,cs_00);\n                    if (iVar28 == 0) {\n                      if (psStack_b0 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar31 = *puVar44;\n                      *puVar44 = 1;\n                      if (bVar31 == 0) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar28 = 0;\n                      }\n                      (**(code **)(puVar47 + 0x88b70))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                      e_00 = (share_forwarding *)(**(code **)(puVar47 + 0x88390))(1,0xc);\n                      pcVar17 = (char *)(**(code **)(puVar47 + 0x883c0))(psVar43);\n                      t = cs_00->forwardings;\n                      e_00->host = pcVar17;\n                      e_00->port = (int)psVar45;\n                      e_00->active = 0;\n                      psVar25 = (share_forwarding *)add234(t,e_00);\n                      if (e_00 == psVar25) {\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                        psVar26 = (share_globreq *)(**(code **)(puVar47 + 0x88390))(1,0x10);\n                        psVar30 = cs_00->globreq_tail;\n                        psVar26->next = (share_globreq *)0x0;\n                        if (psVar30 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar26;\n                        }\n                        else {\n                          psVar30->next = psVar26;\n                        }\n                        psVar26->fwd = e_00;\n                        psVar26->type = 0;\n                        psVar26->want_reply = (int)psStack_b0;\n                      }\n                      else {\n                        (**(code **)(puVar47 + 0x88394))(e_00);\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(puVar47 + 0x88394))(psVar43);\n                    cs_00->recvlen = 0;\n                    unaff_s6 = psVar43;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                pcVar17 = (char *)(*pcVar48)(iVar28 + 0x455c);\n                psVar45 = psVar39;\n                goto LAB_00089674;\n              }" if (parenthesized_expression "(2 < bVar31)" ( (binary_expression "2 < bVar31" number_literal < identifier) )) (compound_statement "{\n                if (bVar31 == 4) goto LAB_00089714;\n                if (bVar31 != 0x50) goto LAB_0008965c;\n                iVar28 = *(int *)(puVar47 + 0x8839c);\n                psVar39 = psVar45;\n                if ((int)puVar23 < 4) goto LAB_000896fc;\n                psVar39 = (ssh_sharing_connstate *)(*(int *)(puVar47 + 0x88acc) + 0x79c0);\n                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)&psStack_90,(int *)0x0);\n                psVar43 = psStack_90;\n                if ((iVar28 == 0) || (psStack_90 == (ssh_sharing_connstate *)0x0))\n                goto LAB_000896f8;\n                iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x30e8);\n                if (iVar28 != 0) {\n                  iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                     (psVar43,*(int *)(puVar47 + 0x8839c) + -0x317c);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psVar45 = psVar39;\n                  if (iVar28 == 0) {\n                    (*pcVar48)(psVar43);\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar43 = psStack_90;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                       (int)psStack_90 < (int)puVar23)) {\n                      psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90);\n                      iVar29 = (int)puVar23 - (int)puVar37;\n                      cVar1 = *(char *)&psStack_b0->fn;\n                      if ((iVar29 < 4) ||\n                         (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                                   (int *)&psStack_90), iVar28 == 0)) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if ((int)psVar43 < (int)&unaff_s6[-1].globreq_head) {\n                          if (iVar29 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar35 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        psVar43 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if (-1 < (int)psVar43) {\n                          pcVar48 = *(code **)(puVar47 + 0x8844c);\n                          if ((int)&unaff_s6[-1].globreq_head <= (int)psVar43) goto LAB_00089700;\nLAB_000892a4:\n                          iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,\n                                                   (char **)&psStack_90,(int *)0x0);\n                          psVar45 = psStack_90;\n                          if ((iVar28 == 0) ||\n                             (psVar39 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_00089eec;\n                          puVar44 = puVar38 + (int)psVar43;\n                          bVar31 = *puVar44;\n                          bVar2 = puVar44[1];\n                          bVar3 = puVar44[3];\n                          bVar4 = puVar44[2];\n                          psStack_90 = (ssh_sharing_connstate *)\n                                       (**(code **)(puVar47 + 0x883c0))(psStack_90);\n                          psStack_8c = (ssh_sharing_connstate *)\n                                       ((uint)bVar31 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                       (uint)bVar4 << 8);\n                          unaff_s6 = (ssh_sharing_connstate *)\n                                     find234(cs_00->forwardings,&psStack_90,(cmpfn234)0x0);\n                          (**(code **)(puVar47 + 0x88394))(psStack_90);\n                          if (unaff_s6 == (ssh_sharing_connstate *)0x0) {\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                            if (cVar1 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            cVar1 = *(char *)&psStack_b0->fn;\n                            *(undefined1 *)&psStack_b0->fn = 1;\n                            if (cVar1 == '\0') {\n                              iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar28 = 0;\n                            }\n                            (**(code **)(puVar47 + 0x88b70))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                            (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\nLAB_00089394:\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                          }\n                          (*pcVar48)(psVar45);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar48)();\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar39 = psVar45;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       ((int)psStack_90 < (int)puVar23)) {\n                      if (puVar38[(int)psStack_90] == '\0') goto LAB_000893a4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar47 + 0x88394))(psVar43);\n                iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                psVar45 = psStack_90;\n                if (((iVar28 == 0) || ((int)psStack_90 < 0)) ||\n                   (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                   (int)puVar23 <= (int)psStack_90)) goto LAB_000896f8;\n                puVar44 = puVar38 + (int)psStack_90;\n                iVar29 = (int)puVar23 - (int)puVar37;\n                psStack_b0 = (ssh_sharing_connstate *)(uint)*puVar44;\n                if ((iVar29 < 4) ||\n                   (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                             (int *)&psStack_90), iVar28 == 0)) {\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\n                    if (iVar29 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar35 = 0x55e;\nLAB_00089ef0:\n                    pcVar48 = *(code **)(puVar47 + 0x88ff4);\n                    (*pcVar48)(*(int *)(puVar47 + 0x8839c) + 0x457c,\n                               *(int *)(puVar47 + 0x8839c) + 0x43dc,uVar35,\n                               *(int *)(puVar47 + 0x8839c) + 0x4870);\n                    psVar45 = psVar39;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                }\n                else {\n                  psVar45 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < 0) goto LAB_000896fc;\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\nLAB_0008a05c:\n                    iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)&psStack_90,\n                                             (int *)0x0);\n                    psVar43 = psStack_90;\n                    if ((iVar28 == 0) ||\n                       (unaff_s6 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_0008a304;\n                    puVar46 = puVar38 + (int)psVar45;\n                    psVar45 = (ssh_sharing_connstate *)\n                              ((uint)*puVar46 << 0x18 | (uint)puVar46[3] | (uint)puVar46[1] << 0x10\n                              | (uint)puVar46[2] << 8);\n                    iVar28 = (**(code **)(puVar47 + 0x88ba0))\n                                       (cs_00->parent->ssh,psStack_90,psVar45,cs_00);\n                    if (iVar28 == 0) {\n                      if (psStack_b0 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar31 = *puVar44;\n                      *puVar44 = 1;\n                      if (bVar31 == 0) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar28 = 0;\n                      }\n                      (**(code **)(puVar47 + 0x88b70))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                      e_00 = (share_forwarding *)(**(code **)(puVar47 + 0x88390))(1,0xc);\n                      pcVar17 = (char *)(**(code **)(puVar47 + 0x883c0))(psVar43);\n                      t = cs_00->forwardings;\n                      e_00->host = pcVar17;\n                      e_00->port = (int)psVar45;\n                      e_00->active = 0;\n                      psVar25 = (share_forwarding *)add234(t,e_00);\n                      if (e_00 == psVar25) {\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                        psVar26 = (share_globreq *)(**(code **)(puVar47 + 0x88390))(1,0x10);\n                        psVar30 = cs_00->globreq_tail;\n                        psVar26->next = (share_globreq *)0x0;\n                        if (psVar30 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar26;\n                        }\n                        else {\n                          psVar30->next = psVar26;\n                        }\n                        psVar26->fwd = e_00;\n                        psVar26->type = 0;\n                        psVar26->want_reply = (int)psStack_b0;\n                      }\n                      else {\n                        (**(code **)(puVar47 + 0x88394))(e_00);\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(puVar47 + 0x88394))(psVar43);\n                    cs_00->recvlen = 0;\n                    unaff_s6 = psVar43;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                pcVar17 = (char *)(*pcVar48)(iVar28 + 0x455c);\n                psVar45 = psVar39;\n                goto LAB_00089674;\n              }" { (if_statement "if (bVar31 == 4) goto LAB_00089714;" if (parenthesized_expression "(bVar31 == 4)" ( (binary_expression "bVar31 == 4" identifier == number_literal) )) (goto_statement "goto LAB_00089714;" goto statement_identifier ;)) (if_statement "if (bVar31 != 0x50) goto LAB_0008965c;" if (parenthesized_expression "(bVar31 != 0x50)" ( (binary_expression "bVar31 != 0x50" identifier != number_literal) )) (goto_statement "goto LAB_0008965c;" goto statement_identifier ;)) (expression_statement "iVar28 = *(int *)(puVar47 + 0x8839c);" (assignment_expression "iVar28 = *(int *)(puVar47 + 0x8839c)" identifier = (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" identifier + number_literal) ))))) ;) (expression_statement "psVar39 = psVar45;" (assignment_expression "psVar39 = psVar45" identifier = identifier) ;) (if_statement "if ((int)puVar23 < 4) goto LAB_000896fc;" if (parenthesized_expression "((int)puVar23 < 4)" ( (binary_expression "(int)puVar23 < 4" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_000896fc;" goto statement_identifier ;)) (expression_statement "psVar39 = (ssh_sharing_connstate *)(*(int *)(puVar47 + 0x88acc) + 0x79c0);" (assignment_expression "psVar39 = (ssh_sharing_connstate *)(*(int *)(puVar47 + 0x88acc) + 0x79c0)" identifier = (cast_expression "(ssh_sharing_connstate *)(*(int *)(puVar47 + 0x88acc) + 0x79c0)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar47 + 0x88acc) + 0x79c0)" ( (binary_expression "*(int *)(puVar47 + 0x88acc) + 0x79c0" (pointer_expression "*(int *)(puVar47 + 0x88acc)" * (cast_expression "(int *)(puVar47 + 0x88acc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x88acc)" ( (binary_expression "puVar47 + 0x88acc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)&psStack_90,(int *)0x0);" (assignment_expression "iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)&psStack_90,(int *)0x0)" identifier = (call_expression "getstring_inner(puVar38,(int)puVar23,(char **)&psStack_90,(int *)0x0)" identifier (argument_list "(puVar38,(int)puVar23,(char **)&psStack_90,(int *)0x0)" ( identifier , (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(char **)&psStack_90" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&psStack_90" & identifier)) , (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "psVar43 = psStack_90;" (assignment_expression "psVar43 = psStack_90" identifier = identifier) ;) (if_statement "if ((iVar28 == 0) || (psStack_90 == (ssh_sharing_connstate *)0x0))\n                goto LAB_000896f8;" if (parenthesized_expression "((iVar28 == 0) || (psStack_90 == (ssh_sharing_connstate *)0x0))" ( (binary_expression "(iVar28 == 0) || (psStack_90 == (ssh_sharing_connstate *)0x0)" (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) || (parenthesized_expression "(psStack_90 == (ssh_sharing_connstate *)0x0)" ( (binary_expression "psStack_90 == (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_000896f8;" goto statement_identifier ;)) (expression_statement "iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x30e8);" (assignment_expression "iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x30e8)" identifier = (call_expression "(**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x30e8)" (parenthesized_expression "(**(code **)(puVar47 + 0x8953c))" ( (pointer_expression "**(code **)(puVar47 + 0x8953c)" * (pointer_expression "*(code **)(puVar47 + 0x8953c)" * (cast_expression "(code **)(puVar47 + 0x8953c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x8953c)" ( (binary_expression "puVar47 + 0x8953c" identifier + number_literal) ))))) )) (argument_list "(psStack_90,*(int *)(puVar47 + 0x8839c) + -0x30e8)" ( identifier , (binary_expression "*(int *)(puVar47 + 0x8839c) + -0x30e8" (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar28 != 0) {\n                  iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                     (psVar43,*(int *)(puVar47 + 0x8839c) + -0x317c);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psVar45 = psVar39;\n                  if (iVar28 == 0) {\n                    (*pcVar48)(psVar43);\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar43 = psStack_90;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                       (int)psStack_90 < (int)puVar23)) {\n                      psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90);\n                      iVar29 = (int)puVar23 - (int)puVar37;\n                      cVar1 = *(char *)&psStack_b0->fn;\n                      if ((iVar29 < 4) ||\n                         (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                                   (int *)&psStack_90), iVar28 == 0)) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if ((int)psVar43 < (int)&unaff_s6[-1].globreq_head) {\n                          if (iVar29 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar35 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        psVar43 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if (-1 < (int)psVar43) {\n                          pcVar48 = *(code **)(puVar47 + 0x8844c);\n                          if ((int)&unaff_s6[-1].globreq_head <= (int)psVar43) goto LAB_00089700;\nLAB_000892a4:\n                          iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,\n                                                   (char **)&psStack_90,(int *)0x0);\n                          psVar45 = psStack_90;\n                          if ((iVar28 == 0) ||\n                             (psVar39 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_00089eec;\n                          puVar44 = puVar38 + (int)psVar43;\n                          bVar31 = *puVar44;\n                          bVar2 = puVar44[1];\n                          bVar3 = puVar44[3];\n                          bVar4 = puVar44[2];\n                          psStack_90 = (ssh_sharing_connstate *)\n                                       (**(code **)(puVar47 + 0x883c0))(psStack_90);\n                          psStack_8c = (ssh_sharing_connstate *)\n                                       ((uint)bVar31 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                       (uint)bVar4 << 8);\n                          unaff_s6 = (ssh_sharing_connstate *)\n                                     find234(cs_00->forwardings,&psStack_90,(cmpfn234)0x0);\n                          (**(code **)(puVar47 + 0x88394))(psStack_90);\n                          if (unaff_s6 == (ssh_sharing_connstate *)0x0) {\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                            if (cVar1 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            cVar1 = *(char *)&psStack_b0->fn;\n                            *(undefined1 *)&psStack_b0->fn = 1;\n                            if (cVar1 == '\0') {\n                              iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar28 = 0;\n                            }\n                            (**(code **)(puVar47 + 0x88b70))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                            (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\nLAB_00089394:\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                          }\n                          (*pcVar48)(psVar45);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar48)();\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar39 = psVar45;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       ((int)psStack_90 < (int)puVar23)) {\n                      if (puVar38[(int)psStack_90] == '\0') goto LAB_000893a4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  goto LAB_000896fc;\n                }" if (parenthesized_expression "(iVar28 != 0)" ( (binary_expression "iVar28 != 0" identifier != number_literal) )) (compound_statement "{\n                  iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                     (psVar43,*(int *)(puVar47 + 0x8839c) + -0x317c);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psVar45 = psVar39;\n                  if (iVar28 == 0) {\n                    (*pcVar48)(psVar43);\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar43 = psStack_90;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                       (int)psStack_90 < (int)puVar23)) {\n                      psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90);\n                      iVar29 = (int)puVar23 - (int)puVar37;\n                      cVar1 = *(char *)&psStack_b0->fn;\n                      if ((iVar29 < 4) ||\n                         (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                                   (int *)&psStack_90), iVar28 == 0)) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if ((int)psVar43 < (int)&unaff_s6[-1].globreq_head) {\n                          if (iVar29 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar35 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        psVar43 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if (-1 < (int)psVar43) {\n                          pcVar48 = *(code **)(puVar47 + 0x8844c);\n                          if ((int)&unaff_s6[-1].globreq_head <= (int)psVar43) goto LAB_00089700;\nLAB_000892a4:\n                          iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,\n                                                   (char **)&psStack_90,(int *)0x0);\n                          psVar45 = psStack_90;\n                          if ((iVar28 == 0) ||\n                             (psVar39 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_00089eec;\n                          puVar44 = puVar38 + (int)psVar43;\n                          bVar31 = *puVar44;\n                          bVar2 = puVar44[1];\n                          bVar3 = puVar44[3];\n                          bVar4 = puVar44[2];\n                          psStack_90 = (ssh_sharing_connstate *)\n                                       (**(code **)(puVar47 + 0x883c0))(psStack_90);\n                          psStack_8c = (ssh_sharing_connstate *)\n                                       ((uint)bVar31 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                       (uint)bVar4 << 8);\n                          unaff_s6 = (ssh_sharing_connstate *)\n                                     find234(cs_00->forwardings,&psStack_90,(cmpfn234)0x0);\n                          (**(code **)(puVar47 + 0x88394))(psStack_90);\n                          if (unaff_s6 == (ssh_sharing_connstate *)0x0) {\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                            if (cVar1 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            cVar1 = *(char *)&psStack_b0->fn;\n                            *(undefined1 *)&psStack_b0->fn = 1;\n                            if (cVar1 == '\0') {\n                              iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar28 = 0;\n                            }\n                            (**(code **)(puVar47 + 0x88b70))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                            (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\nLAB_00089394:\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                          }\n                          (*pcVar48)(psVar45);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar48)();\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar39 = psVar45;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       ((int)psStack_90 < (int)puVar23)) {\n                      if (puVar38[(int)psStack_90] == '\0') goto LAB_000893a4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  goto LAB_000896fc;\n                }" { (expression_statement "iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                     (psVar43,*(int *)(puVar47 + 0x8839c) + -0x317c);" (assignment_expression "iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                     (psVar43,*(int *)(puVar47 + 0x8839c) + -0x317c)" identifier = (call_expression "(**(code **)(puVar47 + 0x8953c))\n                                     (psVar43,*(int *)(puVar47 + 0x8839c) + -0x317c)" (parenthesized_expression "(**(code **)(puVar47 + 0x8953c))" ( (pointer_expression "**(code **)(puVar47 + 0x8953c)" * (pointer_expression "*(code **)(puVar47 + 0x8953c)" * (cast_expression "(code **)(puVar47 + 0x8953c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x8953c)" ( (binary_expression "puVar47 + 0x8953c" identifier + number_literal) ))))) )) (argument_list "(psVar43,*(int *)(puVar47 + 0x8839c) + -0x317c)" ( identifier , (binary_expression "*(int *)(puVar47 + 0x8839c) + -0x317c" (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pcVar48 = *(code **)(puVar47 + 0x88394);" (assignment_expression "pcVar48 = *(code **)(puVar47 + 0x88394)" identifier = (pointer_expression "*(code **)(puVar47 + 0x88394)" * (cast_expression "(code **)(puVar47 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88394)" ( (binary_expression "puVar47 + 0x88394" identifier + number_literal) ))))) ;) (expression_statement "psVar45 = psVar39;" (assignment_expression "psVar45 = psVar39" identifier = identifier) ;) (if_statement "if (iVar28 == 0) {\n                    (*pcVar48)(psVar43);\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar43 = psStack_90;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                       (int)psStack_90 < (int)puVar23)) {\n                      psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90);\n                      iVar29 = (int)puVar23 - (int)puVar37;\n                      cVar1 = *(char *)&psStack_b0->fn;\n                      if ((iVar29 < 4) ||\n                         (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                                   (int *)&psStack_90), iVar28 == 0)) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if ((int)psVar43 < (int)&unaff_s6[-1].globreq_head) {\n                          if (iVar29 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar35 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        psVar43 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if (-1 < (int)psVar43) {\n                          pcVar48 = *(code **)(puVar47 + 0x8844c);\n                          if ((int)&unaff_s6[-1].globreq_head <= (int)psVar43) goto LAB_00089700;\nLAB_000892a4:\n                          iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,\n                                                   (char **)&psStack_90,(int *)0x0);\n                          psVar45 = psStack_90;\n                          if ((iVar28 == 0) ||\n                             (psVar39 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_00089eec;\n                          puVar44 = puVar38 + (int)psVar43;\n                          bVar31 = *puVar44;\n                          bVar2 = puVar44[1];\n                          bVar3 = puVar44[3];\n                          bVar4 = puVar44[2];\n                          psStack_90 = (ssh_sharing_connstate *)\n                                       (**(code **)(puVar47 + 0x883c0))(psStack_90);\n                          psStack_8c = (ssh_sharing_connstate *)\n                                       ((uint)bVar31 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                       (uint)bVar4 << 8);\n                          unaff_s6 = (ssh_sharing_connstate *)\n                                     find234(cs_00->forwardings,&psStack_90,(cmpfn234)0x0);\n                          (**(code **)(puVar47 + 0x88394))(psStack_90);\n                          if (unaff_s6 == (ssh_sharing_connstate *)0x0) {\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                            if (cVar1 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            cVar1 = *(char *)&psStack_b0->fn;\n                            *(undefined1 *)&psStack_b0->fn = 1;\n                            if (cVar1 == '\0') {\n                              iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar28 = 0;\n                            }\n                            (**(code **)(puVar47 + 0x88b70))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                            (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\nLAB_00089394:\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                          }\n                          (*pcVar48)(psVar45);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar48)();\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar39 = psVar45;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       ((int)psStack_90 < (int)puVar23)) {\n                      if (puVar38[(int)psStack_90] == '\0') goto LAB_000893a4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000893ac;\n                    }\n                  }" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (compound_statement "{\n                    (*pcVar48)(psVar43);\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar43 = psStack_90;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                       (int)psStack_90 < (int)puVar23)) {\n                      psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90);\n                      iVar29 = (int)puVar23 - (int)puVar37;\n                      cVar1 = *(char *)&psStack_b0->fn;\n                      if ((iVar29 < 4) ||\n                         (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                                   (int *)&psStack_90), iVar28 == 0)) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if ((int)psVar43 < (int)&unaff_s6[-1].globreq_head) {\n                          if (iVar29 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar35 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        psVar43 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if (-1 < (int)psVar43) {\n                          pcVar48 = *(code **)(puVar47 + 0x8844c);\n                          if ((int)&unaff_s6[-1].globreq_head <= (int)psVar43) goto LAB_00089700;\nLAB_000892a4:\n                          iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,\n                                                   (char **)&psStack_90,(int *)0x0);\n                          psVar45 = psStack_90;\n                          if ((iVar28 == 0) ||\n                             (psVar39 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_00089eec;\n                          puVar44 = puVar38 + (int)psVar43;\n                          bVar31 = *puVar44;\n                          bVar2 = puVar44[1];\n                          bVar3 = puVar44[3];\n                          bVar4 = puVar44[2];\n                          psStack_90 = (ssh_sharing_connstate *)\n                                       (**(code **)(puVar47 + 0x883c0))(psStack_90);\n                          psStack_8c = (ssh_sharing_connstate *)\n                                       ((uint)bVar31 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                       (uint)bVar4 << 8);\n                          unaff_s6 = (ssh_sharing_connstate *)\n                                     find234(cs_00->forwardings,&psStack_90,(cmpfn234)0x0);\n                          (**(code **)(puVar47 + 0x88394))(psStack_90);\n                          if (unaff_s6 == (ssh_sharing_connstate *)0x0) {\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                            if (cVar1 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            cVar1 = *(char *)&psStack_b0->fn;\n                            *(undefined1 *)&psStack_b0->fn = 1;\n                            if (cVar1 == '\0') {\n                              iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar28 = 0;\n                            }\n                            (**(code **)(puVar47 + 0x88b70))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                            (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\nLAB_00089394:\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                          }\n                          (*pcVar48)(psVar45);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }" { (expression_statement "(*pcVar48)(psVar43);" (call_expression "(*pcVar48)(psVar43)" (parenthesized_expression "(*pcVar48)" ( (pointer_expression "*pcVar48" * identifier) )) (argument_list "(psVar43)" ( identifier ))) ;) (expression_statement "iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);" (assignment_expression "iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90)" identifier = (call_expression "getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90)" identifier (argument_list "(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90)" ( identifier , (cast_expression "(int)puVar23" ( (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_90" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psStack_90" & identifier)) )))) ;) (expression_statement "psVar43 = psStack_90;" (assignment_expression "psVar43 = psStack_90" identifier = identifier) ;) (if_statement "if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                       (int)psStack_90 < (int)puVar23)) {\n                      psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90);\n                      iVar29 = (int)puVar23 - (int)puVar37;\n                      cVar1 = *(char *)&psStack_b0->fn;\n                      if ((iVar29 < 4) ||\n                         (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                                   (int *)&psStack_90), iVar28 == 0)) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if ((int)psVar43 < (int)&unaff_s6[-1].globreq_head) {\n                          if (iVar29 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar35 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        psVar43 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if (-1 < (int)psVar43) {\n                          pcVar48 = *(code **)(puVar47 + 0x8844c);\n                          if ((int)&unaff_s6[-1].globreq_head <= (int)psVar43) goto LAB_00089700;\nLAB_000892a4:\n                          iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,\n                                                   (char **)&psStack_90,(int *)0x0);\n                          psVar45 = psStack_90;\n                          if ((iVar28 == 0) ||\n                             (psVar39 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_00089eec;\n                          puVar44 = puVar38 + (int)psVar43;\n                          bVar31 = *puVar44;\n                          bVar2 = puVar44[1];\n                          bVar3 = puVar44[3];\n                          bVar4 = puVar44[2];\n                          psStack_90 = (ssh_sharing_connstate *)\n                                       (**(code **)(puVar47 + 0x883c0))(psStack_90);\n                          psStack_8c = (ssh_sharing_connstate *)\n                                       ((uint)bVar31 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                       (uint)bVar4 << 8);\n                          unaff_s6 = (ssh_sharing_connstate *)\n                                     find234(cs_00->forwardings,&psStack_90,(cmpfn234)0x0);\n                          (**(code **)(puVar47 + 0x88394))(psStack_90);\n                          if (unaff_s6 == (ssh_sharing_connstate *)0x0) {\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                            if (cVar1 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            cVar1 = *(char *)&psStack_b0->fn;\n                            *(undefined1 *)&psStack_b0->fn = 1;\n                            if (cVar1 == '\0') {\n                              iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar28 = 0;\n                            }\n                            (**(code **)(puVar47 + 0x88b70))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                            (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\nLAB_00089394:\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                          }\n                          (*pcVar48)(psVar45);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }" if (parenthesized_expression "(((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                       (int)psStack_90 < (int)puVar23))" ( (binary_expression "((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                       (int)psStack_90 < (int)puVar23)" (parenthesized_expression "((iVar28 != 0) && (-1 < (int)psStack_90))" ( (binary_expression "(iVar28 != 0) && (-1 < (int)psStack_90)" (parenthesized_expression "(iVar28 != 0)" ( (binary_expression "iVar28 != 0" identifier != number_literal) )) && (parenthesized_expression "(-1 < (int)psStack_90)" ( (binary_expression "-1 < (int)psStack_90" number_literal < (cast_expression "(int)psStack_90" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) && (parenthesized_expression "(puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                       (int)psStack_90 < (int)puVar23)" ( (comma_expression "puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                       (int)psStack_90 < (int)puVar23" (assignment_expression "puVar37 = (undefined *)((int)&psStack_90->fn + 1)" identifier = (cast_expression "(undefined *)((int)&psStack_90->fn + 1)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psStack_90->fn + 1)" ( (binary_expression "(int)&psStack_90->fn + 1" (cast_expression "(int)&psStack_90->fn" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psStack_90->fn" & (field_expression "psStack_90->fn" identifier -> field_identifier))) + number_literal) )))) , (binary_expression "(int)psStack_90 < (int)puVar23" (cast_expression "(int)psStack_90" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\n                      psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90);\n                      iVar29 = (int)puVar23 - (int)puVar37;\n                      cVar1 = *(char *)&psStack_b0->fn;\n                      if ((iVar29 < 4) ||\n                         (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                                   (int *)&psStack_90), iVar28 == 0)) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if ((int)psVar43 < (int)&unaff_s6[-1].globreq_head) {\n                          if (iVar29 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar35 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        psVar43 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if (-1 < (int)psVar43) {\n                          pcVar48 = *(code **)(puVar47 + 0x8844c);\n                          if ((int)&unaff_s6[-1].globreq_head <= (int)psVar43) goto LAB_00089700;\nLAB_000892a4:\n                          iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,\n                                                   (char **)&psStack_90,(int *)0x0);\n                          psVar45 = psStack_90;\n                          if ((iVar28 == 0) ||\n                             (psVar39 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_00089eec;\n                          puVar44 = puVar38 + (int)psVar43;\n                          bVar31 = *puVar44;\n                          bVar2 = puVar44[1];\n                          bVar3 = puVar44[3];\n                          bVar4 = puVar44[2];\n                          psStack_90 = (ssh_sharing_connstate *)\n                                       (**(code **)(puVar47 + 0x883c0))(psStack_90);\n                          psStack_8c = (ssh_sharing_connstate *)\n                                       ((uint)bVar31 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                       (uint)bVar4 << 8);\n                          unaff_s6 = (ssh_sharing_connstate *)\n                                     find234(cs_00->forwardings,&psStack_90,(cmpfn234)0x0);\n                          (**(code **)(puVar47 + 0x88394))(psStack_90);\n                          if (unaff_s6 == (ssh_sharing_connstate *)0x0) {\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                            if (cVar1 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            cVar1 = *(char *)&psStack_b0->fn;\n                            *(undefined1 *)&psStack_b0->fn = 1;\n                            if (cVar1 == '\0') {\n                              iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar28 = 0;\n                            }\n                            (**(code **)(puVar47 + 0x88b70))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                            (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\nLAB_00089394:\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                          }\n                          (*pcVar48)(psVar45);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }" { (expression_statement "psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90);" (assignment_expression "psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90)" identifier = (cast_expression "(ssh_sharing_connstate *)(puVar38 + (int)psStack_90)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + (int)psStack_90)" ( (binary_expression "puVar38 + (int)psStack_90" identifier + (cast_expression "(int)psStack_90" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar29 = (int)puVar23 - (int)puVar37;" (assignment_expression "iVar29 = (int)puVar23 - (int)puVar37" identifier = (binary_expression "(int)puVar23 - (int)puVar37" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar37" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "cVar1 = *(char *)&psStack_b0->fn;" (assignment_expression "cVar1 = *(char *)&psStack_b0->fn" identifier = (pointer_expression "*(char *)&psStack_b0->fn" * (cast_expression "(char *)&psStack_b0->fn" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psStack_b0->fn" & (field_expression "psStack_b0->fn" identifier -> field_identifier))))) ;) (if_statement "if ((iVar29 < 4) ||\n                         (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                                   (int *)&psStack_90), iVar28 == 0)) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if ((int)psVar43 < (int)&unaff_s6[-1].globreq_head) {\n                          if (iVar29 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar35 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        psVar43 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if (-1 < (int)psVar43) {\n                          pcVar48 = *(code **)(puVar47 + 0x8844c);\n                          if ((int)&unaff_s6[-1].globreq_head <= (int)psVar43) goto LAB_00089700;\nLAB_000892a4:\n                          iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,\n                                                   (char **)&psStack_90,(int *)0x0);\n                          psVar45 = psStack_90;\n                          if ((iVar28 == 0) ||\n                             (psVar39 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_00089eec;\n                          puVar44 = puVar38 + (int)psVar43;\n                          bVar31 = *puVar44;\n                          bVar2 = puVar44[1];\n                          bVar3 = puVar44[3];\n                          bVar4 = puVar44[2];\n                          psStack_90 = (ssh_sharing_connstate *)\n                                       (**(code **)(puVar47 + 0x883c0))(psStack_90);\n                          psStack_8c = (ssh_sharing_connstate *)\n                                       ((uint)bVar31 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                       (uint)bVar4 << 8);\n                          unaff_s6 = (ssh_sharing_connstate *)\n                                     find234(cs_00->forwardings,&psStack_90,(cmpfn234)0x0);\n                          (**(code **)(puVar47 + 0x88394))(psStack_90);\n                          if (unaff_s6 == (ssh_sharing_connstate *)0x0) {\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                            if (cVar1 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            cVar1 = *(char *)&psStack_b0->fn;\n                            *(undefined1 *)&psStack_b0->fn = 1;\n                            if (cVar1 == '\0') {\n                              iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar28 = 0;\n                            }\n                            (**(code **)(puVar47 + 0x88b70))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                            (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\nLAB_00089394:\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                          }\n                          (*pcVar48)(psVar45);\n                          goto LAB_000893a4;\n                        }\n                      }" if (parenthesized_expression "((iVar29 < 4) ||\n                         (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                                   (int *)&psStack_90), iVar28 == 0))" ( (binary_expression "(iVar29 < 4) ||\n                         (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                                   (int *)&psStack_90), iVar28 == 0)" (parenthesized_expression "(iVar29 < 4)" ( (binary_expression "iVar29 < 4" identifier < number_literal) )) || (parenthesized_expression "(iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                                   (int *)&psStack_90), iVar28 == 0)" ( (comma_expression "iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                                   (int *)&psStack_90), iVar28 == 0" (assignment_expression "iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                                   (int *)&psStack_90)" identifier = (call_expression "getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                                   (int *)&psStack_90)" identifier (argument_list "(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                                   (int *)&psStack_90)" ( (binary_expression "puVar38 + (int)puVar37" identifier + (cast_expression "(int)puVar37" ( (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_90" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psStack_90" & identifier)) )))) , (binary_expression "iVar28 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if ((int)psVar43 < (int)&unaff_s6[-1].globreq_head) {\n                          if (iVar29 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar35 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }" { (expression_statement "iVar28 = *(int *)(puVar47 + 0x8839c);" (assignment_expression "iVar28 = *(int *)(puVar47 + 0x8839c)" identifier = (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" identifier + number_literal) ))))) ;) (if_statement "if ((int)psVar43 < (int)&unaff_s6[-1].globreq_head) {\n                          if (iVar29 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar35 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }" if (parenthesized_expression "((int)psVar43 < (int)&unaff_s6[-1].globreq_head)" ( (binary_expression "(int)psVar43 < (int)&unaff_s6[-1].globreq_head" (cast_expression "(int)psVar43" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)&unaff_s6[-1].globreq_head" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s6[-1].globreq_head" & (field_expression "unaff_s6[-1].globreq_head" (subscript_expression "unaff_s6[-1]" identifier [ number_literal ]) . field_identifier)))) )) (compound_statement "{\n                          if (iVar29 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar35 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }" { (if_statement "if (iVar29 >= 4) goto LAB_000892a4;" if (parenthesized_expression "(iVar29 >= 4)" ( (binary_expression "iVar29 >= 4" identifier >= number_literal) )) (goto_statement "goto LAB_000892a4;" goto statement_identifier ;)) (labeled_statement "LAB_00089eec:\n                          uVar35 = 0x5a7;" statement_identifier : (expression_statement "uVar35 = 0x5a7;" (assignment_expression "uVar35 = 0x5a7" identifier = number_literal) ;)) (goto_statement "goto LAB_00089ef0;" goto statement_identifier ;) })) }) (else_clause "else {\n                        psVar43 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if (-1 < (int)psVar43) {\n                          pcVar48 = *(code **)(puVar47 + 0x8844c);\n                          if ((int)&unaff_s6[-1].globreq_head <= (int)psVar43) goto LAB_00089700;\nLAB_000892a4:\n                          iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,\n                                                   (char **)&psStack_90,(int *)0x0);\n                          psVar45 = psStack_90;\n                          if ((iVar28 == 0) ||\n                             (psVar39 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_00089eec;\n                          puVar44 = puVar38 + (int)psVar43;\n                          bVar31 = *puVar44;\n                          bVar2 = puVar44[1];\n                          bVar3 = puVar44[3];\n                          bVar4 = puVar44[2];\n                          psStack_90 = (ssh_sharing_connstate *)\n                                       (**(code **)(puVar47 + 0x883c0))(psStack_90);\n                          psStack_8c = (ssh_sharing_connstate *)\n                                       ((uint)bVar31 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                       (uint)bVar4 << 8);\n                          unaff_s6 = (ssh_sharing_connstate *)\n                                     find234(cs_00->forwardings,&psStack_90,(cmpfn234)0x0);\n                          (**(code **)(puVar47 + 0x88394))(psStack_90);\n                          if (unaff_s6 == (ssh_sharing_connstate *)0x0) {\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                            if (cVar1 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            cVar1 = *(char *)&psStack_b0->fn;\n                            *(undefined1 *)&psStack_b0->fn = 1;\n                            if (cVar1 == '\0') {\n                              iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar28 = 0;\n                            }\n                            (**(code **)(puVar47 + 0x88b70))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                            (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\nLAB_00089394:\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                          }\n                          (*pcVar48)(psVar45);\n                          goto LAB_000893a4;\n                        }\n                      }" else (compound_statement "{\n                        psVar43 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                        iVar28 = *(int *)(puVar47 + 0x8839c);\n                        if (-1 < (int)psVar43) {\n                          pcVar48 = *(code **)(puVar47 + 0x8844c);\n                          if ((int)&unaff_s6[-1].globreq_head <= (int)psVar43) goto LAB_00089700;\nLAB_000892a4:\n                          iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,\n                                                   (char **)&psStack_90,(int *)0x0);\n                          psVar45 = psStack_90;\n                          if ((iVar28 == 0) ||\n                             (psVar39 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_00089eec;\n                          puVar44 = puVar38 + (int)psVar43;\n                          bVar31 = *puVar44;\n                          bVar2 = puVar44[1];\n                          bVar3 = puVar44[3];\n                          bVar4 = puVar44[2];\n                          psStack_90 = (ssh_sharing_connstate *)\n                                       (**(code **)(puVar47 + 0x883c0))(psStack_90);\n                          psStack_8c = (ssh_sharing_connstate *)\n                                       ((uint)bVar31 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                       (uint)bVar4 << 8);\n                          unaff_s6 = (ssh_sharing_connstate *)\n                                     find234(cs_00->forwardings,&psStack_90,(cmpfn234)0x0);\n                          (**(code **)(puVar47 + 0x88394))(psStack_90);\n                          if (unaff_s6 == (ssh_sharing_connstate *)0x0) {\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                            if (cVar1 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            cVar1 = *(char *)&psStack_b0->fn;\n                            *(undefined1 *)&psStack_b0->fn = 1;\n                            if (cVar1 == '\0') {\n                              iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar28 = 0;\n                            }\n                            (**(code **)(puVar47 + 0x88b70))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                            (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\nLAB_00089394:\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                          }\n                          (*pcVar48)(psVar45);\n                          goto LAB_000893a4;\n                        }\n                      }" { (expression_statement "psVar43 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);" (assignment_expression "psVar43 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90)" identifier = (cast_expression "(ssh_sharing_connstate *)(puVar37 + (int)psStack_90)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + (int)psStack_90)" ( (binary_expression "puVar37 + (int)psStack_90" identifier + (cast_expression "(int)psStack_90" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar28 = *(int *)(puVar47 + 0x8839c);" (assignment_expression "iVar28 = *(int *)(puVar47 + 0x8839c)" identifier = (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" identifier + number_literal) ))))) ;) (if_statement "if (-1 < (int)psVar43) {\n                          pcVar48 = *(code **)(puVar47 + 0x8844c);\n                          if ((int)&unaff_s6[-1].globreq_head <= (int)psVar43) goto LAB_00089700;\nLAB_000892a4:\n                          iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,\n                                                   (char **)&psStack_90,(int *)0x0);\n                          psVar45 = psStack_90;\n                          if ((iVar28 == 0) ||\n                             (psVar39 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_00089eec;\n                          puVar44 = puVar38 + (int)psVar43;\n                          bVar31 = *puVar44;\n                          bVar2 = puVar44[1];\n                          bVar3 = puVar44[3];\n                          bVar4 = puVar44[2];\n                          psStack_90 = (ssh_sharing_connstate *)\n                                       (**(code **)(puVar47 + 0x883c0))(psStack_90);\n                          psStack_8c = (ssh_sharing_connstate *)\n                                       ((uint)bVar31 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                       (uint)bVar4 << 8);\n                          unaff_s6 = (ssh_sharing_connstate *)\n                                     find234(cs_00->forwardings,&psStack_90,(cmpfn234)0x0);\n                          (**(code **)(puVar47 + 0x88394))(psStack_90);\n                          if (unaff_s6 == (ssh_sharing_connstate *)0x0) {\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                            if (cVar1 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            cVar1 = *(char *)&psStack_b0->fn;\n                            *(undefined1 *)&psStack_b0->fn = 1;\n                            if (cVar1 == '\0') {\n                              iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar28 = 0;\n                            }\n                            (**(code **)(puVar47 + 0x88b70))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                            (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\nLAB_00089394:\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                          }\n                          (*pcVar48)(psVar45);\n                          goto LAB_000893a4;\n                        }" if (parenthesized_expression "(-1 < (int)psVar43)" ( (binary_expression "-1 < (int)psVar43" number_literal < (cast_expression "(int)psVar43" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                          pcVar48 = *(code **)(puVar47 + 0x8844c);\n                          if ((int)&unaff_s6[-1].globreq_head <= (int)psVar43) goto LAB_00089700;\nLAB_000892a4:\n                          iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,\n                                                   (char **)&psStack_90,(int *)0x0);\n                          psVar45 = psStack_90;\n                          if ((iVar28 == 0) ||\n                             (psVar39 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_00089eec;\n                          puVar44 = puVar38 + (int)psVar43;\n                          bVar31 = *puVar44;\n                          bVar2 = puVar44[1];\n                          bVar3 = puVar44[3];\n                          bVar4 = puVar44[2];\n                          psStack_90 = (ssh_sharing_connstate *)\n                                       (**(code **)(puVar47 + 0x883c0))(psStack_90);\n                          psStack_8c = (ssh_sharing_connstate *)\n                                       ((uint)bVar31 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                       (uint)bVar4 << 8);\n                          unaff_s6 = (ssh_sharing_connstate *)\n                                     find234(cs_00->forwardings,&psStack_90,(cmpfn234)0x0);\n                          (**(code **)(puVar47 + 0x88394))(psStack_90);\n                          if (unaff_s6 == (ssh_sharing_connstate *)0x0) {\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                            if (cVar1 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            cVar1 = *(char *)&psStack_b0->fn;\n                            *(undefined1 *)&psStack_b0->fn = 1;\n                            if (cVar1 == '\0') {\n                              iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar28 = 0;\n                            }\n                            (**(code **)(puVar47 + 0x88b70))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                            (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\nLAB_00089394:\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                          }\n                          (*pcVar48)(psVar45);\n                          goto LAB_000893a4;\n                        }" { (expression_statement "pcVar48 = *(code **)(puVar47 + 0x8844c);" (assignment_expression "pcVar48 = *(code **)(puVar47 + 0x8844c)" identifier = (pointer_expression "*(code **)(puVar47 + 0x8844c)" * (cast_expression "(code **)(puVar47 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x8844c)" ( (binary_expression "puVar47 + 0x8844c" identifier + number_literal) ))))) ;) (if_statement "if ((int)&unaff_s6[-1].globreq_head <= (int)psVar43) goto LAB_00089700;" if (parenthesized_expression "((int)&unaff_s6[-1].globreq_head <= (int)psVar43)" ( (binary_expression "(int)&unaff_s6[-1].globreq_head <= (int)psVar43" (cast_expression "(int)&unaff_s6[-1].globreq_head" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s6[-1].globreq_head" & (field_expression "unaff_s6[-1].globreq_head" (subscript_expression "unaff_s6[-1]" identifier [ number_literal ]) . field_identifier))) <= (cast_expression "(int)psVar43" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00089700;" goto statement_identifier ;)) (labeled_statement "LAB_000892a4:\n                          iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,\n                                                   (char **)&psStack_90,(int *)0x0);" statement_identifier : (expression_statement "iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,\n                                                   (char **)&psStack_90,(int *)0x0);" (assignment_expression "iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,\n                                                   (char **)&psStack_90,(int *)0x0)" identifier = (call_expression "getstring_inner(puVar38 + (int)puVar37,iVar29,\n                                                   (char **)&psStack_90,(int *)0x0)" identifier (argument_list "(puVar38 + (int)puVar37,iVar29,\n                                                   (char **)&psStack_90,(int *)0x0)" ( (binary_expression "puVar38 + (int)puVar37" identifier + (cast_expression "(int)puVar37" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier , (cast_expression "(char **)&psStack_90" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&psStack_90" & identifier)) , (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;)) (expression_statement "psVar45 = psStack_90;" (assignment_expression "psVar45 = psStack_90" identifier = identifier) ;) (if_statement "if ((iVar28 == 0) ||\n                             (psVar39 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_00089eec;" if (parenthesized_expression "((iVar28 == 0) ||\n                             (psVar39 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))" ( (binary_expression "(iVar28 == 0) ||\n                             (psVar39 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0)" (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) || (parenthesized_expression "(psVar39 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0)" ( (comma_expression "psVar39 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0" (assignment_expression "psVar39 = psStack_90" identifier = identifier) , (binary_expression "psStack_90 == (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_00089eec;" goto statement_identifier ;)) (expression_statement "puVar44 = puVar38 + (int)psVar43;" (assignment_expression "puVar44 = puVar38 + (int)psVar43" identifier = (binary_expression "puVar38 + (int)psVar43" identifier + (cast_expression "(int)psVar43" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "bVar31 = *puVar44;" (assignment_expression "bVar31 = *puVar44" identifier = (pointer_expression "*puVar44" * identifier)) ;) (expression_statement "bVar2 = puVar44[1];" (assignment_expression "bVar2 = puVar44[1]" identifier = (subscript_expression "puVar44[1]" identifier [ number_literal ])) ;) (expression_statement "bVar3 = puVar44[3];" (assignment_expression "bVar3 = puVar44[3]" identifier = (subscript_expression "puVar44[3]" identifier [ number_literal ])) ;) (expression_statement "bVar4 = puVar44[2];" (assignment_expression "bVar4 = puVar44[2]" identifier = (subscript_expression "puVar44[2]" identifier [ number_literal ])) ;) (expression_statement "psStack_90 = (ssh_sharing_connstate *)\n                                       (**(code **)(puVar47 + 0x883c0))(psStack_90);" (assignment_expression "psStack_90 = (ssh_sharing_connstate *)\n                                       (**(code **)(puVar47 + 0x883c0))(psStack_90)" identifier = (cast_expression "(ssh_sharing_connstate *)\n                                       (**(code **)(puVar47 + 0x883c0))(psStack_90)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar47 + 0x883c0))(psStack_90)" (parenthesized_expression "(**(code **)(puVar47 + 0x883c0))" ( (pointer_expression "**(code **)(puVar47 + 0x883c0)" * (pointer_expression "*(code **)(puVar47 + 0x883c0)" * (cast_expression "(code **)(puVar47 + 0x883c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x883c0)" ( (binary_expression "puVar47 + 0x883c0" identifier + number_literal) ))))) )) (argument_list "(psStack_90)" ( identifier ))))) ;) (expression_statement "psStack_8c = (ssh_sharing_connstate *)\n                                       ((uint)bVar31 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                       (uint)bVar4 << 8);" (assignment_expression "psStack_8c = (ssh_sharing_connstate *)\n                                       ((uint)bVar31 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                       (uint)bVar4 << 8)" identifier = (cast_expression "(ssh_sharing_connstate *)\n                                       ((uint)bVar31 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                       (uint)bVar4 << 8)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)bVar31 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                       (uint)bVar4 << 8)" ( (binary_expression "(uint)bVar31 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                       (uint)bVar4 << 8" (binary_expression "(uint)bVar31 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10" (binary_expression "(uint)bVar31 << 0x18 | (uint)bVar3" (binary_expression "(uint)bVar31 << 0x18" (cast_expression "(uint)bVar31" ( (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 "unaff_s6 = (ssh_sharing_connstate *)\n                                     find234(cs_00->forwardings,&psStack_90,(cmpfn234)0x0);" (assignment_expression "unaff_s6 = (ssh_sharing_connstate *)\n                                     find234(cs_00->forwardings,&psStack_90,(cmpfn234)0x0)" identifier = (cast_expression "(ssh_sharing_connstate *)\n                                     find234(cs_00->forwardings,&psStack_90,(cmpfn234)0x0)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "find234(cs_00->forwardings,&psStack_90,(cmpfn234)0x0)" identifier (argument_list "(cs_00->forwardings,&psStack_90,(cmpfn234)0x0)" ( (field_expression "cs_00->forwardings" identifier -> field_identifier) , (pointer_expression "&psStack_90" & identifier) , (cast_expression "(cmpfn234)0x0" ( (type_descriptor "cmpfn234" type_identifier) ) number_literal) ))))) ;) (expression_statement "(**(code **)(puVar47 + 0x88394))(psStack_90);" (call_expression "(**(code **)(puVar47 + 0x88394))(psStack_90)" (parenthesized_expression "(**(code **)(puVar47 + 0x88394))" ( (pointer_expression "**(code **)(puVar47 + 0x88394)" * (pointer_expression "*(code **)(puVar47 + 0x88394)" * (cast_expression "(code **)(puVar47 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88394)" ( (binary_expression "puVar47 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(psStack_90)" ( identifier ))) ;) (if_statement "if (unaff_s6 == (ssh_sharing_connstate *)0x0) {\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                            if (cVar1 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            cVar1 = *(char *)&psStack_b0->fn;\n                            *(undefined1 *)&psStack_b0->fn = 1;\n                            if (cVar1 == '\0') {\n                              iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar28 = 0;\n                            }\n                            (**(code **)(puVar47 + 0x88b70))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                            (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\nLAB_00089394:\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                          }" if (parenthesized_expression "(unaff_s6 == (ssh_sharing_connstate *)0x0)" ( (binary_expression "unaff_s6 == (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                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                            if (cVar1 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_00089394;\n                            }\n                          }" { (expression_statement "pcVar48 = *(code **)(puVar47 + 0x88394);" (assignment_expression "pcVar48 = *(code **)(puVar47 + 0x88394)" identifier = (pointer_expression "*(code **)(puVar47 + 0x88394)" * (cast_expression "(code **)(puVar47 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88394)" ( (binary_expression "puVar47 + 0x88394" identifier + number_literal) ))))) ;) (if_statement "if (cVar1 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_00089394;\n                            }" if (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\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 *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_00089394;\n                            }" { (expression_statement "send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),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 *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                         (share_channel *)0x0,(share_channel *)0xc)" identifier (argument_list "((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),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 *)(puVar47 + 0x8839c) + -0x4be4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar47 + 0x8839c) + -0x4be4)" ( (binary_expression "*(int *)(puVar47 + 0x8839c) + -0x4be4" (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" 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_00089394;" goto statement_identifier ;) })) }) (else_clause "else {\n                            cVar1 = *(char *)&psStack_b0->fn;\n                            *(undefined1 *)&psStack_b0->fn = 1;\n                            if (cVar1 == '\0') {\n                              iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar28 = 0;\n                            }\n                            (**(code **)(puVar47 + 0x88b70))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                            (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\nLAB_00089394:\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                          }" else (compound_statement "{\n                            cVar1 = *(char *)&psStack_b0->fn;\n                            *(undefined1 *)&psStack_b0->fn = 1;\n                            if (cVar1 == '\0') {\n                              iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar28 = 0;\n                            }\n                            (**(code **)(puVar47 + 0x88b70))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                            (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\nLAB_00089394:\n                            pcVar48 = *(code **)(puVar47 + 0x88394);\n                          }" { (expression_statement "cVar1 = *(char *)&psStack_b0->fn;" (assignment_expression "cVar1 = *(char *)&psStack_b0->fn" identifier = (pointer_expression "*(char *)&psStack_b0->fn" * (cast_expression "(char *)&psStack_b0->fn" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psStack_b0->fn" & (field_expression "psStack_b0->fn" identifier -> field_identifier))))) ;) (expression_statement "*(undefined1 *)&psStack_b0->fn = 1;" (assignment_expression "*(undefined1 *)&psStack_b0->fn = 1" (pointer_expression "*(undefined1 *)&psStack_b0->fn" * (cast_expression "(undefined1 *)&psStack_b0->fn" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psStack_b0->fn" & (field_expression "psStack_b0->fn" identifier -> field_identifier)))) = number_literal) ;) (if_statement "if (cVar1 == '\0') {\n                              iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar28 = 0;\n                            }" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                              iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                            }" { (expression_statement "iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;" (assignment_expression "iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4" identifier = (binary_expression "*(int *)(puVar47 + 0x8839c) + 0x44b4" (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                              iVar28 = 0;\n                            }" else (compound_statement "{\n                              iVar28 = 0;\n                            }" { (expression_statement "iVar28 = 0;" (assignment_expression "iVar28 = 0" identifier = number_literal) ;) }))) (expression_statement "(**(code **)(puVar47 + 0x88b70))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);" (call_expression "(**(code **)(puVar47 + 0x88b70))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28)" (parenthesized_expression "(**(code **)(puVar47 + 0x88b70))" ( (pointer_expression "**(code **)(puVar47 + 0x88b70)" * (pointer_expression "*(code **)(puVar47 + 0x88b70)" * (cast_expression "(code **)(puVar47 + 0x88b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88b70)" ( (binary_expression "puVar47 + 0x88b70" identifier + number_literal) ))))) )) (argument_list "(cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28)" ( (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 **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);" (call_expression "(**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00)" (parenthesized_expression "(**(code **)(puVar47 + 0x88b88))" ( (pointer_expression "**(code **)(puVar47 + 0x88b88)" * (pointer_expression "*(code **)(puVar47 + 0x88b88)" * (cast_expression "(code **)(puVar47 + 0x88b88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88b88)" ( (binary_expression "puVar47 + 0x88b88" 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_00089394:\n                            pcVar48 = *(code **)(puVar47 + 0x88394);" statement_identifier : (expression_statement "pcVar48 = *(code **)(puVar47 + 0x88394);" (assignment_expression "pcVar48 = *(code **)(puVar47 + 0x88394)" identifier = (pointer_expression "*(code **)(puVar47 + 0x88394)" * (cast_expression "(code **)(puVar47 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88394)" ( (binary_expression "puVar47 + 0x88394" identifier + number_literal) ))))) ;)) }))) (expression_statement "(*pcVar48)(psVar45);" (call_expression "(*pcVar48)(psVar45)" (parenthesized_expression "(*pcVar48)" ( (pointer_expression "*pcVar48" * identifier) )) (argument_list "(psVar45)" ( identifier ))) ;) (goto_statement "goto LAB_000893a4;" goto statement_identifier ;) })) }))) (goto_statement "goto LAB_000896fc;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_00089f10:\n                    (*pcVar48)();\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar39 = psVar45;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       ((int)psStack_90 < (int)puVar23)) {\n                      if (puVar38[(int)psStack_90] == '\0') goto LAB_000893a4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000893ac;\n                    }\n                  }" else (compound_statement "{\nLAB_00089f10:\n                    (*pcVar48)();\n                    iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n                    psVar39 = psVar45;\n                    if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       ((int)psStack_90 < (int)puVar23)) {\n                      if (puVar38[(int)psStack_90] == '\0') goto LAB_000893a4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000893ac;\n                    }\n                  }" { (labeled_statement "LAB_00089f10:\n                    (*pcVar48)();" statement_identifier : (expression_statement "(*pcVar48)();" (call_expression "(*pcVar48)()" (parenthesized_expression "(*pcVar48)" ( (pointer_expression "*pcVar48" * identifier) )) (argument_list "()" ( ))) ;)) (expression_statement "iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);" (assignment_expression "iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90)" identifier = (call_expression "getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90)" identifier (argument_list "(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90)" ( identifier , (cast_expression "(int)puVar23" ( (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_90" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psStack_90" & identifier)) )))) ;) (expression_statement "psVar39 = psVar45;" (assignment_expression "psVar39 = psVar45" identifier = identifier) ;) (if_statement "if (((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       ((int)psStack_90 < (int)puVar23)) {\n                      if (puVar38[(int)psStack_90] == '\0') goto LAB_000893a4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000893ac;\n                    }" if (parenthesized_expression "(((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       ((int)psStack_90 < (int)puVar23))" ( (binary_expression "((iVar28 != 0) && (-1 < (int)psStack_90)) &&\n                       ((int)psStack_90 < (int)puVar23)" (parenthesized_expression "((iVar28 != 0) && (-1 < (int)psStack_90))" ( (binary_expression "(iVar28 != 0) && (-1 < (int)psStack_90)" (parenthesized_expression "(iVar28 != 0)" ( (binary_expression "iVar28 != 0" identifier != number_literal) )) && (parenthesized_expression "(-1 < (int)psStack_90)" ( (binary_expression "-1 < (int)psStack_90" number_literal < (cast_expression "(int)psStack_90" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) && (parenthesized_expression "((int)psStack_90 < (int)puVar23)" ( (binary_expression "(int)psStack_90 < (int)puVar23" (cast_expression "(int)psStack_90" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n                      if (puVar38[(int)psStack_90] == '\0') goto LAB_000893a4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000893ac;\n                    }" { (if_statement "if (puVar38[(int)psStack_90] == '\0') goto LAB_000893a4;" if (parenthesized_expression "(puVar38[(int)psStack_90] == '\0')" ( (binary_expression "puVar38[(int)psStack_90] == '\0'" (subscript_expression "puVar38[(int)psStack_90]" identifier [ (cast_expression "(int)psStack_90" ( (type_descriptor "int" primitive_type) ) identifier) ]) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000893a4;" goto statement_identifier ;)) (expression_statement "send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),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 *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                 (share_channel *)0x0,(share_channel *)0xc)" identifier (argument_list "((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),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 *)(puVar47 + 0x8839c) + -0x4be4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar47 + 0x8839c) + -0x4be4)" ( (binary_expression "*(int *)(puVar47 + 0x8839c) + -0x4be4" (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" 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_000893ac;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_000896f8:\n                  iVar28 = *(int *)(puVar47 + 0x8839c);" statement_identifier : (expression_statement "iVar28 = *(int *)(puVar47 + 0x8839c);" (assignment_expression "iVar28 = *(int *)(puVar47 + 0x8839c)" identifier = (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_000896fc;" goto statement_identifier ;) })) (expression_statement "(**(code **)(puVar47 + 0x88394))(psVar43);" (call_expression "(**(code **)(puVar47 + 0x88394))(psVar43)" (parenthesized_expression "(**(code **)(puVar47 + 0x88394))" ( (pointer_expression "**(code **)(puVar47 + 0x88394)" * (pointer_expression "*(code **)(puVar47 + 0x88394)" * (cast_expression "(code **)(puVar47 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88394)" ( (binary_expression "puVar47 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(psVar43)" ( identifier ))) ;) (expression_statement "iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);" (assignment_expression "iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90)" identifier = (call_expression "getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90)" identifier (argument_list "(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90)" ( identifier , (cast_expression "(int)puVar23" ( (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_90" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psStack_90" & identifier)) )))) ;) (expression_statement "psVar45 = psStack_90;" (assignment_expression "psVar45 = psStack_90" identifier = identifier) ;) (if_statement "if (((iVar28 == 0) || ((int)psStack_90 < 0)) ||\n                   (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                   (int)puVar23 <= (int)psStack_90)) goto LAB_000896f8;" if (parenthesized_expression "(((iVar28 == 0) || ((int)psStack_90 < 0)) ||\n                   (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                   (int)puVar23 <= (int)psStack_90))" ( (binary_expression "((iVar28 == 0) || ((int)psStack_90 < 0)) ||\n                   (puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                   (int)puVar23 <= (int)psStack_90)" (parenthesized_expression "((iVar28 == 0) || ((int)psStack_90 < 0))" ( (binary_expression "(iVar28 == 0) || ((int)psStack_90 < 0)" (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) || (parenthesized_expression "((int)psStack_90 < 0)" ( (binary_expression "(int)psStack_90 < 0" (cast_expression "(int)psStack_90" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) ))) )) || (parenthesized_expression "(puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                   (int)puVar23 <= (int)psStack_90)" ( (comma_expression "puVar37 = (undefined *)((int)&psStack_90->fn + 1),\n                   (int)puVar23 <= (int)psStack_90" (assignment_expression "puVar37 = (undefined *)((int)&psStack_90->fn + 1)" identifier = (cast_expression "(undefined *)((int)&psStack_90->fn + 1)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psStack_90->fn + 1)" ( (binary_expression "(int)&psStack_90->fn + 1" (cast_expression "(int)&psStack_90->fn" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psStack_90->fn" & (field_expression "psStack_90->fn" identifier -> field_identifier))) + number_literal) )))) , (binary_expression "(int)puVar23 <= (int)psStack_90" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)psStack_90" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (goto_statement "goto LAB_000896f8;" goto statement_identifier ;)) (expression_statement "puVar44 = puVar38 + (int)psStack_90;" (assignment_expression "puVar44 = puVar38 + (int)psStack_90" identifier = (binary_expression "puVar38 + (int)psStack_90" identifier + (cast_expression "(int)psStack_90" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar29 = (int)puVar23 - (int)puVar37;" (assignment_expression "iVar29 = (int)puVar23 - (int)puVar37" identifier = (binary_expression "(int)puVar23 - (int)puVar37" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar37" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "psStack_b0 = (ssh_sharing_connstate *)(uint)*puVar44;" (assignment_expression "psStack_b0 = (ssh_sharing_connstate *)(uint)*puVar44" identifier = (binary_expression "(ssh_sharing_connstate *)(uint)*puVar44" (cast_expression "(ssh_sharing_connstate *)(uint)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) (if_statement "if ((iVar29 < 4) ||\n                   (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                             (int *)&psStack_90), iVar28 == 0)) {\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\n                    if (iVar29 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar35 = 0x55e;\nLAB_00089ef0:\n                    pcVar48 = *(code **)(puVar47 + 0x88ff4);\n                    (*pcVar48)(*(int *)(puVar47 + 0x8839c) + 0x457c,\n                               *(int *)(puVar47 + 0x8839c) + 0x43dc,uVar35,\n                               *(int *)(puVar47 + 0x8839c) + 0x4870);\n                    psVar45 = psVar39;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                }\n                else {\n                  psVar45 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < 0) goto LAB_000896fc;\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\nLAB_0008a05c:\n                    iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)&psStack_90,\n                                             (int *)0x0);\n                    psVar43 = psStack_90;\n                    if ((iVar28 == 0) ||\n                       (unaff_s6 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_0008a304;\n                    puVar46 = puVar38 + (int)psVar45;\n                    psVar45 = (ssh_sharing_connstate *)\n                              ((uint)*puVar46 << 0x18 | (uint)puVar46[3] | (uint)puVar46[1] << 0x10\n                              | (uint)puVar46[2] << 8);\n                    iVar28 = (**(code **)(puVar47 + 0x88ba0))\n                                       (cs_00->parent->ssh,psStack_90,psVar45,cs_00);\n                    if (iVar28 == 0) {\n                      if (psStack_b0 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar31 = *puVar44;\n                      *puVar44 = 1;\n                      if (bVar31 == 0) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar28 = 0;\n                      }\n                      (**(code **)(puVar47 + 0x88b70))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                      e_00 = (share_forwarding *)(**(code **)(puVar47 + 0x88390))(1,0xc);\n                      pcVar17 = (char *)(**(code **)(puVar47 + 0x883c0))(psVar43);\n                      t = cs_00->forwardings;\n                      e_00->host = pcVar17;\n                      e_00->port = (int)psVar45;\n                      e_00->active = 0;\n                      psVar25 = (share_forwarding *)add234(t,e_00);\n                      if (e_00 == psVar25) {\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                        psVar26 = (share_globreq *)(**(code **)(puVar47 + 0x88390))(1,0x10);\n                        psVar30 = cs_00->globreq_tail;\n                        psVar26->next = (share_globreq *)0x0;\n                        if (psVar30 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar26;\n                        }\n                        else {\n                          psVar30->next = psVar26;\n                        }\n                        psVar26->fwd = e_00;\n                        psVar26->type = 0;\n                        psVar26->want_reply = (int)psStack_b0;\n                      }\n                      else {\n                        (**(code **)(puVar47 + 0x88394))(e_00);\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(puVar47 + 0x88394))(psVar43);\n                    cs_00->recvlen = 0;\n                    unaff_s6 = psVar43;\n                    goto LAB_000893ac;\n                  }\n                }" if (parenthesized_expression "((iVar29 < 4) ||\n                   (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                             (int *)&psStack_90), iVar28 == 0))" ( (binary_expression "(iVar29 < 4) ||\n                   (iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                             (int *)&psStack_90), iVar28 == 0)" (parenthesized_expression "(iVar29 < 4)" ( (binary_expression "iVar29 < 4" identifier < number_literal) )) || (parenthesized_expression "(iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                             (int *)&psStack_90), iVar28 == 0)" ( (comma_expression "iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                             (int *)&psStack_90), iVar28 == 0" (assignment_expression "iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                             (int *)&psStack_90)" identifier = (call_expression "getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                             (int *)&psStack_90)" identifier (argument_list "(puVar38 + (int)puVar37,iVar29,(char **)0x0,\n                                             (int *)&psStack_90)" ( (binary_expression "puVar38 + (int)puVar37" identifier + (cast_expression "(int)puVar37" ( (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_90" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psStack_90" & identifier)) )))) , (binary_expression "iVar28 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\n                    if (iVar29 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar35 = 0x55e;\nLAB_00089ef0:\n                    pcVar48 = *(code **)(puVar47 + 0x88ff4);\n                    (*pcVar48)(*(int *)(puVar47 + 0x8839c) + 0x457c,\n                               *(int *)(puVar47 + 0x8839c) + 0x43dc,uVar35,\n                               *(int *)(puVar47 + 0x8839c) + 0x4870);\n                    psVar45 = psVar39;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                }" { (expression_statement "iVar28 = *(int *)(puVar47 + 0x8839c);" (assignment_expression "iVar28 = *(int *)(puVar47 + 0x8839c)" identifier = (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" identifier + number_literal) ))))) ;) (if_statement "if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\n                    if (iVar29 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar35 = 0x55e;\nLAB_00089ef0:\n                    pcVar48 = *(code **)(puVar47 + 0x88ff4);\n                    (*pcVar48)(*(int *)(puVar47 + 0x8839c) + 0x457c,\n                               *(int *)(puVar47 + 0x8839c) + 0x43dc,uVar35,\n                               *(int *)(puVar47 + 0x8839c) + 0x4870);\n                    psVar45 = psVar39;\n                    goto LAB_00089f10;\n                  }" if (parenthesized_expression "((int)psVar45 < (int)&unaff_s6[-1].globreq_head)" ( (binary_expression "(int)psVar45 < (int)&unaff_s6[-1].globreq_head" (cast_expression "(int)psVar45" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)&unaff_s6[-1].globreq_head" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s6[-1].globreq_head" & (field_expression "unaff_s6[-1].globreq_head" (subscript_expression "unaff_s6[-1]" identifier [ number_literal ]) . field_identifier)))) )) (compound_statement "{\n                    if (iVar29 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar35 = 0x55e;\nLAB_00089ef0:\n                    pcVar48 = *(code **)(puVar47 + 0x88ff4);\n                    (*pcVar48)(*(int *)(puVar47 + 0x8839c) + 0x457c,\n                               *(int *)(puVar47 + 0x8839c) + 0x43dc,uVar35,\n                               *(int *)(puVar47 + 0x8839c) + 0x4870);\n                    psVar45 = psVar39;\n                    goto LAB_00089f10;\n                  }" { (if_statement "if (iVar29 >= 4) goto LAB_0008a05c;" if (parenthesized_expression "(iVar29 >= 4)" ( (binary_expression "iVar29 >= 4" identifier >= number_literal) )) (goto_statement "goto LAB_0008a05c;" goto statement_identifier ;)) (labeled_statement "LAB_0008a304:\n                    uVar35 = 0x55e;" statement_identifier : (expression_statement "uVar35 = 0x55e;" (assignment_expression "uVar35 = 0x55e" identifier = number_literal) ;)) (labeled_statement "LAB_00089ef0:\n                    pcVar48 = *(code **)(puVar47 + 0x88ff4);" statement_identifier : (expression_statement "pcVar48 = *(code **)(puVar47 + 0x88ff4);" (assignment_expression "pcVar48 = *(code **)(puVar47 + 0x88ff4)" identifier = (pointer_expression "*(code **)(puVar47 + 0x88ff4)" * (cast_expression "(code **)(puVar47 + 0x88ff4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88ff4)" ( (binary_expression "puVar47 + 0x88ff4" identifier + number_literal) ))))) ;)) (expression_statement "(*pcVar48)(*(int *)(puVar47 + 0x8839c) + 0x457c,\n                               *(int *)(puVar47 + 0x8839c) + 0x43dc,uVar35,\n                               *(int *)(puVar47 + 0x8839c) + 0x4870);" (call_expression "(*pcVar48)(*(int *)(puVar47 + 0x8839c) + 0x457c,\n                               *(int *)(puVar47 + 0x8839c) + 0x43dc,uVar35,\n                               *(int *)(puVar47 + 0x8839c) + 0x4870)" (parenthesized_expression "(*pcVar48)" ( (pointer_expression "*pcVar48" * identifier) )) (argument_list "(*(int *)(puVar47 + 0x8839c) + 0x457c,\n                               *(int *)(puVar47 + 0x8839c) + 0x43dc,uVar35,\n                               *(int *)(puVar47 + 0x8839c) + 0x4870)" ( (binary_expression "*(int *)(puVar47 + 0x8839c) + 0x457c" (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar47 + 0x8839c) + 0x43dc" (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(puVar47 + 0x8839c) + 0x4870" (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "psVar45 = psVar39;" (assignment_expression "psVar45 = psVar39" identifier = identifier) ;) (goto_statement "goto LAB_00089f10;" goto statement_identifier ;) })) (labeled_statement "LAB_000896fc:\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);" statement_identifier : (expression_statement "pcVar48 = *(code **)(puVar47 + 0x8844c);" (assignment_expression "pcVar48 = *(code **)(puVar47 + 0x8844c)" identifier = (pointer_expression "*(code **)(puVar47 + 0x8844c)" * (cast_expression "(code **)(puVar47 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x8844c)" ( (binary_expression "puVar47 + 0x8844c" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n                  psVar45 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < 0) goto LAB_000896fc;\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\nLAB_0008a05c:\n                    iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)&psStack_90,\n                                             (int *)0x0);\n                    psVar43 = psStack_90;\n                    if ((iVar28 == 0) ||\n                       (unaff_s6 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_0008a304;\n                    puVar46 = puVar38 + (int)psVar45;\n                    psVar45 = (ssh_sharing_connstate *)\n                              ((uint)*puVar46 << 0x18 | (uint)puVar46[3] | (uint)puVar46[1] << 0x10\n                              | (uint)puVar46[2] << 8);\n                    iVar28 = (**(code **)(puVar47 + 0x88ba0))\n                                       (cs_00->parent->ssh,psStack_90,psVar45,cs_00);\n                    if (iVar28 == 0) {\n                      if (psStack_b0 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar31 = *puVar44;\n                      *puVar44 = 1;\n                      if (bVar31 == 0) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar28 = 0;\n                      }\n                      (**(code **)(puVar47 + 0x88b70))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                      e_00 = (share_forwarding *)(**(code **)(puVar47 + 0x88390))(1,0xc);\n                      pcVar17 = (char *)(**(code **)(puVar47 + 0x883c0))(psVar43);\n                      t = cs_00->forwardings;\n                      e_00->host = pcVar17;\n                      e_00->port = (int)psVar45;\n                      e_00->active = 0;\n                      psVar25 = (share_forwarding *)add234(t,e_00);\n                      if (e_00 == psVar25) {\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                        psVar26 = (share_globreq *)(**(code **)(puVar47 + 0x88390))(1,0x10);\n                        psVar30 = cs_00->globreq_tail;\n                        psVar26->next = (share_globreq *)0x0;\n                        if (psVar30 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar26;\n                        }\n                        else {\n                          psVar30->next = psVar26;\n                        }\n                        psVar26->fwd = e_00;\n                        psVar26->type = 0;\n                        psVar26->want_reply = (int)psStack_b0;\n                      }\n                      else {\n                        (**(code **)(puVar47 + 0x88394))(e_00);\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(puVar47 + 0x88394))(psVar43);\n                    cs_00->recvlen = 0;\n                    unaff_s6 = psVar43;\n                    goto LAB_000893ac;\n                  }\n                }" else (compound_statement "{\n                  psVar45 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);\n                  iVar28 = *(int *)(puVar47 + 0x8839c);\n                  if ((int)psVar45 < 0) goto LAB_000896fc;\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\nLAB_0008a05c:\n                    iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)&psStack_90,\n                                             (int *)0x0);\n                    psVar43 = psStack_90;\n                    if ((iVar28 == 0) ||\n                       (unaff_s6 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_0008a304;\n                    puVar46 = puVar38 + (int)psVar45;\n                    psVar45 = (ssh_sharing_connstate *)\n                              ((uint)*puVar46 << 0x18 | (uint)puVar46[3] | (uint)puVar46[1] << 0x10\n                              | (uint)puVar46[2] << 8);\n                    iVar28 = (**(code **)(puVar47 + 0x88ba0))\n                                       (cs_00->parent->ssh,psStack_90,psVar45,cs_00);\n                    if (iVar28 == 0) {\n                      if (psStack_b0 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar31 = *puVar44;\n                      *puVar44 = 1;\n                      if (bVar31 == 0) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar28 = 0;\n                      }\n                      (**(code **)(puVar47 + 0x88b70))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                      e_00 = (share_forwarding *)(**(code **)(puVar47 + 0x88390))(1,0xc);\n                      pcVar17 = (char *)(**(code **)(puVar47 + 0x883c0))(psVar43);\n                      t = cs_00->forwardings;\n                      e_00->host = pcVar17;\n                      e_00->port = (int)psVar45;\n                      e_00->active = 0;\n                      psVar25 = (share_forwarding *)add234(t,e_00);\n                      if (e_00 == psVar25) {\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                        psVar26 = (share_globreq *)(**(code **)(puVar47 + 0x88390))(1,0x10);\n                        psVar30 = cs_00->globreq_tail;\n                        psVar26->next = (share_globreq *)0x0;\n                        if (psVar30 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar26;\n                        }\n                        else {\n                          psVar30->next = psVar26;\n                        }\n                        psVar26->fwd = e_00;\n                        psVar26->type = 0;\n                        psVar26->want_reply = (int)psStack_b0;\n                      }\n                      else {\n                        (**(code **)(puVar47 + 0x88394))(e_00);\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(puVar47 + 0x88394))(psVar43);\n                    cs_00->recvlen = 0;\n                    unaff_s6 = psVar43;\n                    goto LAB_000893ac;\n                  }\n                }" { (expression_statement "psVar45 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90);" (assignment_expression "psVar45 = (ssh_sharing_connstate *)(puVar37 + (int)psStack_90)" identifier = (cast_expression "(ssh_sharing_connstate *)(puVar37 + (int)psStack_90)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + (int)psStack_90)" ( (binary_expression "puVar37 + (int)psStack_90" identifier + (cast_expression "(int)psStack_90" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar28 = *(int *)(puVar47 + 0x8839c);" (assignment_expression "iVar28 = *(int *)(puVar47 + 0x8839c)" identifier = (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" identifier + number_literal) ))))) ;) (if_statement "if ((int)psVar45 < 0) goto LAB_000896fc;" if (parenthesized_expression "((int)psVar45 < 0)" ( (binary_expression "(int)psVar45 < 0" (cast_expression "(int)psVar45" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_000896fc;" goto statement_identifier ;)) (expression_statement "pcVar48 = *(code **)(puVar47 + 0x8844c);" (assignment_expression "pcVar48 = *(code **)(puVar47 + 0x8844c)" identifier = (pointer_expression "*(code **)(puVar47 + 0x8844c)" * (cast_expression "(code **)(puVar47 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x8844c)" ( (binary_expression "puVar47 + 0x8844c" identifier + number_literal) ))))) ;) (if_statement "if ((int)psVar45 < (int)&unaff_s6[-1].globreq_head) {\nLAB_0008a05c:\n                    iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)&psStack_90,\n                                             (int *)0x0);\n                    psVar43 = psStack_90;\n                    if ((iVar28 == 0) ||\n                       (unaff_s6 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_0008a304;\n                    puVar46 = puVar38 + (int)psVar45;\n                    psVar45 = (ssh_sharing_connstate *)\n                              ((uint)*puVar46 << 0x18 | (uint)puVar46[3] | (uint)puVar46[1] << 0x10\n                              | (uint)puVar46[2] << 8);\n                    iVar28 = (**(code **)(puVar47 + 0x88ba0))\n                                       (cs_00->parent->ssh,psStack_90,psVar45,cs_00);\n                    if (iVar28 == 0) {\n                      if (psStack_b0 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar31 = *puVar44;\n                      *puVar44 = 1;\n                      if (bVar31 == 0) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar28 = 0;\n                      }\n                      (**(code **)(puVar47 + 0x88b70))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                      e_00 = (share_forwarding *)(**(code **)(puVar47 + 0x88390))(1,0xc);\n                      pcVar17 = (char *)(**(code **)(puVar47 + 0x883c0))(psVar43);\n                      t = cs_00->forwardings;\n                      e_00->host = pcVar17;\n                      e_00->port = (int)psVar45;\n                      e_00->active = 0;\n                      psVar25 = (share_forwarding *)add234(t,e_00);\n                      if (e_00 == psVar25) {\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                        psVar26 = (share_globreq *)(**(code **)(puVar47 + 0x88390))(1,0x10);\n                        psVar30 = cs_00->globreq_tail;\n                        psVar26->next = (share_globreq *)0x0;\n                        if (psVar30 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar26;\n                        }\n                        else {\n                          psVar30->next = psVar26;\n                        }\n                        psVar26->fwd = e_00;\n                        psVar26->type = 0;\n                        psVar26->want_reply = (int)psStack_b0;\n                      }\n                      else {\n                        (**(code **)(puVar47 + 0x88394))(e_00);\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(puVar47 + 0x88394))(psVar43);\n                    cs_00->recvlen = 0;\n                    unaff_s6 = psVar43;\n                    goto LAB_000893ac;\n                  }" if (parenthesized_expression "((int)psVar45 < (int)&unaff_s6[-1].globreq_head)" ( (binary_expression "(int)psVar45 < (int)&unaff_s6[-1].globreq_head" (cast_expression "(int)psVar45" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)&unaff_s6[-1].globreq_head" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s6[-1].globreq_head" & (field_expression "unaff_s6[-1].globreq_head" (subscript_expression "unaff_s6[-1]" identifier [ number_literal ]) . field_identifier)))) )) (compound_statement "{\nLAB_0008a05c:\n                    iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)&psStack_90,\n                                             (int *)0x0);\n                    psVar43 = psStack_90;\n                    if ((iVar28 == 0) ||\n                       (unaff_s6 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_0008a304;\n                    puVar46 = puVar38 + (int)psVar45;\n                    psVar45 = (ssh_sharing_connstate *)\n                              ((uint)*puVar46 << 0x18 | (uint)puVar46[3] | (uint)puVar46[1] << 0x10\n                              | (uint)puVar46[2] << 8);\n                    iVar28 = (**(code **)(puVar47 + 0x88ba0))\n                                       (cs_00->parent->ssh,psStack_90,psVar45,cs_00);\n                    if (iVar28 == 0) {\n                      if (psStack_b0 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar31 = *puVar44;\n                      *puVar44 = 1;\n                      if (bVar31 == 0) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar28 = 0;\n                      }\n                      (**(code **)(puVar47 + 0x88b70))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                      e_00 = (share_forwarding *)(**(code **)(puVar47 + 0x88390))(1,0xc);\n                      pcVar17 = (char *)(**(code **)(puVar47 + 0x883c0))(psVar43);\n                      t = cs_00->forwardings;\n                      e_00->host = pcVar17;\n                      e_00->port = (int)psVar45;\n                      e_00->active = 0;\n                      psVar25 = (share_forwarding *)add234(t,e_00);\n                      if (e_00 == psVar25) {\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                        psVar26 = (share_globreq *)(**(code **)(puVar47 + 0x88390))(1,0x10);\n                        psVar30 = cs_00->globreq_tail;\n                        psVar26->next = (share_globreq *)0x0;\n                        if (psVar30 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar26;\n                        }\n                        else {\n                          psVar30->next = psVar26;\n                        }\n                        psVar26->fwd = e_00;\n                        psVar26->type = 0;\n                        psVar26->want_reply = (int)psStack_b0;\n                      }\n                      else {\n                        (**(code **)(puVar47 + 0x88394))(e_00);\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(puVar47 + 0x88394))(psVar43);\n                    cs_00->recvlen = 0;\n                    unaff_s6 = psVar43;\n                    goto LAB_000893ac;\n                  }" { (labeled_statement "LAB_0008a05c:\n                    iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)&psStack_90,\n                                             (int *)0x0);" statement_identifier : (expression_statement "iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)&psStack_90,\n                                             (int *)0x0);" (assignment_expression "iVar28 = getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)&psStack_90,\n                                             (int *)0x0)" identifier = (call_expression "getstring_inner(puVar38 + (int)puVar37,iVar29,(char **)&psStack_90,\n                                             (int *)0x0)" identifier (argument_list "(puVar38 + (int)puVar37,iVar29,(char **)&psStack_90,\n                                             (int *)0x0)" ( (binary_expression "puVar38 + (int)puVar37" identifier + (cast_expression "(int)puVar37" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier , (cast_expression "(char **)&psStack_90" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&psStack_90" & identifier)) , (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;)) (expression_statement "psVar43 = psStack_90;" (assignment_expression "psVar43 = psStack_90" identifier = identifier) ;) (if_statement "if ((iVar28 == 0) ||\n                       (unaff_s6 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_0008a304;" if (parenthesized_expression "((iVar28 == 0) ||\n                       (unaff_s6 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0))" ( (binary_expression "(iVar28 == 0) ||\n                       (unaff_s6 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0)" (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) || (parenthesized_expression "(unaff_s6 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0)" ( (comma_expression "unaff_s6 = psStack_90, psStack_90 == (ssh_sharing_connstate *)0x0" (assignment_expression "unaff_s6 = psStack_90" identifier = identifier) , (binary_expression "psStack_90 == (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_0008a304;" goto statement_identifier ;)) (expression_statement "puVar46 = puVar38 + (int)psVar45;" (assignment_expression "puVar46 = puVar38 + (int)psVar45" identifier = (binary_expression "puVar38 + (int)psVar45" identifier + (cast_expression "(int)psVar45" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "psVar45 = (ssh_sharing_connstate *)\n                              ((uint)*puVar46 << 0x18 | (uint)puVar46[3] | (uint)puVar46[1] << 0x10\n                              | (uint)puVar46[2] << 8);" (assignment_expression "psVar45 = (ssh_sharing_connstate *)\n                              ((uint)*puVar46 << 0x18 | (uint)puVar46[3] | (uint)puVar46[1] << 0x10\n                              | (uint)puVar46[2] << 8)" identifier = (cast_expression "(ssh_sharing_connstate *)\n                              ((uint)*puVar46 << 0x18 | (uint)puVar46[3] | (uint)puVar46[1] << 0x10\n                              | (uint)puVar46[2] << 8)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)*puVar46 << 0x18 | (uint)puVar46[3] | (uint)puVar46[1] << 0x10\n                              | (uint)puVar46[2] << 8)" ( (binary_expression "(uint)*puVar46 << 0x18 | (uint)puVar46[3] | (uint)puVar46[1] << 0x10\n                              | (uint)puVar46[2] << 8" (binary_expression "(uint)*puVar46 << 0x18 | (uint)puVar46[3] | (uint)puVar46[1] << 0x10" (binary_expression "(uint)*puVar46 << 0x18 | (uint)puVar46[3]" (binary_expression "(uint)*puVar46 << 0x18" (binary_expression "(uint)*puVar46" (parenthesized_expression "(uint)" ( identifier )) * identifier) << number_literal) | (cast_expression "(uint)puVar46[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar46[3]" identifier [ number_literal ]))) | (binary_expression "(uint)puVar46[1] << 0x10" (cast_expression "(uint)puVar46[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar46[1]" identifier [ number_literal ])) << number_literal)) | (binary_expression "(uint)puVar46[2] << 8" (cast_expression "(uint)puVar46[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar46[2]" identifier [ number_literal ])) << number_literal)) )))) ;) (expression_statement "iVar28 = (**(code **)(puVar47 + 0x88ba0))\n                                       (cs_00->parent->ssh,psStack_90,psVar45,cs_00);" (assignment_expression "iVar28 = (**(code **)(puVar47 + 0x88ba0))\n                                       (cs_00->parent->ssh,psStack_90,psVar45,cs_00)" identifier = (call_expression "(**(code **)(puVar47 + 0x88ba0))\n                                       (cs_00->parent->ssh,psStack_90,psVar45,cs_00)" (parenthesized_expression "(**(code **)(puVar47 + 0x88ba0))" ( (pointer_expression "**(code **)(puVar47 + 0x88ba0)" * (pointer_expression "*(code **)(puVar47 + 0x88ba0)" * (cast_expression "(code **)(puVar47 + 0x88ba0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88ba0)" ( (binary_expression "puVar47 + 0x88ba0" identifier + number_literal) ))))) )) (argument_list "(cs_00->parent->ssh,psStack_90,psVar45,cs_00)" ( (field_expression "cs_00->parent->ssh" (field_expression "cs_00->parent" identifier -> field_identifier) -> field_identifier) , identifier , identifier , identifier )))) ;) (if_statement "if (iVar28 == 0) {\n                      if (psStack_b0 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar31 = *puVar44;\n                      *puVar44 = 1;\n                      if (bVar31 == 0) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar28 = 0;\n                      }\n                      (**(code **)(puVar47 + 0x88b70))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                      e_00 = (share_forwarding *)(**(code **)(puVar47 + 0x88390))(1,0xc);\n                      pcVar17 = (char *)(**(code **)(puVar47 + 0x883c0))(psVar43);\n                      t = cs_00->forwardings;\n                      e_00->host = pcVar17;\n                      e_00->port = (int)psVar45;\n                      e_00->active = 0;\n                      psVar25 = (share_forwarding *)add234(t,e_00);\n                      if (e_00 == psVar25) {\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                        psVar26 = (share_globreq *)(**(code **)(puVar47 + 0x88390))(1,0x10);\n                        psVar30 = cs_00->globreq_tail;\n                        psVar26->next = (share_globreq *)0x0;\n                        if (psVar30 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar26;\n                        }\n                        else {\n                          psVar30->next = psVar26;\n                        }\n                        psVar26->fwd = e_00;\n                        psVar26->type = 0;\n                        psVar26->want_reply = (int)psStack_b0;\n                      }\n                      else {\n                        (**(code **)(puVar47 + 0x88394))(e_00);\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                      }\n                    }" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (compound_statement "{\n                      if (psStack_b0 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }" { (if_statement "if (psStack_b0 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }" if (parenthesized_expression "(psStack_b0 != (ssh_sharing_connstate *)0x0)" ( (binary_expression "psStack_b0 != (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 *)(puVar47 + 0x8839c) + -0x4be4),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 *)(puVar47 + 0x8839c) + -0x4be4),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 *)(puVar47 + 0x8839c) + -0x4be4),0,\n                                   (share_channel *)0x0,(share_channel *)0xc)" identifier (argument_list "((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(puVar47 + 0x8839c) + -0x4be4),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 *)(puVar47 + 0x8839c) + -0x4be4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar47 + 0x8839c) + -0x4be4)" ( (binary_expression "*(int *)(puVar47 + 0x8839c) + -0x4be4" (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" 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                      bVar31 = *puVar44;\n                      *puVar44 = 1;\n                      if (bVar31 == 0) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar28 = 0;\n                      }\n                      (**(code **)(puVar47 + 0x88b70))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                      e_00 = (share_forwarding *)(**(code **)(puVar47 + 0x88390))(1,0xc);\n                      pcVar17 = (char *)(**(code **)(puVar47 + 0x883c0))(psVar43);\n                      t = cs_00->forwardings;\n                      e_00->host = pcVar17;\n                      e_00->port = (int)psVar45;\n                      e_00->active = 0;\n                      psVar25 = (share_forwarding *)add234(t,e_00);\n                      if (e_00 == psVar25) {\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                        psVar26 = (share_globreq *)(**(code **)(puVar47 + 0x88390))(1,0x10);\n                        psVar30 = cs_00->globreq_tail;\n                        psVar26->next = (share_globreq *)0x0;\n                        if (psVar30 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar26;\n                        }\n                        else {\n                          psVar30->next = psVar26;\n                        }\n                        psVar26->fwd = e_00;\n                        psVar26->type = 0;\n                        psVar26->want_reply = (int)psStack_b0;\n                      }\n                      else {\n                        (**(code **)(puVar47 + 0x88394))(e_00);\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                      }\n                    }" else (compound_statement "{\n                      bVar31 = *puVar44;\n                      *puVar44 = 1;\n                      if (bVar31 == 0) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar28 = 0;\n                      }\n                      (**(code **)(puVar47 + 0x88b70))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);\n                      e_00 = (share_forwarding *)(**(code **)(puVar47 + 0x88390))(1,0xc);\n                      pcVar17 = (char *)(**(code **)(puVar47 + 0x883c0))(psVar43);\n                      t = cs_00->forwardings;\n                      e_00->host = pcVar17;\n                      e_00->port = (int)psVar45;\n                      e_00->active = 0;\n                      psVar25 = (share_forwarding *)add234(t,e_00);\n                      if (e_00 == psVar25) {\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                        psVar26 = (share_globreq *)(**(code **)(puVar47 + 0x88390))(1,0x10);\n                        psVar30 = cs_00->globreq_tail;\n                        psVar26->next = (share_globreq *)0x0;\n                        if (psVar30 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar26;\n                        }\n                        else {\n                          psVar30->next = psVar26;\n                        }\n                        psVar26->fwd = e_00;\n                        psVar26->type = 0;\n                        psVar26->want_reply = (int)psStack_b0;\n                      }\n                      else {\n                        (**(code **)(puVar47 + 0x88394))(e_00);\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                      }\n                    }" { (expression_statement "bVar31 = *puVar44;" (assignment_expression "bVar31 = *puVar44" identifier = (pointer_expression "*puVar44" * identifier)) ;) (expression_statement "*puVar44 = 1;" (assignment_expression "*puVar44 = 1" (pointer_expression "*puVar44" * identifier) = number_literal) ;) (if_statement "if (bVar31 == 0) {\n                        iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar28 = 0;\n                      }" if (parenthesized_expression "(bVar31 == 0)" ( (binary_expression "bVar31 == 0" identifier == number_literal) )) (compound_statement "{\n                        iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;\n                      }" { (expression_statement "iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4;" (assignment_expression "iVar28 = *(int *)(puVar47 + 0x8839c) + 0x44b4" identifier = (binary_expression "*(int *)(puVar47 + 0x8839c) + 0x44b4" (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                        iVar28 = 0;\n                      }" else (compound_statement "{\n                        iVar28 = 0;\n                      }" { (expression_statement "iVar28 = 0;" (assignment_expression "iVar28 = 0" identifier = number_literal) ;) }))) (expression_statement "(**(code **)(puVar47 + 0x88b70))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28);" (call_expression "(**(code **)(puVar47 + 0x88b70))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28)" (parenthesized_expression "(**(code **)(puVar47 + 0x88b70))" ( (pointer_expression "**(code **)(puVar47 + 0x88b70)" * (pointer_expression "*(code **)(puVar47 + 0x88b70)" * (cast_expression "(code **)(puVar47 + 0x88b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88b70)" ( (binary_expression "puVar47 + 0x88b70" identifier + number_literal) ))))) )) (argument_list "(cs_00->parent->ssh,cs_00->id,0x50,puVar38,puVar23,iVar28)" ( (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_00 = (share_forwarding *)(**(code **)(puVar47 + 0x88390))(1,0xc);" (assignment_expression "e_00 = (share_forwarding *)(**(code **)(puVar47 + 0x88390))(1,0xc)" identifier = (cast_expression "(share_forwarding *)(**(code **)(puVar47 + 0x88390))(1,0xc)" ( (type_descriptor "share_forwarding *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar47 + 0x88390))(1,0xc)" (parenthesized_expression "(**(code **)(puVar47 + 0x88390))" ( (pointer_expression "**(code **)(puVar47 + 0x88390)" * (pointer_expression "*(code **)(puVar47 + 0x88390)" * (cast_expression "(code **)(puVar47 + 0x88390)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88390)" ( (binary_expression "puVar47 + 0x88390" identifier + number_literal) ))))) )) (argument_list "(1,0xc)" ( number_literal , number_literal ))))) ;) (expression_statement "pcVar17 = (char *)(**(code **)(puVar47 + 0x883c0))(psVar43);" (assignment_expression "pcVar17 = (char *)(**(code **)(puVar47 + 0x883c0))(psVar43)" identifier = (cast_expression "(char *)(**(code **)(puVar47 + 0x883c0))(psVar43)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar47 + 0x883c0))(psVar43)" (parenthesized_expression "(**(code **)(puVar47 + 0x883c0))" ( (pointer_expression "**(code **)(puVar47 + 0x883c0)" * (pointer_expression "*(code **)(puVar47 + 0x883c0)" * (cast_expression "(code **)(puVar47 + 0x883c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x883c0)" ( (binary_expression "puVar47 + 0x883c0" identifier + number_literal) ))))) )) (argument_list "(psVar43)" ( 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_00->host = pcVar17;" (assignment_expression "e_00->host = pcVar17" (field_expression "e_00->host" identifier -> field_identifier) = identifier) ;) (expression_statement "e_00->port = (int)psVar45;" (assignment_expression "e_00->port = (int)psVar45" (field_expression "e_00->port" identifier -> field_identifier) = (cast_expression "(int)psVar45" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "e_00->active = 0;" (assignment_expression "e_00->active = 0" (field_expression "e_00->active" identifier -> field_identifier) = number_literal) ;) (expression_statement "psVar25 = (share_forwarding *)add234(t,e_00);" (assignment_expression "psVar25 = (share_forwarding *)add234(t,e_00)" identifier = (cast_expression "(share_forwarding *)add234(t,e_00)" ( (type_descriptor "share_forwarding *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "add234(t,e_00)" identifier (argument_list "(t,e_00)" ( identifier , identifier ))))) ;) (if_statement "if (e_00 == psVar25) {\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                        psVar26 = (share_globreq *)(**(code **)(puVar47 + 0x88390))(1,0x10);\n                        psVar30 = cs_00->globreq_tail;\n                        psVar26->next = (share_globreq *)0x0;\n                        if (psVar30 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar26;\n                        }\n                        else {\n                          psVar30->next = psVar26;\n                        }\n                        psVar26->fwd = e_00;\n                        psVar26->type = 0;\n                        psVar26->want_reply = (int)psStack_b0;\n                      }\n                      else {\n                        (**(code **)(puVar47 + 0x88394))(e_00);\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                      }" if (parenthesized_expression "(e_00 == psVar25)" ( (binary_expression "e_00 == psVar25" identifier == identifier) )) (compound_statement "{\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                        psVar26 = (share_globreq *)(**(code **)(puVar47 + 0x88390))(1,0x10);\n                        psVar30 = cs_00->globreq_tail;\n                        psVar26->next = (share_globreq *)0x0;\n                        if (psVar30 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar26;\n                        }\n                        else {\n                          psVar30->next = psVar26;\n                        }\n                        psVar26->fwd = e_00;\n                        psVar26->type = 0;\n                        psVar26->want_reply = (int)psStack_b0;\n                      }" { (expression_statement "(**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);" (call_expression "(**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00)" (parenthesized_expression "(**(code **)(puVar47 + 0x88b88))" ( (pointer_expression "**(code **)(puVar47 + 0x88b88)" * (pointer_expression "*(code **)(puVar47 + 0x88b88)" * (cast_expression "(code **)(puVar47 + 0x88b88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88b88)" ( (binary_expression "puVar47 + 0x88b88" 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 "psVar26 = (share_globreq *)(**(code **)(puVar47 + 0x88390))(1,0x10);" (assignment_expression "psVar26 = (share_globreq *)(**(code **)(puVar47 + 0x88390))(1,0x10)" identifier = (cast_expression "(share_globreq *)(**(code **)(puVar47 + 0x88390))(1,0x10)" ( (type_descriptor "share_globreq *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar47 + 0x88390))(1,0x10)" (parenthesized_expression "(**(code **)(puVar47 + 0x88390))" ( (pointer_expression "**(code **)(puVar47 + 0x88390)" * (pointer_expression "*(code **)(puVar47 + 0x88390)" * (cast_expression "(code **)(puVar47 + 0x88390)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88390)" ( (binary_expression "puVar47 + 0x88390" identifier + number_literal) ))))) )) (argument_list "(1,0x10)" ( number_literal , number_literal ))))) ;) (expression_statement "psVar30 = cs_00->globreq_tail;" (assignment_expression "psVar30 = cs_00->globreq_tail" identifier = (field_expression "cs_00->globreq_tail" identifier -> field_identifier)) ;) (expression_statement "psVar26->next = (share_globreq *)0x0;" (assignment_expression "psVar26->next = (share_globreq *)0x0" (field_expression "psVar26->next" identifier -> field_identifier) = (cast_expression "(share_globreq *)0x0" ( (type_descriptor "share_globreq *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (psVar30 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar26;\n                        }\n                        else {\n                          psVar30->next = psVar26;\n                        }" if (parenthesized_expression "(psVar30 == (share_globreq *)0x0)" ( (binary_expression "psVar30 == (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 = psVar26;\n                        }" { (expression_statement "cs_00->globreq_head = psVar26;" (assignment_expression "cs_00->globreq_head = psVar26" (field_expression "cs_00->globreq_head" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n                          psVar30->next = psVar26;\n                        }" else (compound_statement "{\n                          psVar30->next = psVar26;\n                        }" { (expression_statement "psVar30->next = psVar26;" (assignment_expression "psVar30->next = psVar26" (field_expression "psVar30->next" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "psVar26->fwd = e_00;" (assignment_expression "psVar26->fwd = e_00" (field_expression "psVar26->fwd" identifier -> field_identifier) = identifier) ;) (expression_statement "psVar26->type = 0;" (assignment_expression "psVar26->type = 0" (field_expression "psVar26->type" identifier -> field_identifier) = number_literal) ;) (expression_statement "psVar26->want_reply = (int)psStack_b0;" (assignment_expression "psVar26->want_reply = (int)psStack_b0" (field_expression "psVar26->want_reply" identifier -> field_identifier) = (cast_expression "(int)psStack_b0" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                        (**(code **)(puVar47 + 0x88394))(e_00);\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                      }" else (compound_statement "{\n                        (**(code **)(puVar47 + 0x88394))(e_00);\n                        (**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);\n                      }" { (expression_statement "(**(code **)(puVar47 + 0x88394))(e_00);" (call_expression "(**(code **)(puVar47 + 0x88394))(e_00)" (parenthesized_expression "(**(code **)(puVar47 + 0x88394))" ( (pointer_expression "**(code **)(puVar47 + 0x88394)" * (pointer_expression "*(code **)(puVar47 + 0x88394)" * (cast_expression "(code **)(puVar47 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88394)" ( (binary_expression "puVar47 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(e_00)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00);" (call_expression "(**(code **)(puVar47 + 0x88b88))(cs_00->parent->ssh,cs_00)" (parenthesized_expression "(**(code **)(puVar47 + 0x88b88))" ( (pointer_expression "**(code **)(puVar47 + 0x88b88)" * (pointer_expression "*(code **)(puVar47 + 0x88b88)" * (cast_expression "(code **)(puVar47 + 0x88b88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88b88)" ( (binary_expression "puVar47 + 0x88b88" 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 **)(puVar47 + 0x88394))(psVar43);" (call_expression "(**(code **)(puVar47 + 0x88394))(psVar43)" (parenthesized_expression "(**(code **)(puVar47 + 0x88394))" ( (pointer_expression "**(code **)(puVar47 + 0x88394)" * (pointer_expression "*(code **)(puVar47 + 0x88394)" * (cast_expression "(code **)(puVar47 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88394)" ( (binary_expression "puVar47 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(psVar43)" ( 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 "unaff_s6 = psVar43;" (assignment_expression "unaff_s6 = psVar43" identifier = identifier) ;) (goto_statement "goto LAB_000893ac;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00089700:\n                pcVar17 = (char *)(*pcVar48)(iVar28 + 0x455c);" statement_identifier : (expression_statement "pcVar17 = (char *)(*pcVar48)(iVar28 + 0x455c);" (assignment_expression "pcVar17 = (char *)(*pcVar48)(iVar28 + 0x455c)" identifier = (cast_expression "(char *)(*pcVar48)(iVar28 + 0x455c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar48)(iVar28 + 0x455c)" (parenthesized_expression "(*pcVar48)" ( (pointer_expression "*pcVar48" * identifier) )) (argument_list "(iVar28 + 0x455c)" ( (binary_expression "iVar28 + 0x455c" identifier + number_literal) ))))) ;)) (expression_statement "psVar45 = psVar39;" (assignment_expression "psVar45 = psVar39" identifier = identifier) ;) (goto_statement "goto LAB_00089674;" goto statement_identifier ;) })) (if_statement "if (bVar31 != 1) {\nLAB_0008965c:\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x474c,bVar31);\n                goto LAB_00089674;\n              }" if (parenthesized_expression "(bVar31 != 1)" ( (binary_expression "bVar31 != 1" identifier != number_literal) )) (compound_statement "{\nLAB_0008965c:\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x474c,bVar31);\n                goto LAB_00089674;\n              }" { (labeled_statement "LAB_0008965c:\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x474c,bVar31);" statement_identifier : (expression_statement "pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x474c,bVar31);" (assignment_expression "pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x474c,bVar31)" identifier = (cast_expression "(char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x474c,bVar31)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x474c,bVar31)" (parenthesized_expression "(**(code **)(puVar47 + 0x8844c))" ( (pointer_expression "**(code **)(puVar47 + 0x8844c)" * (pointer_expression "*(code **)(puVar47 + 0x8844c)" * (cast_expression "(code **)(puVar47 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x8844c)" ( (binary_expression "puVar47 + 0x8844c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar47 + 0x8839c) + 0x474c,bVar31)" ( (binary_expression "*(int *)(puVar47 + 0x8839c) + 0x474c" (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" identifier + number_literal) )))) + number_literal) , identifier ))))) ;)) (goto_statement "goto LAB_00089674;" 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_000893ac;" goto statement_identifier ;) })) (labeled_statement "LAB_00089714:\n            puVar22 = (undefined1 *)((int)&unaff_s6[-1].forwardings + 3);" statement_identifier : (expression_statement "puVar22 = (undefined1 *)((int)&unaff_s6[-1].forwardings + 3);" (assignment_expression "puVar22 = (undefined1 *)((int)&unaff_s6[-1].forwardings + 3)" identifier = (cast_expression "(undefined1 *)((int)&unaff_s6[-1].forwardings + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&unaff_s6[-1].forwardings + 3)" ( (binary_expression "(int)&unaff_s6[-1].forwardings + 3" (cast_expression "(int)&unaff_s6[-1].forwardings" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s6[-1].forwardings" & (field_expression "unaff_s6[-1].forwardings" (subscript_expression "unaff_s6[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;)) (if_statement "if ((bVar31 == 0x62) &&\n               (psVar45 = *(ssh_sharing_connstate **)(puVar47 + 0x88acc), 3 < (int)puVar22)) {\n              psVar45 = (ssh_sharing_connstate *)(psVar45[1].recvbuf + 0x394c);\n              iVar28 = getstring_inner(cs_00->recvbuf + 9,(int)puVar22,(char **)&psStack_90,\n                                       (int *)0x0);\n              psVar39 = psStack_90;\n              if ((iVar28 != 0) && (psStack_90 != (ssh_sharing_connstate *)0x0)) {\n                psStack_b0 = psStack_90;\n                iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x363c);\n                if ((iVar28 == 0) &&\n                   (iVar28 = (**(code **)(puVar47 + 0x888c4))(cs_00->parent->ssh), iVar28 == 0)) {\n                  ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  ppsStack_88 = ppsVar19;\n                  puVar27 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                  if (puVar27 == (undefined4 *)0x0) {\n                    pcVar48 = *(code **)(puVar47 + 0x8844c);\n                    iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    pcVar17 = (char *)(*pcVar48)(iVar28,ppsVar19);\n                    share_disconnect(cs_00,pcVar17);\n                    (**(code **)(puVar47 + 0x88394))(pcVar17);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_68 = (plug_function_table *)*puVar27;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar28 = *(int *)(puVar47 + 0x8839c);\n                iVar29 = (**(code **)(puVar47 + 0x8953c))(psVar39,iVar28 + -0x36a0);\n                if (iVar29 != 0) {\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  psStack_b0 = psVar39;\n                  goto LAB_00089cc8;\n                }\n                ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                (**(code **)(puVar47 + 0x88394))(psVar39);\n                ppsStack_88 = ppsVar19;\n                psStack_b0 = (ssh_sharing_connstate *)\n                             find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                if (psStack_b0 == (ssh_sharing_connstate *)0x0) {\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)puVar23 < 0x11) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                uVar5 = cs_00->recvbuf[0x14];\n                puVar22 = (undefined1 *)((int)&unaff_s6[-1].channels_by_server + 2);\n                uVar6 = cs_00->recvbuf[0x15];\n                if ((int)puVar22 < 4) {\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(0);\n                  (**(code **)(puVar47 + 0x88394))(0);\nLAB_0008a36c:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar29 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)&psStack_90,\n                                           (int *)0x0);\n                  psVar39 = psStack_90;\n                  if (iVar29 == 0) {\n                    psVar39 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(psVar39);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  iVar20 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_0008a36c;\n                }\n                puVar44 = (uchar *)((int)&psVar39->crLine + 1);\n                iVar20 = (int)puVar23 - (int)puVar44;\n                unaff_s6 = (ssh_sharing_connstate *)0x0;\n                if (iVar20 < 4) {\nLAB_00089ec4:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar21 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)&psStack_90,\n                                           (int *)0x0);\n                  unaff_s6 = psStack_90;\n                  if (iVar21 == 0) {\n                    unaff_s6 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar20 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_00089ec4;\n                }\n                if ((int)puVar23 <= (int)(puVar44 + (int)psVar39 + 3)) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar47 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                puVar38 = puVar38 + (int)(puVar44 + (int)psVar39);\n                if (-1 < iVar29) {\n                  pcVar48 = *(code **)(puVar47 + 0x88b94);\n                  uVar7 = *puVar38;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar38[1];\n                  uVar8 = puVar38[3];\n                  uVar9 = puVar38[2];\n                  psStack_b0->got_verstring = iVar29;\n                  iVar20 = (*pcVar48)(unaff_s6,psStack_b0->recvbuf);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psStack_b0->curr_packetlen = iVar20;\n                  (*pcVar48)(unaff_s6);\n                  iVar29 = (**(code **)(puVar47 + 0x88b98))\n                                     (cs_00->parent->ssh,iVar29,cs_00,psStack_b0);\n                  psStack_b0->sent_verstring = iVar29;\n                  *(uint *)(psStack_b0->recvbuf + 4) = (uint)bVar13;\n                  psVar45 = (ssh_sharing_connstate *)\n                            (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0xc));\n                  unaff_s6 = (ssh_sharing_connstate *)\n                             (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0x10));\n                  puVar38 = (uchar *)((int)&psVar45->curr_packetlen + 1) + (int)unaff_s6;\n                  puVar22 = (undefined1 *)(**(code **)(puVar47 + 0x88390))(puVar38,1);\n                  puVar22[4] = 0;\n                  puVar22[5] = 0;\n                  uVar32 = *(uint *)(iVar28 + -0x36a0);\n                  uVar10 = *(undefined1 *)(iVar28 + -0x369c);\n                  uVar11 = *(undefined1 *)(iVar28 + -0x369b);\n                  uVar12 = *(undefined1 *)(iVar28 + -0x369a);\n                  puVar22[3] = (char)ppsVar19;\n                  *puVar22 = (char)((uint)ppsVar19 >> 0x18);\n                  puVar22[1] = (char)((uint)ppsVar19 >> 0x10);\n                  puVar22[2] = (char)((uint)ppsVar19 >> 8);\n                  puVar22[7] = 7;\n                  puVar22[6] = 0;\n                  puVar23 = puVar22 + 8;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & -1 << (4 - uVar36) * 8 | uVar32 >> uVar36 * 8;\n                  puVar23 = puVar22 + 0xb;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & 0xffffffffU >> (uVar36 + 1) * 8 |\n                       uVar32 << (3 - uVar36) * 8;\n                  puVar22[0xc] = uVar10;\n                  puVar22[0xd] = uVar11;\n                  puVar22[0xe] = uVar12;\n                  puVar22[0x10] = bVar13;\n                  puVar22[0x11] = (char)((uint)psVar45 >> 0x18);\n                  puVar22[0x12] = (char)((uint)psVar45 >> 0x10);\n                  puVar22[0x13] = (char)((uint)psVar45 >> 8);\n                  puVar22[0x14] = (char)psVar45;\n                  pcVar48 = *(code **)(puVar47 + 0x89610);\n                  puVar22[0xf] = uVar5 != '\0';\n                  (*pcVar48)(puVar22 + 0x15,*(undefined4 *)(psStack_b0->sent_verstring + 0xc),\n                             psVar45);\n                  puVar23 = puVar22 + (int)psVar45;\n                  puVar23[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar23[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar23[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar23[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar47 + 0x89610))\n                            (puVar22 + (int)((int)&psVar45->got_verstring + 1),\n                             *(undefined4 *)(psStack_b0->sent_verstring + 0x10),unaff_s6);\n                  puVar23 = puVar22 + (int)(unaff_s6->recvbuf + (int)(psVar45->recvbuf + -0x40));\n                  puVar23[0x1c] = uVar8;\n                  puVar23[0x19] = uVar7;\n                  puVar23[0x1a] = uVar6;\n                  puVar23[0x1b] = uVar9;\n                  (**(code **)(puVar47 + 0x88b70))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar22,puVar38,0);\n                  (**(code **)(puVar47 + 0x88394))(puVar22);\n                  cs_00->recvlen = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }" if (parenthesized_expression "((bVar31 == 0x62) &&\n               (psVar45 = *(ssh_sharing_connstate **)(puVar47 + 0x88acc), 3 < (int)puVar22))" ( (binary_expression "(bVar31 == 0x62) &&\n               (psVar45 = *(ssh_sharing_connstate **)(puVar47 + 0x88acc), 3 < (int)puVar22)" (parenthesized_expression "(bVar31 == 0x62)" ( (binary_expression "bVar31 == 0x62" identifier == number_literal) )) && (parenthesized_expression "(psVar45 = *(ssh_sharing_connstate **)(puVar47 + 0x88acc), 3 < (int)puVar22)" ( (comma_expression "psVar45 = *(ssh_sharing_connstate **)(puVar47 + 0x88acc), 3 < (int)puVar22" (assignment_expression "psVar45 = *(ssh_sharing_connstate **)(puVar47 + 0x88acc)" identifier = (pointer_expression "*(ssh_sharing_connstate **)(puVar47 + 0x88acc)" * (cast_expression "(ssh_sharing_connstate **)(puVar47 + 0x88acc)" ( (type_descriptor "ssh_sharing_connstate **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88acc)" ( (binary_expression "puVar47 + 0x88acc" identifier + number_literal) ))))) , (binary_expression "3 < (int)puVar22" number_literal < (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\n              psVar45 = (ssh_sharing_connstate *)(psVar45[1].recvbuf + 0x394c);\n              iVar28 = getstring_inner(cs_00->recvbuf + 9,(int)puVar22,(char **)&psStack_90,\n                                       (int *)0x0);\n              psVar39 = psStack_90;\n              if ((iVar28 != 0) && (psStack_90 != (ssh_sharing_connstate *)0x0)) {\n                psStack_b0 = psStack_90;\n                iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x363c);\n                if ((iVar28 == 0) &&\n                   (iVar28 = (**(code **)(puVar47 + 0x888c4))(cs_00->parent->ssh), iVar28 == 0)) {\n                  ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  ppsStack_88 = ppsVar19;\n                  puVar27 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                  if (puVar27 == (undefined4 *)0x0) {\n                    pcVar48 = *(code **)(puVar47 + 0x8844c);\n                    iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    pcVar17 = (char *)(*pcVar48)(iVar28,ppsVar19);\n                    share_disconnect(cs_00,pcVar17);\n                    (**(code **)(puVar47 + 0x88394))(pcVar17);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_68 = (plug_function_table *)*puVar27;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar28 = *(int *)(puVar47 + 0x8839c);\n                iVar29 = (**(code **)(puVar47 + 0x8953c))(psVar39,iVar28 + -0x36a0);\n                if (iVar29 != 0) {\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  psStack_b0 = psVar39;\n                  goto LAB_00089cc8;\n                }\n                ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                (**(code **)(puVar47 + 0x88394))(psVar39);\n                ppsStack_88 = ppsVar19;\n                psStack_b0 = (ssh_sharing_connstate *)\n                             find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                if (psStack_b0 == (ssh_sharing_connstate *)0x0) {\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)puVar23 < 0x11) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                uVar5 = cs_00->recvbuf[0x14];\n                puVar22 = (undefined1 *)((int)&unaff_s6[-1].channels_by_server + 2);\n                uVar6 = cs_00->recvbuf[0x15];\n                if ((int)puVar22 < 4) {\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(0);\n                  (**(code **)(puVar47 + 0x88394))(0);\nLAB_0008a36c:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar29 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)&psStack_90,\n                                           (int *)0x0);\n                  psVar39 = psStack_90;\n                  if (iVar29 == 0) {\n                    psVar39 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(psVar39);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  iVar20 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_0008a36c;\n                }\n                puVar44 = (uchar *)((int)&psVar39->crLine + 1);\n                iVar20 = (int)puVar23 - (int)puVar44;\n                unaff_s6 = (ssh_sharing_connstate *)0x0;\n                if (iVar20 < 4) {\nLAB_00089ec4:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar21 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)&psStack_90,\n                                           (int *)0x0);\n                  unaff_s6 = psStack_90;\n                  if (iVar21 == 0) {\n                    unaff_s6 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar20 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_00089ec4;\n                }\n                if ((int)puVar23 <= (int)(puVar44 + (int)psVar39 + 3)) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar47 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                puVar38 = puVar38 + (int)(puVar44 + (int)psVar39);\n                if (-1 < iVar29) {\n                  pcVar48 = *(code **)(puVar47 + 0x88b94);\n                  uVar7 = *puVar38;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar38[1];\n                  uVar8 = puVar38[3];\n                  uVar9 = puVar38[2];\n                  psStack_b0->got_verstring = iVar29;\n                  iVar20 = (*pcVar48)(unaff_s6,psStack_b0->recvbuf);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psStack_b0->curr_packetlen = iVar20;\n                  (*pcVar48)(unaff_s6);\n                  iVar29 = (**(code **)(puVar47 + 0x88b98))\n                                     (cs_00->parent->ssh,iVar29,cs_00,psStack_b0);\n                  psStack_b0->sent_verstring = iVar29;\n                  *(uint *)(psStack_b0->recvbuf + 4) = (uint)bVar13;\n                  psVar45 = (ssh_sharing_connstate *)\n                            (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0xc));\n                  unaff_s6 = (ssh_sharing_connstate *)\n                             (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0x10));\n                  puVar38 = (uchar *)((int)&psVar45->curr_packetlen + 1) + (int)unaff_s6;\n                  puVar22 = (undefined1 *)(**(code **)(puVar47 + 0x88390))(puVar38,1);\n                  puVar22[4] = 0;\n                  puVar22[5] = 0;\n                  uVar32 = *(uint *)(iVar28 + -0x36a0);\n                  uVar10 = *(undefined1 *)(iVar28 + -0x369c);\n                  uVar11 = *(undefined1 *)(iVar28 + -0x369b);\n                  uVar12 = *(undefined1 *)(iVar28 + -0x369a);\n                  puVar22[3] = (char)ppsVar19;\n                  *puVar22 = (char)((uint)ppsVar19 >> 0x18);\n                  puVar22[1] = (char)((uint)ppsVar19 >> 0x10);\n                  puVar22[2] = (char)((uint)ppsVar19 >> 8);\n                  puVar22[7] = 7;\n                  puVar22[6] = 0;\n                  puVar23 = puVar22 + 8;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & -1 << (4 - uVar36) * 8 | uVar32 >> uVar36 * 8;\n                  puVar23 = puVar22 + 0xb;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & 0xffffffffU >> (uVar36 + 1) * 8 |\n                       uVar32 << (3 - uVar36) * 8;\n                  puVar22[0xc] = uVar10;\n                  puVar22[0xd] = uVar11;\n                  puVar22[0xe] = uVar12;\n                  puVar22[0x10] = bVar13;\n                  puVar22[0x11] = (char)((uint)psVar45 >> 0x18);\n                  puVar22[0x12] = (char)((uint)psVar45 >> 0x10);\n                  puVar22[0x13] = (char)((uint)psVar45 >> 8);\n                  puVar22[0x14] = (char)psVar45;\n                  pcVar48 = *(code **)(puVar47 + 0x89610);\n                  puVar22[0xf] = uVar5 != '\0';\n                  (*pcVar48)(puVar22 + 0x15,*(undefined4 *)(psStack_b0->sent_verstring + 0xc),\n                             psVar45);\n                  puVar23 = puVar22 + (int)psVar45;\n                  puVar23[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar23[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar23[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar23[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar47 + 0x89610))\n                            (puVar22 + (int)((int)&psVar45->got_verstring + 1),\n                             *(undefined4 *)(psStack_b0->sent_verstring + 0x10),unaff_s6);\n                  puVar23 = puVar22 + (int)(unaff_s6->recvbuf + (int)(psVar45->recvbuf + -0x40));\n                  puVar23[0x1c] = uVar8;\n                  puVar23[0x19] = uVar7;\n                  puVar23[0x1a] = uVar6;\n                  puVar23[0x1b] = uVar9;\n                  (**(code **)(puVar47 + 0x88b70))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar22,puVar38,0);\n                  (**(code **)(puVar47 + 0x88394))(puVar22);\n                  cs_00->recvlen = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }" { (expression_statement "psVar45 = (ssh_sharing_connstate *)(psVar45[1].recvbuf + 0x394c);" (assignment_expression "psVar45 = (ssh_sharing_connstate *)(psVar45[1].recvbuf + 0x394c)" identifier = (cast_expression "(ssh_sharing_connstate *)(psVar45[1].recvbuf + 0x394c)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar45[1].recvbuf + 0x394c)" ( (binary_expression "psVar45[1].recvbuf + 0x394c" (field_expression "psVar45[1].recvbuf" (subscript_expression "psVar45[1]" identifier [ number_literal ]) . field_identifier) + number_literal) )))) ;) (expression_statement "iVar28 = getstring_inner(cs_00->recvbuf + 9,(int)puVar22,(char **)&psStack_90,\n                                       (int *)0x0);" (assignment_expression "iVar28 = getstring_inner(cs_00->recvbuf + 9,(int)puVar22,(char **)&psStack_90,\n                                       (int *)0x0)" identifier = (call_expression "getstring_inner(cs_00->recvbuf + 9,(int)puVar22,(char **)&psStack_90,\n                                       (int *)0x0)" identifier (argument_list "(cs_00->recvbuf + 9,(int)puVar22,(char **)&psStack_90,\n                                       (int *)0x0)" ( (binary_expression "cs_00->recvbuf + 9" (field_expression "cs_00->recvbuf" identifier -> field_identifier) + number_literal) , (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(char **)&psStack_90" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&psStack_90" & identifier)) , (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "psVar39 = psStack_90;" (assignment_expression "psVar39 = psStack_90" identifier = identifier) ;) (if_statement "if ((iVar28 != 0) && (psStack_90 != (ssh_sharing_connstate *)0x0)) {\n                psStack_b0 = psStack_90;\n                iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x363c);\n                if ((iVar28 == 0) &&\n                   (iVar28 = (**(code **)(puVar47 + 0x888c4))(cs_00->parent->ssh), iVar28 == 0)) {\n                  ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  ppsStack_88 = ppsVar19;\n                  puVar27 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                  if (puVar27 == (undefined4 *)0x0) {\n                    pcVar48 = *(code **)(puVar47 + 0x8844c);\n                    iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    pcVar17 = (char *)(*pcVar48)(iVar28,ppsVar19);\n                    share_disconnect(cs_00,pcVar17);\n                    (**(code **)(puVar47 + 0x88394))(pcVar17);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_68 = (plug_function_table *)*puVar27;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar28 = *(int *)(puVar47 + 0x8839c);\n                iVar29 = (**(code **)(puVar47 + 0x8953c))(psVar39,iVar28 + -0x36a0);\n                if (iVar29 != 0) {\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  psStack_b0 = psVar39;\n                  goto LAB_00089cc8;\n                }\n                ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                (**(code **)(puVar47 + 0x88394))(psVar39);\n                ppsStack_88 = ppsVar19;\n                psStack_b0 = (ssh_sharing_connstate *)\n                             find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                if (psStack_b0 == (ssh_sharing_connstate *)0x0) {\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)puVar23 < 0x11) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                uVar5 = cs_00->recvbuf[0x14];\n                puVar22 = (undefined1 *)((int)&unaff_s6[-1].channels_by_server + 2);\n                uVar6 = cs_00->recvbuf[0x15];\n                if ((int)puVar22 < 4) {\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(0);\n                  (**(code **)(puVar47 + 0x88394))(0);\nLAB_0008a36c:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar29 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)&psStack_90,\n                                           (int *)0x0);\n                  psVar39 = psStack_90;\n                  if (iVar29 == 0) {\n                    psVar39 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(psVar39);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  iVar20 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_0008a36c;\n                }\n                puVar44 = (uchar *)((int)&psVar39->crLine + 1);\n                iVar20 = (int)puVar23 - (int)puVar44;\n                unaff_s6 = (ssh_sharing_connstate *)0x0;\n                if (iVar20 < 4) {\nLAB_00089ec4:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar21 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)&psStack_90,\n                                           (int *)0x0);\n                  unaff_s6 = psStack_90;\n                  if (iVar21 == 0) {\n                    unaff_s6 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar20 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_00089ec4;\n                }\n                if ((int)puVar23 <= (int)(puVar44 + (int)psVar39 + 3)) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar47 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                puVar38 = puVar38 + (int)(puVar44 + (int)psVar39);\n                if (-1 < iVar29) {\n                  pcVar48 = *(code **)(puVar47 + 0x88b94);\n                  uVar7 = *puVar38;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar38[1];\n                  uVar8 = puVar38[3];\n                  uVar9 = puVar38[2];\n                  psStack_b0->got_verstring = iVar29;\n                  iVar20 = (*pcVar48)(unaff_s6,psStack_b0->recvbuf);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psStack_b0->curr_packetlen = iVar20;\n                  (*pcVar48)(unaff_s6);\n                  iVar29 = (**(code **)(puVar47 + 0x88b98))\n                                     (cs_00->parent->ssh,iVar29,cs_00,psStack_b0);\n                  psStack_b0->sent_verstring = iVar29;\n                  *(uint *)(psStack_b0->recvbuf + 4) = (uint)bVar13;\n                  psVar45 = (ssh_sharing_connstate *)\n                            (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0xc));\n                  unaff_s6 = (ssh_sharing_connstate *)\n                             (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0x10));\n                  puVar38 = (uchar *)((int)&psVar45->curr_packetlen + 1) + (int)unaff_s6;\n                  puVar22 = (undefined1 *)(**(code **)(puVar47 + 0x88390))(puVar38,1);\n                  puVar22[4] = 0;\n                  puVar22[5] = 0;\n                  uVar32 = *(uint *)(iVar28 + -0x36a0);\n                  uVar10 = *(undefined1 *)(iVar28 + -0x369c);\n                  uVar11 = *(undefined1 *)(iVar28 + -0x369b);\n                  uVar12 = *(undefined1 *)(iVar28 + -0x369a);\n                  puVar22[3] = (char)ppsVar19;\n                  *puVar22 = (char)((uint)ppsVar19 >> 0x18);\n                  puVar22[1] = (char)((uint)ppsVar19 >> 0x10);\n                  puVar22[2] = (char)((uint)ppsVar19 >> 8);\n                  puVar22[7] = 7;\n                  puVar22[6] = 0;\n                  puVar23 = puVar22 + 8;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & -1 << (4 - uVar36) * 8 | uVar32 >> uVar36 * 8;\n                  puVar23 = puVar22 + 0xb;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & 0xffffffffU >> (uVar36 + 1) * 8 |\n                       uVar32 << (3 - uVar36) * 8;\n                  puVar22[0xc] = uVar10;\n                  puVar22[0xd] = uVar11;\n                  puVar22[0xe] = uVar12;\n                  puVar22[0x10] = bVar13;\n                  puVar22[0x11] = (char)((uint)psVar45 >> 0x18);\n                  puVar22[0x12] = (char)((uint)psVar45 >> 0x10);\n                  puVar22[0x13] = (char)((uint)psVar45 >> 8);\n                  puVar22[0x14] = (char)psVar45;\n                  pcVar48 = *(code **)(puVar47 + 0x89610);\n                  puVar22[0xf] = uVar5 != '\0';\n                  (*pcVar48)(puVar22 + 0x15,*(undefined4 *)(psStack_b0->sent_verstring + 0xc),\n                             psVar45);\n                  puVar23 = puVar22 + (int)psVar45;\n                  puVar23[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar23[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar23[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar23[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar47 + 0x89610))\n                            (puVar22 + (int)((int)&psVar45->got_verstring + 1),\n                             *(undefined4 *)(psStack_b0->sent_verstring + 0x10),unaff_s6);\n                  puVar23 = puVar22 + (int)(unaff_s6->recvbuf + (int)(psVar45->recvbuf + -0x40));\n                  puVar23[0x1c] = uVar8;\n                  puVar23[0x19] = uVar7;\n                  puVar23[0x1a] = uVar6;\n                  puVar23[0x1b] = uVar9;\n                  (**(code **)(puVar47 + 0x88b70))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar22,puVar38,0);\n                  (**(code **)(puVar47 + 0x88394))(puVar22);\n                  cs_00->recvlen = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }" if (parenthesized_expression "((iVar28 != 0) && (psStack_90 != (ssh_sharing_connstate *)0x0))" ( (binary_expression "(iVar28 != 0) && (psStack_90 != (ssh_sharing_connstate *)0x0)" (parenthesized_expression "(iVar28 != 0)" ( (binary_expression "iVar28 != 0" identifier != number_literal) )) && (parenthesized_expression "(psStack_90 != (ssh_sharing_connstate *)0x0)" ( (binary_expression "psStack_90 != (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_b0 = psStack_90;\n                iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x363c);\n                if ((iVar28 == 0) &&\n                   (iVar28 = (**(code **)(puVar47 + 0x888c4))(cs_00->parent->ssh), iVar28 == 0)) {\n                  ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  ppsStack_88 = ppsVar19;\n                  puVar27 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                  if (puVar27 == (undefined4 *)0x0) {\n                    pcVar48 = *(code **)(puVar47 + 0x8844c);\n                    iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    pcVar17 = (char *)(*pcVar48)(iVar28,ppsVar19);\n                    share_disconnect(cs_00,pcVar17);\n                    (**(code **)(puVar47 + 0x88394))(pcVar17);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_68 = (plug_function_table *)*puVar27;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar28 = *(int *)(puVar47 + 0x8839c);\n                iVar29 = (**(code **)(puVar47 + 0x8953c))(psVar39,iVar28 + -0x36a0);\n                if (iVar29 != 0) {\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  psStack_b0 = psVar39;\n                  goto LAB_00089cc8;\n                }\n                ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                (**(code **)(puVar47 + 0x88394))(psVar39);\n                ppsStack_88 = ppsVar19;\n                psStack_b0 = (ssh_sharing_connstate *)\n                             find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                if (psStack_b0 == (ssh_sharing_connstate *)0x0) {\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)puVar23 < 0x11) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                uVar5 = cs_00->recvbuf[0x14];\n                puVar22 = (undefined1 *)((int)&unaff_s6[-1].channels_by_server + 2);\n                uVar6 = cs_00->recvbuf[0x15];\n                if ((int)puVar22 < 4) {\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(0);\n                  (**(code **)(puVar47 + 0x88394))(0);\nLAB_0008a36c:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar29 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)&psStack_90,\n                                           (int *)0x0);\n                  psVar39 = psStack_90;\n                  if (iVar29 == 0) {\n                    psVar39 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(psVar39);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  iVar20 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_0008a36c;\n                }\n                puVar44 = (uchar *)((int)&psVar39->crLine + 1);\n                iVar20 = (int)puVar23 - (int)puVar44;\n                unaff_s6 = (ssh_sharing_connstate *)0x0;\n                if (iVar20 < 4) {\nLAB_00089ec4:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar21 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)&psStack_90,\n                                           (int *)0x0);\n                  unaff_s6 = psStack_90;\n                  if (iVar21 == 0) {\n                    unaff_s6 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar20 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_00089ec4;\n                }\n                if ((int)puVar23 <= (int)(puVar44 + (int)psVar39 + 3)) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar47 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                puVar38 = puVar38 + (int)(puVar44 + (int)psVar39);\n                if (-1 < iVar29) {\n                  pcVar48 = *(code **)(puVar47 + 0x88b94);\n                  uVar7 = *puVar38;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar38[1];\n                  uVar8 = puVar38[3];\n                  uVar9 = puVar38[2];\n                  psStack_b0->got_verstring = iVar29;\n                  iVar20 = (*pcVar48)(unaff_s6,psStack_b0->recvbuf);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psStack_b0->curr_packetlen = iVar20;\n                  (*pcVar48)(unaff_s6);\n                  iVar29 = (**(code **)(puVar47 + 0x88b98))\n                                     (cs_00->parent->ssh,iVar29,cs_00,psStack_b0);\n                  psStack_b0->sent_verstring = iVar29;\n                  *(uint *)(psStack_b0->recvbuf + 4) = (uint)bVar13;\n                  psVar45 = (ssh_sharing_connstate *)\n                            (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0xc));\n                  unaff_s6 = (ssh_sharing_connstate *)\n                             (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0x10));\n                  puVar38 = (uchar *)((int)&psVar45->curr_packetlen + 1) + (int)unaff_s6;\n                  puVar22 = (undefined1 *)(**(code **)(puVar47 + 0x88390))(puVar38,1);\n                  puVar22[4] = 0;\n                  puVar22[5] = 0;\n                  uVar32 = *(uint *)(iVar28 + -0x36a0);\n                  uVar10 = *(undefined1 *)(iVar28 + -0x369c);\n                  uVar11 = *(undefined1 *)(iVar28 + -0x369b);\n                  uVar12 = *(undefined1 *)(iVar28 + -0x369a);\n                  puVar22[3] = (char)ppsVar19;\n                  *puVar22 = (char)((uint)ppsVar19 >> 0x18);\n                  puVar22[1] = (char)((uint)ppsVar19 >> 0x10);\n                  puVar22[2] = (char)((uint)ppsVar19 >> 8);\n                  puVar22[7] = 7;\n                  puVar22[6] = 0;\n                  puVar23 = puVar22 + 8;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & -1 << (4 - uVar36) * 8 | uVar32 >> uVar36 * 8;\n                  puVar23 = puVar22 + 0xb;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & 0xffffffffU >> (uVar36 + 1) * 8 |\n                       uVar32 << (3 - uVar36) * 8;\n                  puVar22[0xc] = uVar10;\n                  puVar22[0xd] = uVar11;\n                  puVar22[0xe] = uVar12;\n                  puVar22[0x10] = bVar13;\n                  puVar22[0x11] = (char)((uint)psVar45 >> 0x18);\n                  puVar22[0x12] = (char)((uint)psVar45 >> 0x10);\n                  puVar22[0x13] = (char)((uint)psVar45 >> 8);\n                  puVar22[0x14] = (char)psVar45;\n                  pcVar48 = *(code **)(puVar47 + 0x89610);\n                  puVar22[0xf] = uVar5 != '\0';\n                  (*pcVar48)(puVar22 + 0x15,*(undefined4 *)(psStack_b0->sent_verstring + 0xc),\n                             psVar45);\n                  puVar23 = puVar22 + (int)psVar45;\n                  puVar23[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar23[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar23[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar23[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar47 + 0x89610))\n                            (puVar22 + (int)((int)&psVar45->got_verstring + 1),\n                             *(undefined4 *)(psStack_b0->sent_verstring + 0x10),unaff_s6);\n                  puVar23 = puVar22 + (int)(unaff_s6->recvbuf + (int)(psVar45->recvbuf + -0x40));\n                  puVar23[0x1c] = uVar8;\n                  puVar23[0x19] = uVar7;\n                  puVar23[0x1a] = uVar6;\n                  puVar23[0x1b] = uVar9;\n                  (**(code **)(puVar47 + 0x88b70))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar22,puVar38,0);\n                  (**(code **)(puVar47 + 0x88394))(puVar22);\n                  cs_00->recvlen = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }" { (expression_statement "psStack_b0 = psStack_90;" (assignment_expression "psStack_b0 = psStack_90" identifier = identifier) ;) (expression_statement "iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x363c);" (assignment_expression "iVar28 = (**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x363c)" identifier = (call_expression "(**(code **)(puVar47 + 0x8953c))\n                                   (psStack_90,*(int *)(puVar47 + 0x8839c) + -0x363c)" (parenthesized_expression "(**(code **)(puVar47 + 0x8953c))" ( (pointer_expression "**(code **)(puVar47 + 0x8953c)" * (pointer_expression "*(code **)(puVar47 + 0x8953c)" * (cast_expression "(code **)(puVar47 + 0x8953c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x8953c)" ( (binary_expression "puVar47 + 0x8953c" identifier + number_literal) ))))) )) (argument_list "(psStack_90,*(int *)(puVar47 + 0x8839c) + -0x363c)" ( identifier , (binary_expression "*(int *)(puVar47 + 0x8839c) + -0x363c" (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if ((iVar28 == 0) &&\n                   (iVar28 = (**(code **)(puVar47 + 0x888c4))(cs_00->parent->ssh), iVar28 == 0)) {\n                  ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  ppsStack_88 = ppsVar19;\n                  puVar27 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                  if (puVar27 == (undefined4 *)0x0) {\n                    pcVar48 = *(code **)(puVar47 + 0x8844c);\n                    iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    pcVar17 = (char *)(*pcVar48)(iVar28,ppsVar19);\n                    share_disconnect(cs_00,pcVar17);\n                    (**(code **)(puVar47 + 0x88394))(pcVar17);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_68 = (plug_function_table *)*puVar27;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000893ac;\n                }" if (parenthesized_expression "((iVar28 == 0) &&\n                   (iVar28 = (**(code **)(puVar47 + 0x888c4))(cs_00->parent->ssh), iVar28 == 0))" ( (binary_expression "(iVar28 == 0) &&\n                   (iVar28 = (**(code **)(puVar47 + 0x888c4))(cs_00->parent->ssh), iVar28 == 0)" (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar28 = (**(code **)(puVar47 + 0x888c4))(cs_00->parent->ssh), iVar28 == 0)" ( (comma_expression "iVar28 = (**(code **)(puVar47 + 0x888c4))(cs_00->parent->ssh), iVar28 == 0" (assignment_expression "iVar28 = (**(code **)(puVar47 + 0x888c4))(cs_00->parent->ssh)" identifier = (call_expression "(**(code **)(puVar47 + 0x888c4))(cs_00->parent->ssh)" (parenthesized_expression "(**(code **)(puVar47 + 0x888c4))" ( (pointer_expression "**(code **)(puVar47 + 0x888c4)" * (pointer_expression "*(code **)(puVar47 + 0x888c4)" * (cast_expression "(code **)(puVar47 + 0x888c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x888c4)" ( (binary_expression "puVar47 + 0x888c4" 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 "iVar28 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                  ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  ppsStack_88 = ppsVar19;\n                  puVar27 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n                  if (puVar27 == (undefined4 *)0x0) {\n                    pcVar48 = *(code **)(puVar47 + 0x8844c);\n                    iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    pcVar17 = (char *)(*pcVar48)(iVar28,ppsVar19);\n                    share_disconnect(cs_00,pcVar17);\n                    (**(code **)(puVar47 + 0x88394))(pcVar17);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_68 = (plug_function_table *)*puVar27;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000893ac;\n                }" { (expression_statement "ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);" (assignment_expression "ppsVar19 = *(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 **)(puVar47 + 0x88394))(psVar39);" (call_expression "(**(code **)(puVar47 + 0x88394))(psVar39)" (parenthesized_expression "(**(code **)(puVar47 + 0x88394))" ( (pointer_expression "**(code **)(puVar47 + 0x88394)" * (pointer_expression "*(code **)(puVar47 + 0x88394)" * (cast_expression "(code **)(puVar47 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88394)" ( (binary_expression "puVar47 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(psVar39)" ( identifier ))) ;) (expression_statement "ppsStack_88 = ppsVar19;" (assignment_expression "ppsStack_88 = ppsVar19" identifier = identifier) ;) (expression_statement "puVar27 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);" (assignment_expression "puVar27 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0)" identifier = (cast_expression "(undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0)" identifier (argument_list "(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0)" ( (field_expression "cs_00->channels_by_server" identifier -> field_identifier) , (pointer_expression "&psStack_90" & identifier) , (cast_expression "(cmpfn234)0x0" ( (type_descriptor "cmpfn234" type_identifier) ) number_literal) ))))) ;) (if_statement "if (puVar27 == (undefined4 *)0x0) {\n                    pcVar48 = *(code **)(puVar47 + 0x8844c);\n                    iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    pcVar17 = (char *)(*pcVar48)(iVar28,ppsVar19);\n                    share_disconnect(cs_00,pcVar17);\n                    (**(code **)(puVar47 + 0x88394))(pcVar17);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_68 = (plug_function_table *)*puVar27;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }" if (parenthesized_expression "(puVar27 == (undefined4 *)0x0)" ( (binary_expression "puVar27 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    pcVar48 = *(code **)(puVar47 + 0x8844c);\n                    iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    pcVar17 = (char *)(*pcVar48)(iVar28,ppsVar19);\n                    share_disconnect(cs_00,pcVar17);\n                    (**(code **)(puVar47 + 0x88394))(pcVar17);\n                    cs_00->recvlen = 0;\n                  }" { (expression_statement "pcVar48 = *(code **)(puVar47 + 0x8844c);" (assignment_expression "pcVar48 = *(code **)(puVar47 + 0x8844c)" identifier = (pointer_expression "*(code **)(puVar47 + 0x8844c)" * (cast_expression "(code **)(puVar47 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x8844c)" ( (binary_expression "puVar47 + 0x8844c" identifier + number_literal) ))))) ;) (expression_statement "iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46b8;" (assignment_expression "iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46b8" identifier = (binary_expression "*(int *)(puVar47 + 0x8839c) + 0x46b8" (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" identifier + number_literal) )))) + number_literal)) ;) (labeled_statement "LAB_0008a3a0:\n                    pcVar17 = (char *)(*pcVar48)(iVar28,ppsVar19);" statement_identifier : (expression_statement "pcVar17 = (char *)(*pcVar48)(iVar28,ppsVar19);" (assignment_expression "pcVar17 = (char *)(*pcVar48)(iVar28,ppsVar19)" identifier = (cast_expression "(char *)(*pcVar48)(iVar28,ppsVar19)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar48)(iVar28,ppsVar19)" (parenthesized_expression "(*pcVar48)" ( (pointer_expression "*pcVar48" * identifier) )) (argument_list "(iVar28,ppsVar19)" ( identifier , identifier ))))) ;)) (expression_statement "share_disconnect(cs_00,pcVar17);" (call_expression "share_disconnect(cs_00,pcVar17)" identifier (argument_list "(cs_00,pcVar17)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar47 + 0x88394))(pcVar17);" (call_expression "(**(code **)(puVar47 + 0x88394))(pcVar17)" (parenthesized_expression "(**(code **)(puVar47 + 0x88394))" ( (pointer_expression "**(code **)(puVar47 + 0x88394)" * (pointer_expression "*(code **)(puVar47 + 0x88394)" * (cast_expression "(code **)(puVar47 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88394)" ( (binary_expression "puVar47 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(pcVar17)" ( 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_68 = (plug_function_table *)*puVar27;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }" else (compound_statement "{\n                    ppStack_68 = (plug_function_table *)*puVar27;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }" { (expression_statement "ppStack_68 = (plug_function_table *)*puVar27;" (assignment_expression "ppStack_68 = (plug_function_table *)*puVar27" identifier = (cast_expression "(plug_function_table *)*puVar27" ( (type_descriptor "plug_function_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar27" * identifier))) ;) (expression_statement "send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,\n                               (share_channel *)0x0,(share_channel *)0xc);" (call_expression "send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,4,\n                               (share_channel *)0x0,(share_channel *)0xc)" identifier (argument_list "((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_68,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_68" & 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_000893ac;" goto statement_identifier ;) })) (expression_statement "iVar28 = *(int *)(puVar47 + 0x8839c);" (assignment_expression "iVar28 = *(int *)(puVar47 + 0x8839c)" identifier = (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" identifier + number_literal) ))))) ;) (expression_statement "iVar29 = (**(code **)(puVar47 + 0x8953c))(psVar39,iVar28 + -0x36a0);" (assignment_expression "iVar29 = (**(code **)(puVar47 + 0x8953c))(psVar39,iVar28 + -0x36a0)" identifier = (call_expression "(**(code **)(puVar47 + 0x8953c))(psVar39,iVar28 + -0x36a0)" (parenthesized_expression "(**(code **)(puVar47 + 0x8953c))" ( (pointer_expression "**(code **)(puVar47 + 0x8953c)" * (pointer_expression "*(code **)(puVar47 + 0x8953c)" * (cast_expression "(code **)(puVar47 + 0x8953c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x8953c)" ( (binary_expression "puVar47 + 0x8953c" identifier + number_literal) ))))) )) (argument_list "(psVar39,iVar28 + -0x36a0)" ( identifier , (binary_expression "iVar28 + -0x36a0" identifier + number_literal) )))) ;) (if_statement "if (iVar29 != 0) {\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  psStack_b0 = psVar39;\n                  goto LAB_00089cc8;\n                }" if (parenthesized_expression "(iVar29 != 0)" ( (binary_expression "iVar29 != 0" identifier != number_literal) )) (compound_statement "{\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  psStack_b0 = psVar39;\n                  goto LAB_00089cc8;\n                }" { (expression_statement "(**(code **)(puVar47 + 0x88394))(psVar39);" (call_expression "(**(code **)(puVar47 + 0x88394))(psVar39)" (parenthesized_expression "(**(code **)(puVar47 + 0x88394))" ( (pointer_expression "**(code **)(puVar47 + 0x88394)" * (pointer_expression "*(code **)(puVar47 + 0x88394)" * (cast_expression "(code **)(puVar47 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88394)" ( (binary_expression "puVar47 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(psVar39)" ( identifier ))) ;) (expression_statement "psStack_b0 = psVar39;" (assignment_expression "psStack_b0 = psVar39" identifier = identifier) ;) (goto_statement "goto LAB_00089cc8;" goto statement_identifier ;) })) (expression_statement "ppsVar19 = *(Socket *)(cs_00->recvbuf + 5);" (assignment_expression "ppsVar19 = *(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 **)(puVar47 + 0x88394))(psVar39);" (call_expression "(**(code **)(puVar47 + 0x88394))(psVar39)" (parenthesized_expression "(**(code **)(puVar47 + 0x88394))" ( (pointer_expression "**(code **)(puVar47 + 0x88394)" * (pointer_expression "*(code **)(puVar47 + 0x88394)" * (cast_expression "(code **)(puVar47 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88394)" ( (binary_expression "puVar47 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(psVar39)" ( identifier ))) ;) (expression_statement "ppsStack_88 = ppsVar19;" (assignment_expression "ppsStack_88 = ppsVar19" identifier = identifier) ;) (expression_statement "psStack_b0 = (ssh_sharing_connstate *)\n                             find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);" (assignment_expression "psStack_b0 = (ssh_sharing_connstate *)\n                             find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0)" identifier = (cast_expression "(ssh_sharing_connstate *)\n                             find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0)" identifier (argument_list "(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0)" ( (field_expression "cs_00->channels_by_server" identifier -> field_identifier) , (pointer_expression "&psStack_90" & identifier) , (cast_expression "(cmpfn234)0x0" ( (type_descriptor "cmpfn234" type_identifier) ) number_literal) ))))) ;) (if_statement "if (psStack_b0 == (ssh_sharing_connstate *)0x0) {\n                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }" if (parenthesized_expression "(psStack_b0 == (ssh_sharing_connstate *)0x0)" ( (binary_expression "psStack_b0 == (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                  pcVar48 = *(code **)(puVar47 + 0x8844c);\n                  iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }" { (expression_statement "pcVar48 = *(code **)(puVar47 + 0x8844c);" (assignment_expression "pcVar48 = *(code **)(puVar47 + 0x8844c)" identifier = (pointer_expression "*(code **)(puVar47 + 0x8844c)" * (cast_expression "(code **)(puVar47 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x8844c)" ( (binary_expression "puVar47 + 0x8844c" identifier + number_literal) ))))) ;) (expression_statement "iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46f0;" (assignment_expression "iVar28 = *(int *)(puVar47 + 0x8839c) + 0x46f0" identifier = (binary_expression "*(int *)(puVar47 + 0x8839c) + 0x46f0" (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" identifier + number_literal) )))) + number_literal)) ;) (goto_statement "goto LAB_0008a3a0;" goto statement_identifier ;) })) (if_statement "if ((int)puVar23 < 0x11) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }" if (parenthesized_expression "((int)puVar23 < 0x11)" ( (binary_expression "(int)puVar23 < 0x11" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }" { (expression_statement "pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);" (assignment_expression "pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724)" identifier = (cast_expression "(char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724)" (parenthesized_expression "(**(code **)(puVar47 + 0x8844c))" ( (pointer_expression "**(code **)(puVar47 + 0x8844c)" * (pointer_expression "*(code **)(puVar47 + 0x8844c)" * (cast_expression "(code **)(puVar47 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x8844c)" ( (binary_expression "puVar47 + 0x8844c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar47 + 0x8839c) + 0x4724)" ( (binary_expression "*(int *)(puVar47 + 0x8839c) + 0x4724" (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" identifier + number_literal) )))) + number_literal) ))))) ;) (goto_statement "goto LAB_00089674;" goto statement_identifier ;) })) (expression_statement "uVar5 = cs_00->recvbuf[0x14];" (assignment_expression "uVar5 = cs_00->recvbuf[0x14]" identifier = (subscript_expression "cs_00->recvbuf[0x14]" (field_expression "cs_00->recvbuf" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "puVar22 = (undefined1 *)((int)&unaff_s6[-1].channels_by_server + 2);" (assignment_expression "puVar22 = (undefined1 *)((int)&unaff_s6[-1].channels_by_server + 2)" identifier = (cast_expression "(undefined1 *)((int)&unaff_s6[-1].channels_by_server + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&unaff_s6[-1].channels_by_server + 2)" ( (binary_expression "(int)&unaff_s6[-1].channels_by_server + 2" (cast_expression "(int)&unaff_s6[-1].channels_by_server" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s6[-1].channels_by_server" & (field_expression "unaff_s6[-1].channels_by_server" (subscript_expression "unaff_s6[-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)puVar22 < 4) {\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(0);\n                  (**(code **)(puVar47 + 0x88394))(0);\nLAB_0008a36c:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar29 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)&psStack_90,\n                                           (int *)0x0);\n                  psVar39 = psStack_90;\n                  if (iVar29 == 0) {\n                    psVar39 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(psVar39);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  iVar20 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_0008a36c;\n                }" if (parenthesized_expression "((int)puVar22 < 4)" ( (binary_expression "(int)puVar22 < 4" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(0);\n                  (**(code **)(puVar47 + 0x88394))(0);\nLAB_0008a36c:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }" { (expression_statement "iVar29 = (**(code **)(puVar47 + 0x88b90))(0);" (assignment_expression "iVar29 = (**(code **)(puVar47 + 0x88b90))(0)" identifier = (call_expression "(**(code **)(puVar47 + 0x88b90))(0)" (parenthesized_expression "(**(code **)(puVar47 + 0x88b90))" ( (pointer_expression "**(code **)(puVar47 + 0x88b90)" * (pointer_expression "*(code **)(puVar47 + 0x88b90)" * (cast_expression "(code **)(puVar47 + 0x88b90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88b90)" ( (binary_expression "puVar47 + 0x88b90" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal )))) ;) (expression_statement "(**(code **)(puVar47 + 0x88394))(0);" (call_expression "(**(code **)(puVar47 + 0x88394))(0)" (parenthesized_expression "(**(code **)(puVar47 + 0x88394))" ( (pointer_expression "**(code **)(puVar47 + 0x88394)" * (pointer_expression "*(code **)(puVar47 + 0x88394)" * (cast_expression "(code **)(puVar47 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88394)" ( (binary_expression "puVar47 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal ))) ;) (labeled_statement "LAB_0008a36c:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;" statement_identifier : (expression_statement "psVar39 = (ssh_sharing_connstate *)0xffffffff;" (assignment_expression "psVar39 = (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                  iVar29 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)&psStack_90,\n                                           (int *)0x0);\n                  psVar39 = psStack_90;\n                  if (iVar29 == 0) {\n                    psVar39 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(psVar39);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  iVar20 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_0008a36c;\n                }" else (compound_statement "{\n                  iVar29 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)&psStack_90,\n                                           (int *)0x0);\n                  psVar39 = psStack_90;\n                  if (iVar29 == 0) {\n                    psVar39 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar29 = (**(code **)(puVar47 + 0x88b90))(psVar39);\n                  (**(code **)(puVar47 + 0x88394))(psVar39);\n                  iVar20 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_0008a36c;\n                }" { (expression_statement "iVar29 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)&psStack_90,\n                                           (int *)0x0);" (assignment_expression "iVar29 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)&psStack_90,\n                                           (int *)0x0)" identifier = (call_expression "getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)&psStack_90,\n                                           (int *)0x0)" identifier (argument_list "(cs_00->recvbuf + 0x16,(int)puVar22,(char **)&psStack_90,\n                                           (int *)0x0)" ( (binary_expression "cs_00->recvbuf + 0x16" (field_expression "cs_00->recvbuf" identifier -> field_identifier) + number_literal) , (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(char **)&psStack_90" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&psStack_90" & identifier)) , (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "psVar39 = psStack_90;" (assignment_expression "psVar39 = psStack_90" identifier = identifier) ;) (if_statement "if (iVar29 == 0) {\n                    psVar39 = (ssh_sharing_connstate *)0x0;\n                  }" if (parenthesized_expression "(iVar29 == 0)" ( (binary_expression "iVar29 == 0" identifier == number_literal) )) (compound_statement "{\n                    psVar39 = (ssh_sharing_connstate *)0x0;\n                  }" { (expression_statement "psVar39 = (ssh_sharing_connstate *)0x0;" (assignment_expression "psVar39 = (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 "iVar29 = (**(code **)(puVar47 + 0x88b90))(psVar39);" (assignment_expression "iVar29 = (**(code **)(puVar47 + 0x88b90))(psVar39)" identifier = (call_expression "(**(code **)(puVar47 + 0x88b90))(psVar39)" (parenthesized_expression "(**(code **)(puVar47 + 0x88b90))" ( (pointer_expression "**(code **)(puVar47 + 0x88b90)" * (pointer_expression "*(code **)(puVar47 + 0x88b90)" * (cast_expression "(code **)(puVar47 + 0x88b90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88b90)" ( (binary_expression "puVar47 + 0x88b90" identifier + number_literal) ))))) )) (argument_list "(psVar39)" ( identifier )))) ;) (expression_statement "(**(code **)(puVar47 + 0x88394))(psVar39);" (call_expression "(**(code **)(puVar47 + 0x88394))(psVar39)" (parenthesized_expression "(**(code **)(puVar47 + 0x88394))" ( (pointer_expression "**(code **)(puVar47 + 0x88394)" * (pointer_expression "*(code **)(puVar47 + 0x88394)" * (cast_expression "(code **)(puVar47 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88394)" ( (binary_expression "puVar47 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(psVar39)" ( identifier ))) ;) (expression_statement "iVar20 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)0x0,\n                                           (int *)&psStack_90);" (assignment_expression "iVar20 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)0x0,\n                                           (int *)&psStack_90)" identifier = (call_expression "getstring_inner(cs_00->recvbuf + 0x16,(int)puVar22,(char **)0x0,\n                                           (int *)&psStack_90)" identifier (argument_list "(cs_00->recvbuf + 0x16,(int)puVar22,(char **)0x0,\n                                           (int *)&psStack_90)" ( (binary_expression "cs_00->recvbuf + 0x16" (field_expression "cs_00->recvbuf" identifier -> field_identifier) + number_literal) , (cast_expression "(int)puVar22" ( (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_90" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psStack_90" & identifier)) )))) ;) (expression_statement "psVar39 = psStack_90;" (assignment_expression "psVar39 = psStack_90" identifier = identifier) ;) (if_statement "if (iVar20 == 0) goto LAB_0008a36c;" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0008a36c;" goto statement_identifier ;)) }))) (expression_statement "puVar44 = (uchar *)((int)&psVar39->crLine + 1);" (assignment_expression "puVar44 = (uchar *)((int)&psVar39->crLine + 1)" identifier = (cast_expression "(uchar *)((int)&psVar39->crLine + 1)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psVar39->crLine + 1)" ( (binary_expression "(int)&psVar39->crLine + 1" (cast_expression "(int)&psVar39->crLine" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar39->crLine" & (field_expression "psVar39->crLine" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "iVar20 = (int)puVar23 - (int)puVar44;" (assignment_expression "iVar20 = (int)puVar23 - (int)puVar44" identifier = (binary_expression "(int)puVar23 - (int)puVar44" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar44" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "unaff_s6 = (ssh_sharing_connstate *)0x0;" (assignment_expression "unaff_s6 = (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 (iVar20 < 4) {\nLAB_00089ec4:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar21 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)&psStack_90,\n                                           (int *)0x0);\n                  unaff_s6 = psStack_90;\n                  if (iVar21 == 0) {\n                    unaff_s6 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar20 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_00089ec4;\n                }" if (parenthesized_expression "(iVar20 < 4)" ( (binary_expression "iVar20 < 4" identifier < number_literal) )) (compound_statement "{\nLAB_00089ec4:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;\n                }" { (labeled_statement "LAB_00089ec4:\n                  psVar39 = (ssh_sharing_connstate *)0xffffffff;" statement_identifier : (expression_statement "psVar39 = (ssh_sharing_connstate *)0xffffffff;" (assignment_expression "psVar39 = (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                  iVar21 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)&psStack_90,\n                                           (int *)0x0);\n                  unaff_s6 = psStack_90;\n                  if (iVar21 == 0) {\n                    unaff_s6 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar20 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_00089ec4;\n                }" else (compound_statement "{\n                  iVar21 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)&psStack_90,\n                                           (int *)0x0);\n                  unaff_s6 = psStack_90;\n                  if (iVar21 == 0) {\n                    unaff_s6 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar20 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)0x0,\n                                           (int *)&psStack_90);\n                  psVar39 = psStack_90;\n                  if (iVar20 == 0) goto LAB_00089ec4;\n                }" { (expression_statement "iVar21 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)&psStack_90,\n                                           (int *)0x0);" (assignment_expression "iVar21 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)&psStack_90,\n                                           (int *)0x0)" identifier = (call_expression "getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)&psStack_90,\n                                           (int *)0x0)" identifier (argument_list "(puVar38 + (int)puVar44,iVar20,(char **)&psStack_90,\n                                           (int *)0x0)" ( (binary_expression "puVar38 + (int)puVar44" identifier + (cast_expression "(int)puVar44" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier , (cast_expression "(char **)&psStack_90" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&psStack_90" & identifier)) , (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "unaff_s6 = psStack_90;" (assignment_expression "unaff_s6 = psStack_90" identifier = identifier) ;) (if_statement "if (iVar21 == 0) {\n                    unaff_s6 = (ssh_sharing_connstate *)0x0;\n                  }" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 0" identifier == number_literal) )) (compound_statement "{\n                    unaff_s6 = (ssh_sharing_connstate *)0x0;\n                  }" { (expression_statement "unaff_s6 = (ssh_sharing_connstate *)0x0;" (assignment_expression "unaff_s6 = (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 "iVar20 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)0x0,\n                                           (int *)&psStack_90);" (assignment_expression "iVar20 = getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)0x0,\n                                           (int *)&psStack_90)" identifier = (call_expression "getstring_inner(puVar38 + (int)puVar44,iVar20,(char **)0x0,\n                                           (int *)&psStack_90)" identifier (argument_list "(puVar38 + (int)puVar44,iVar20,(char **)0x0,\n                                           (int *)&psStack_90)" ( (binary_expression "puVar38 + (int)puVar44" identifier + (cast_expression "(int)puVar44" ( (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_90" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psStack_90" & identifier)) )))) ;) (expression_statement "psVar39 = psStack_90;" (assignment_expression "psVar39 = psStack_90" identifier = identifier) ;) (if_statement "if (iVar20 == 0) goto LAB_00089ec4;" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00089ec4;" goto statement_identifier ;)) }))) (if_statement "if ((int)puVar23 <= (int)(puVar44 + (int)psVar39 + 3)) {\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar47 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }" if (parenthesized_expression "((int)puVar23 <= (int)(puVar44 + (int)psVar39 + 3))" ( (binary_expression "(int)puVar23 <= (int)(puVar44 + (int)psVar39 + 3)" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(puVar44 + (int)psVar39 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar44 + (int)psVar39 + 3)" ( (binary_expression "puVar44 + (int)psVar39 + 3" (binary_expression "puVar44 + (int)psVar39" identifier + (cast_expression "(int)psVar39" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal) )))) )) (compound_statement "{\n                  pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar47 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }" { (expression_statement "pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724);" (assignment_expression "pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724)" identifier = (cast_expression "(char *)(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar47 + 0x8844c))\n                                              (*(int *)(puVar47 + 0x8839c) + 0x4724)" (parenthesized_expression "(**(code **)(puVar47 + 0x8844c))" ( (pointer_expression "**(code **)(puVar47 + 0x8844c)" * (pointer_expression "*(code **)(puVar47 + 0x8844c)" * (cast_expression "(code **)(puVar47 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x8844c)" ( (binary_expression "puVar47 + 0x8844c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar47 + 0x8839c) + 0x4724)" ( (binary_expression "*(int *)(puVar47 + 0x8839c) + 0x4724" (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar47 + 0x88394))(unaff_s6);" (call_expression "(**(code **)(puVar47 + 0x88394))(unaff_s6)" (parenthesized_expression "(**(code **)(puVar47 + 0x88394))" ( (pointer_expression "**(code **)(puVar47 + 0x88394)" * (pointer_expression "*(code **)(puVar47 + 0x88394)" * (cast_expression "(code **)(puVar47 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88394)" ( (binary_expression "puVar47 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(unaff_s6)" ( identifier ))) ;) (goto_statement "goto LAB_00089674;" goto statement_identifier ;) })) (expression_statement "puVar38 = puVar38 + (int)(puVar44 + (int)psVar39);" (assignment_expression "puVar38 = puVar38 + (int)(puVar44 + (int)psVar39)" identifier = (binary_expression "puVar38 + (int)(puVar44 + (int)psVar39)" identifier + (cast_expression "(int)(puVar44 + (int)psVar39)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar44 + (int)psVar39)" ( (binary_expression "puVar44 + (int)psVar39" identifier + (cast_expression "(int)psVar39" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if (-1 < iVar29) {\n                  pcVar48 = *(code **)(puVar47 + 0x88b94);\n                  uVar7 = *puVar38;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar38[1];\n                  uVar8 = puVar38[3];\n                  uVar9 = puVar38[2];\n                  psStack_b0->got_verstring = iVar29;\n                  iVar20 = (*pcVar48)(unaff_s6,psStack_b0->recvbuf);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psStack_b0->curr_packetlen = iVar20;\n                  (*pcVar48)(unaff_s6);\n                  iVar29 = (**(code **)(puVar47 + 0x88b98))\n                                     (cs_00->parent->ssh,iVar29,cs_00,psStack_b0);\n                  psStack_b0->sent_verstring = iVar29;\n                  *(uint *)(psStack_b0->recvbuf + 4) = (uint)bVar13;\n                  psVar45 = (ssh_sharing_connstate *)\n                            (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0xc));\n                  unaff_s6 = (ssh_sharing_connstate *)\n                             (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0x10));\n                  puVar38 = (uchar *)((int)&psVar45->curr_packetlen + 1) + (int)unaff_s6;\n                  puVar22 = (undefined1 *)(**(code **)(puVar47 + 0x88390))(puVar38,1);\n                  puVar22[4] = 0;\n                  puVar22[5] = 0;\n                  uVar32 = *(uint *)(iVar28 + -0x36a0);\n                  uVar10 = *(undefined1 *)(iVar28 + -0x369c);\n                  uVar11 = *(undefined1 *)(iVar28 + -0x369b);\n                  uVar12 = *(undefined1 *)(iVar28 + -0x369a);\n                  puVar22[3] = (char)ppsVar19;\n                  *puVar22 = (char)((uint)ppsVar19 >> 0x18);\n                  puVar22[1] = (char)((uint)ppsVar19 >> 0x10);\n                  puVar22[2] = (char)((uint)ppsVar19 >> 8);\n                  puVar22[7] = 7;\n                  puVar22[6] = 0;\n                  puVar23 = puVar22 + 8;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & -1 << (4 - uVar36) * 8 | uVar32 >> uVar36 * 8;\n                  puVar23 = puVar22 + 0xb;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & 0xffffffffU >> (uVar36 + 1) * 8 |\n                       uVar32 << (3 - uVar36) * 8;\n                  puVar22[0xc] = uVar10;\n                  puVar22[0xd] = uVar11;\n                  puVar22[0xe] = uVar12;\n                  puVar22[0x10] = bVar13;\n                  puVar22[0x11] = (char)((uint)psVar45 >> 0x18);\n                  puVar22[0x12] = (char)((uint)psVar45 >> 0x10);\n                  puVar22[0x13] = (char)((uint)psVar45 >> 8);\n                  puVar22[0x14] = (char)psVar45;\n                  pcVar48 = *(code **)(puVar47 + 0x89610);\n                  puVar22[0xf] = uVar5 != '\0';\n                  (*pcVar48)(puVar22 + 0x15,*(undefined4 *)(psStack_b0->sent_verstring + 0xc),\n                             psVar45);\n                  puVar23 = puVar22 + (int)psVar45;\n                  puVar23[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar23[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar23[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar23[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar47 + 0x89610))\n                            (puVar22 + (int)((int)&psVar45->got_verstring + 1),\n                             *(undefined4 *)(psStack_b0->sent_verstring + 0x10),unaff_s6);\n                  puVar23 = puVar22 + (int)(unaff_s6->recvbuf + (int)(psVar45->recvbuf + -0x40));\n                  puVar23[0x1c] = uVar8;\n                  puVar23[0x19] = uVar7;\n                  puVar23[0x1a] = uVar6;\n                  puVar23[0x1b] = uVar9;\n                  (**(code **)(puVar47 + 0x88b70))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar22,puVar38,0);\n                  (**(code **)(puVar47 + 0x88394))(puVar22);\n                  cs_00->recvlen = 0;\n                  goto LAB_000893ac;\n                }" if (parenthesized_expression "(-1 < iVar29)" ( (binary_expression "-1 < iVar29" number_literal < identifier) )) (compound_statement "{\n                  pcVar48 = *(code **)(puVar47 + 0x88b94);\n                  uVar7 = *puVar38;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar38[1];\n                  uVar8 = puVar38[3];\n                  uVar9 = puVar38[2];\n                  psStack_b0->got_verstring = iVar29;\n                  iVar20 = (*pcVar48)(unaff_s6,psStack_b0->recvbuf);\n                  pcVar48 = *(code **)(puVar47 + 0x88394);\n                  psStack_b0->curr_packetlen = iVar20;\n                  (*pcVar48)(unaff_s6);\n                  iVar29 = (**(code **)(puVar47 + 0x88b98))\n                                     (cs_00->parent->ssh,iVar29,cs_00,psStack_b0);\n                  psStack_b0->sent_verstring = iVar29;\n                  *(uint *)(psStack_b0->recvbuf + 4) = (uint)bVar13;\n                  psVar45 = (ssh_sharing_connstate *)\n                            (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0xc));\n                  unaff_s6 = (ssh_sharing_connstate *)\n                             (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0x10));\n                  puVar38 = (uchar *)((int)&psVar45->curr_packetlen + 1) + (int)unaff_s6;\n                  puVar22 = (undefined1 *)(**(code **)(puVar47 + 0x88390))(puVar38,1);\n                  puVar22[4] = 0;\n                  puVar22[5] = 0;\n                  uVar32 = *(uint *)(iVar28 + -0x36a0);\n                  uVar10 = *(undefined1 *)(iVar28 + -0x369c);\n                  uVar11 = *(undefined1 *)(iVar28 + -0x369b);\n                  uVar12 = *(undefined1 *)(iVar28 + -0x369a);\n                  puVar22[3] = (char)ppsVar19;\n                  *puVar22 = (char)((uint)ppsVar19 >> 0x18);\n                  puVar22[1] = (char)((uint)ppsVar19 >> 0x10);\n                  puVar22[2] = (char)((uint)ppsVar19 >> 8);\n                  puVar22[7] = 7;\n                  puVar22[6] = 0;\n                  puVar23 = puVar22 + 8;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & -1 << (4 - uVar36) * 8 | uVar32 >> uVar36 * 8;\n                  puVar23 = puVar22 + 0xb;\n                  uVar36 = (uint)puVar23 & 3;\n                  *(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & 0xffffffffU >> (uVar36 + 1) * 8 |\n                       uVar32 << (3 - uVar36) * 8;\n                  puVar22[0xc] = uVar10;\n                  puVar22[0xd] = uVar11;\n                  puVar22[0xe] = uVar12;\n                  puVar22[0x10] = bVar13;\n                  puVar22[0x11] = (char)((uint)psVar45 >> 0x18);\n                  puVar22[0x12] = (char)((uint)psVar45 >> 0x10);\n                  puVar22[0x13] = (char)((uint)psVar45 >> 8);\n                  puVar22[0x14] = (char)psVar45;\n                  pcVar48 = *(code **)(puVar47 + 0x89610);\n                  puVar22[0xf] = uVar5 != '\0';\n                  (*pcVar48)(puVar22 + 0x15,*(undefined4 *)(psStack_b0->sent_verstring + 0xc),\n                             psVar45);\n                  puVar23 = puVar22 + (int)psVar45;\n                  puVar23[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar23[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar23[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar23[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar47 + 0x89610))\n                            (puVar22 + (int)((int)&psVar45->got_verstring + 1),\n                             *(undefined4 *)(psStack_b0->sent_verstring + 0x10),unaff_s6);\n                  puVar23 = puVar22 + (int)(unaff_s6->recvbuf + (int)(psVar45->recvbuf + -0x40));\n                  puVar23[0x1c] = uVar8;\n                  puVar23[0x19] = uVar7;\n                  puVar23[0x1a] = uVar6;\n                  puVar23[0x1b] = uVar9;\n                  (**(code **)(puVar47 + 0x88b70))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar22,puVar38,0);\n                  (**(code **)(puVar47 + 0x88394))(puVar22);\n                  cs_00->recvlen = 0;\n                  goto LAB_000893ac;\n                }" { (expression_statement "pcVar48 = *(code **)(puVar47 + 0x88b94);" (assignment_expression "pcVar48 = *(code **)(puVar47 + 0x88b94)" identifier = (pointer_expression "*(code **)(puVar47 + 0x88b94)" * (cast_expression "(code **)(puVar47 + 0x88b94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88b94)" ( (binary_expression "puVar47 + 0x88b94" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *puVar38;" (assignment_expression "uVar7 = *puVar38" identifier = (pointer_expression "*puVar38" * 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 = puVar38[1];" (assignment_expression "uVar6 = puVar38[1]" identifier = (subscript_expression "puVar38[1]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = puVar38[3];" (assignment_expression "uVar8 = puVar38[3]" identifier = (subscript_expression "puVar38[3]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = puVar38[2];" (assignment_expression "uVar9 = puVar38[2]" identifier = (subscript_expression "puVar38[2]" identifier [ number_literal ])) ;) (expression_statement "psStack_b0->got_verstring = iVar29;" (assignment_expression "psStack_b0->got_verstring = iVar29" (field_expression "psStack_b0->got_verstring" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar20 = (*pcVar48)(unaff_s6,psStack_b0->recvbuf);" (assignment_expression "iVar20 = (*pcVar48)(unaff_s6,psStack_b0->recvbuf)" identifier = (call_expression "(*pcVar48)(unaff_s6,psStack_b0->recvbuf)" (parenthesized_expression "(*pcVar48)" ( (pointer_expression "*pcVar48" * identifier) )) (argument_list "(unaff_s6,psStack_b0->recvbuf)" ( identifier , (field_expression "psStack_b0->recvbuf" identifier -> field_identifier) )))) ;) (expression_statement "pcVar48 = *(code **)(puVar47 + 0x88394);" (assignment_expression "pcVar48 = *(code **)(puVar47 + 0x88394)" identifier = (pointer_expression "*(code **)(puVar47 + 0x88394)" * (cast_expression "(code **)(puVar47 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88394)" ( (binary_expression "puVar47 + 0x88394" identifier + number_literal) ))))) ;) (expression_statement "psStack_b0->curr_packetlen = iVar20;" (assignment_expression "psStack_b0->curr_packetlen = iVar20" (field_expression "psStack_b0->curr_packetlen" identifier -> field_identifier) = identifier) ;) (expression_statement "(*pcVar48)(unaff_s6);" (call_expression "(*pcVar48)(unaff_s6)" (parenthesized_expression "(*pcVar48)" ( (pointer_expression "*pcVar48" * identifier) )) (argument_list "(unaff_s6)" ( identifier ))) ;) (expression_statement "iVar29 = (**(code **)(puVar47 + 0x88b98))\n                                     (cs_00->parent->ssh,iVar29,cs_00,psStack_b0);" (assignment_expression "iVar29 = (**(code **)(puVar47 + 0x88b98))\n                                     (cs_00->parent->ssh,iVar29,cs_00,psStack_b0)" identifier = (call_expression "(**(code **)(puVar47 + 0x88b98))\n                                     (cs_00->parent->ssh,iVar29,cs_00,psStack_b0)" (parenthesized_expression "(**(code **)(puVar47 + 0x88b98))" ( (pointer_expression "**(code **)(puVar47 + 0x88b98)" * (pointer_expression "*(code **)(puVar47 + 0x88b98)" * (cast_expression "(code **)(puVar47 + 0x88b98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88b98)" ( (binary_expression "puVar47 + 0x88b98" identifier + number_literal) ))))) )) (argument_list "(cs_00->parent->ssh,iVar29,cs_00,psStack_b0)" ( (field_expression "cs_00->parent->ssh" (field_expression "cs_00->parent" identifier -> field_identifier) -> field_identifier) , identifier , identifier , identifier )))) ;) (expression_statement "psStack_b0->sent_verstring = iVar29;" (assignment_expression "psStack_b0->sent_verstring = iVar29" (field_expression "psStack_b0->sent_verstring" identifier -> field_identifier) = identifier) ;) (expression_statement "*(uint *)(psStack_b0->recvbuf + 4) = (uint)bVar13;" (assignment_expression "*(uint *)(psStack_b0->recvbuf + 4) = (uint)bVar13" (pointer_expression "*(uint *)(psStack_b0->recvbuf + 4)" * (cast_expression "(uint *)(psStack_b0->recvbuf + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psStack_b0->recvbuf + 4)" ( (binary_expression "psStack_b0->recvbuf + 4" (field_expression "psStack_b0->recvbuf" identifier -> field_identifier) + number_literal) )))) = (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "psVar45 = (ssh_sharing_connstate *)\n                            (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0xc));" (assignment_expression "psVar45 = (ssh_sharing_connstate *)\n                            (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0xc))" identifier = (cast_expression "(ssh_sharing_connstate *)\n                            (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0xc))" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0xc))" (parenthesized_expression "(**(code **)(puVar47 + 0x895d8))" ( (pointer_expression "**(code **)(puVar47 + 0x895d8)" * (pointer_expression "*(code **)(puVar47 + 0x895d8)" * (cast_expression "(code **)(puVar47 + 0x895d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x895d8)" ( (binary_expression "puVar47 + 0x895d8" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar29 + 0xc))" ( (pointer_expression "*(undefined4 *)(iVar29 + 0xc)" * (cast_expression "(undefined4 *)(iVar29 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0xc)" ( (binary_expression "iVar29 + 0xc" identifier + number_literal) )))) ))))) ;) (expression_statement "unaff_s6 = (ssh_sharing_connstate *)\n                             (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0x10));" (assignment_expression "unaff_s6 = (ssh_sharing_connstate *)\n                             (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0x10))" identifier = (cast_expression "(ssh_sharing_connstate *)\n                             (**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0x10))" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar47 + 0x895d8))(*(undefined4 *)(iVar29 + 0x10))" (parenthesized_expression "(**(code **)(puVar47 + 0x895d8))" ( (pointer_expression "**(code **)(puVar47 + 0x895d8)" * (pointer_expression "*(code **)(puVar47 + 0x895d8)" * (cast_expression "(code **)(puVar47 + 0x895d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x895d8)" ( (binary_expression "puVar47 + 0x895d8" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar29 + 0x10))" ( (pointer_expression "*(undefined4 *)(iVar29 + 0x10)" * (cast_expression "(undefined4 *)(iVar29 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0x10)" ( (binary_expression "iVar29 + 0x10" identifier + number_literal) )))) ))))) ;) (expression_statement "puVar38 = (uchar *)((int)&psVar45->curr_packetlen + 1) + (int)unaff_s6;" (assignment_expression "puVar38 = (uchar *)((int)&psVar45->curr_packetlen + 1) + (int)unaff_s6" identifier = (binary_expression "(uchar *)((int)&psVar45->curr_packetlen + 1) + (int)unaff_s6" (cast_expression "(uchar *)((int)&psVar45->curr_packetlen + 1)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psVar45->curr_packetlen + 1)" ( (binary_expression "(int)&psVar45->curr_packetlen + 1" (cast_expression "(int)&psVar45->curr_packetlen" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar45->curr_packetlen" & (field_expression "psVar45->curr_packetlen" identifier -> field_identifier))) + number_literal) ))) + (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar22 = (undefined1 *)(**(code **)(puVar47 + 0x88390))(puVar38,1);" (assignment_expression "puVar22 = (undefined1 *)(**(code **)(puVar47 + 0x88390))(puVar38,1)" identifier = (cast_expression "(undefined1 *)(**(code **)(puVar47 + 0x88390))(puVar38,1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar47 + 0x88390))(puVar38,1)" (parenthesized_expression "(**(code **)(puVar47 + 0x88390))" ( (pointer_expression "**(code **)(puVar47 + 0x88390)" * (pointer_expression "*(code **)(puVar47 + 0x88390)" * (cast_expression "(code **)(puVar47 + 0x88390)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88390)" ( (binary_expression "puVar47 + 0x88390" identifier + number_literal) ))))) )) (argument_list "(puVar38,1)" ( identifier , number_literal ))))) ;) (expression_statement "puVar22[4] = 0;" (assignment_expression "puVar22[4] = 0" (subscript_expression "puVar22[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar22[5] = 0;" (assignment_expression "puVar22[5] = 0" (subscript_expression "puVar22[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar32 = *(uint *)(iVar28 + -0x36a0);" (assignment_expression "uVar32 = *(uint *)(iVar28 + -0x36a0)" identifier = (pointer_expression "*(uint *)(iVar28 + -0x36a0)" * (cast_expression "(uint *)(iVar28 + -0x36a0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + -0x36a0)" ( (binary_expression "iVar28 + -0x36a0" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(undefined1 *)(iVar28 + -0x369c);" (assignment_expression "uVar10 = *(undefined1 *)(iVar28 + -0x369c)" identifier = (pointer_expression "*(undefined1 *)(iVar28 + -0x369c)" * (cast_expression "(undefined1 *)(iVar28 + -0x369c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + -0x369c)" ( (binary_expression "iVar28 + -0x369c" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = *(undefined1 *)(iVar28 + -0x369b);" (assignment_expression "uVar11 = *(undefined1 *)(iVar28 + -0x369b)" identifier = (pointer_expression "*(undefined1 *)(iVar28 + -0x369b)" * (cast_expression "(undefined1 *)(iVar28 + -0x369b)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + -0x369b)" ( (binary_expression "iVar28 + -0x369b" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = *(undefined1 *)(iVar28 + -0x369a);" (assignment_expression "uVar12 = *(undefined1 *)(iVar28 + -0x369a)" identifier = (pointer_expression "*(undefined1 *)(iVar28 + -0x369a)" * (cast_expression "(undefined1 *)(iVar28 + -0x369a)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + -0x369a)" ( (binary_expression "iVar28 + -0x369a" identifier + number_literal) ))))) ;) (expression_statement "puVar22[3] = (char)ppsVar19;" (assignment_expression "puVar22[3] = (char)ppsVar19" (subscript_expression "puVar22[3]" identifier [ number_literal ]) = (cast_expression "(char)ppsVar19" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*puVar22 = (char)((uint)ppsVar19 >> 0x18);" (assignment_expression "*puVar22 = (char)((uint)ppsVar19 >> 0x18)" (pointer_expression "*puVar22" * identifier) = (cast_expression "(char)((uint)ppsVar19 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)ppsVar19 >> 0x18)" ( (binary_expression "(uint)ppsVar19 >> 0x18" (cast_expression "(uint)ppsVar19" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar22[1] = (char)((uint)ppsVar19 >> 0x10);" (assignment_expression "puVar22[1] = (char)((uint)ppsVar19 >> 0x10)" (subscript_expression "puVar22[1]" identifier [ number_literal ]) = (cast_expression "(char)((uint)ppsVar19 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)ppsVar19 >> 0x10)" ( (binary_expression "(uint)ppsVar19 >> 0x10" (cast_expression "(uint)ppsVar19" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar22[2] = (char)((uint)ppsVar19 >> 8);" (assignment_expression "puVar22[2] = (char)((uint)ppsVar19 >> 8)" (subscript_expression "puVar22[2]" identifier [ number_literal ]) = (cast_expression "(char)((uint)ppsVar19 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)ppsVar19 >> 8)" ( (binary_expression "(uint)ppsVar19 >> 8" (cast_expression "(uint)ppsVar19" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar22[7] = 7;" (assignment_expression "puVar22[7] = 7" (subscript_expression "puVar22[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar22[6] = 0;" (assignment_expression "puVar22[6] = 0" (subscript_expression "puVar22[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar23 = puVar22 + 8;" (assignment_expression "puVar23 = puVar22 + 8" identifier = (binary_expression "puVar22 + 8" identifier + number_literal)) ;) (expression_statement "uVar36 = (uint)puVar23 & 3;" (assignment_expression "uVar36 = (uint)puVar23 & 3" identifier = (binary_expression "(uint)puVar23 & 3" (cast_expression "(uint)puVar23" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "*(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & -1 << (4 - uVar36) * 8 | uVar32 >> uVar36 * 8;" (assignment_expression "*(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & -1 << (4 - uVar36) * 8 | uVar32 >> uVar36 * 8" (pointer_expression "*(uint *)(puVar23 + -uVar36)" * (cast_expression "(uint *)(puVar23 + -uVar36)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + -uVar36)" ( (binary_expression "puVar23 + -uVar36" identifier + (unary_expression "-uVar36" - identifier)) )))) = (binary_expression "*(uint *)(puVar23 + -uVar36) & -1 << (4 - uVar36) * 8 | uVar32 >> uVar36 * 8" (binary_expression "*(uint *)(puVar23 + -uVar36) & -1 << (4 - uVar36) * 8" (pointer_expression "*(uint *)(puVar23 + -uVar36)" * (cast_expression "(uint *)(puVar23 + -uVar36)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + -uVar36)" ( (binary_expression "puVar23 + -uVar36" identifier + (unary_expression "-uVar36" - identifier)) )))) & (binary_expression "-1 << (4 - uVar36) * 8" number_literal << (binary_expression "(4 - uVar36) * 8" (parenthesized_expression "(4 - uVar36)" ( (binary_expression "4 - uVar36" number_literal - identifier) )) * number_literal))) | (binary_expression "uVar32 >> uVar36 * 8" identifier >> (binary_expression "uVar36 * 8" identifier * number_literal)))) ;) (expression_statement "puVar23 = puVar22 + 0xb;" (assignment_expression "puVar23 = puVar22 + 0xb" identifier = (binary_expression "puVar22 + 0xb" identifier + number_literal)) ;) (expression_statement "uVar36 = (uint)puVar23 & 3;" (assignment_expression "uVar36 = (uint)puVar23 & 3" identifier = (binary_expression "(uint)puVar23 & 3" (cast_expression "(uint)puVar23" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "*(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & 0xffffffffU >> (uVar36 + 1) * 8 |\n                       uVar32 << (3 - uVar36) * 8;" (assignment_expression "*(uint *)(puVar23 + -uVar36) =\n                       *(uint *)(puVar23 + -uVar36) & 0xffffffffU >> (uVar36 + 1) * 8 |\n                       uVar32 << (3 - uVar36) * 8" (pointer_expression "*(uint *)(puVar23 + -uVar36)" * (cast_expression "(uint *)(puVar23 + -uVar36)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + -uVar36)" ( (binary_expression "puVar23 + -uVar36" identifier + (unary_expression "-uVar36" - identifier)) )))) = (binary_expression "*(uint *)(puVar23 + -uVar36) & 0xffffffffU >> (uVar36 + 1) * 8 |\n                       uVar32 << (3 - uVar36) * 8" (binary_expression "*(uint *)(puVar23 + -uVar36) & 0xffffffffU >> (uVar36 + 1) * 8" (pointer_expression "*(uint *)(puVar23 + -uVar36)" * (cast_expression "(uint *)(puVar23 + -uVar36)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + -uVar36)" ( (binary_expression "puVar23 + -uVar36" identifier + (unary_expression "-uVar36" - identifier)) )))) & (binary_expression "0xffffffffU >> (uVar36 + 1) * 8" number_literal >> (binary_expression "(uVar36 + 1) * 8" (parenthesized_expression "(uVar36 + 1)" ( (binary_expression "uVar36 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "uVar32 << (3 - uVar36) * 8" identifier << (binary_expression "(3 - uVar36) * 8" (parenthesized_expression "(3 - uVar36)" ( (binary_expression "3 - uVar36" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "puVar22[0xc] = uVar10;" (assignment_expression "puVar22[0xc] = uVar10" (subscript_expression "puVar22[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[0xd] = uVar11;" (assignment_expression "puVar22[0xd] = uVar11" (subscript_expression "puVar22[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[0xe] = uVar12;" (assignment_expression "puVar22[0xe] = uVar12" (subscript_expression "puVar22[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[0x10] = bVar13;" (assignment_expression "puVar22[0x10] = bVar13" (subscript_expression "puVar22[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[0x11] = (char)((uint)psVar45 >> 0x18);" (assignment_expression "puVar22[0x11] = (char)((uint)psVar45 >> 0x18)" (subscript_expression "puVar22[0x11]" identifier [ number_literal ]) = (cast_expression "(char)((uint)psVar45 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)psVar45 >> 0x18)" ( (binary_expression "(uint)psVar45 >> 0x18" (cast_expression "(uint)psVar45" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar22[0x12] = (char)((uint)psVar45 >> 0x10);" (assignment_expression "puVar22[0x12] = (char)((uint)psVar45 >> 0x10)" (subscript_expression "puVar22[0x12]" identifier [ number_literal ]) = (cast_expression "(char)((uint)psVar45 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)psVar45 >> 0x10)" ( (binary_expression "(uint)psVar45 >> 0x10" (cast_expression "(uint)psVar45" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar22[0x13] = (char)((uint)psVar45 >> 8);" (assignment_expression "puVar22[0x13] = (char)((uint)psVar45 >> 8)" (subscript_expression "puVar22[0x13]" identifier [ number_literal ]) = (cast_expression "(char)((uint)psVar45 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)psVar45 >> 8)" ( (binary_expression "(uint)psVar45 >> 8" (cast_expression "(uint)psVar45" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar22[0x14] = (char)psVar45;" (assignment_expression "puVar22[0x14] = (char)psVar45" (subscript_expression "puVar22[0x14]" identifier [ number_literal ]) = (cast_expression "(char)psVar45" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pcVar48 = *(code **)(puVar47 + 0x89610);" (assignment_expression "pcVar48 = *(code **)(puVar47 + 0x89610)" identifier = (pointer_expression "*(code **)(puVar47 + 0x89610)" * (cast_expression "(code **)(puVar47 + 0x89610)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x89610)" ( (binary_expression "puVar47 + 0x89610" identifier + number_literal) ))))) ;) (expression_statement "puVar22[0xf] = uVar5 != '\0';" (assignment_expression "puVar22[0xf] = uVar5 != '\0'" (subscript_expression "puVar22[0xf]" identifier [ number_literal ]) = (binary_expression "uVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ;) (expression_statement "(*pcVar48)(puVar22 + 0x15,*(undefined4 *)(psStack_b0->sent_verstring + 0xc),\n                             psVar45);" (call_expression "(*pcVar48)(puVar22 + 0x15,*(undefined4 *)(psStack_b0->sent_verstring + 0xc),\n                             psVar45)" (parenthesized_expression "(*pcVar48)" ( (pointer_expression "*pcVar48" * identifier) )) (argument_list "(puVar22 + 0x15,*(undefined4 *)(psStack_b0->sent_verstring + 0xc),\n                             psVar45)" ( (binary_expression "puVar22 + 0x15" identifier + number_literal) , (pointer_expression "*(undefined4 *)(psStack_b0->sent_verstring + 0xc)" * (cast_expression "(undefined4 *)(psStack_b0->sent_verstring + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psStack_b0->sent_verstring + 0xc)" ( (binary_expression "psStack_b0->sent_verstring + 0xc" (field_expression "psStack_b0->sent_verstring" identifier -> field_identifier) + number_literal) )))) , identifier ))) ;) (expression_statement "puVar23 = puVar22 + (int)psVar45;" (assignment_expression "puVar23 = puVar22 + (int)psVar45" identifier = (binary_expression "puVar22 + (int)psVar45" identifier + (cast_expression "(int)psVar45" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar23[0x15] = (char)((uint)unaff_s6 >> 0x18);" (assignment_expression "puVar23[0x15] = (char)((uint)unaff_s6 >> 0x18)" (subscript_expression "puVar23[0x15]" identifier [ number_literal ]) = (cast_expression "(char)((uint)unaff_s6 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)unaff_s6 >> 0x18)" ( (binary_expression "(uint)unaff_s6 >> 0x18" (cast_expression "(uint)unaff_s6" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar23[0x16] = (char)((uint)unaff_s6 >> 0x10);" (assignment_expression "puVar23[0x16] = (char)((uint)unaff_s6 >> 0x10)" (subscript_expression "puVar23[0x16]" identifier [ number_literal ]) = (cast_expression "(char)((uint)unaff_s6 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)unaff_s6 >> 0x10)" ( (binary_expression "(uint)unaff_s6 >> 0x10" (cast_expression "(uint)unaff_s6" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar23[0x17] = (char)((uint)unaff_s6 >> 8);" (assignment_expression "puVar23[0x17] = (char)((uint)unaff_s6 >> 8)" (subscript_expression "puVar23[0x17]" identifier [ number_literal ]) = (cast_expression "(char)((uint)unaff_s6 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)unaff_s6 >> 8)" ( (binary_expression "(uint)unaff_s6 >> 8" (cast_expression "(uint)unaff_s6" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar23[0x18] = (char)unaff_s6;" (assignment_expression "puVar23[0x18] = (char)unaff_s6" (subscript_expression "puVar23[0x18]" identifier [ number_literal ]) = (cast_expression "(char)unaff_s6" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "(**(code **)(puVar47 + 0x89610))\n                            (puVar22 + (int)((int)&psVar45->got_verstring + 1),\n                             *(undefined4 *)(psStack_b0->sent_verstring + 0x10),unaff_s6);" (call_expression "(**(code **)(puVar47 + 0x89610))\n                            (puVar22 + (int)((int)&psVar45->got_verstring + 1),\n                             *(undefined4 *)(psStack_b0->sent_verstring + 0x10),unaff_s6)" (parenthesized_expression "(**(code **)(puVar47 + 0x89610))" ( (pointer_expression "**(code **)(puVar47 + 0x89610)" * (pointer_expression "*(code **)(puVar47 + 0x89610)" * (cast_expression "(code **)(puVar47 + 0x89610)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x89610)" ( (binary_expression "puVar47 + 0x89610" identifier + number_literal) ))))) )) (argument_list "(puVar22 + (int)((int)&psVar45->got_verstring + 1),\n                             *(undefined4 *)(psStack_b0->sent_verstring + 0x10),unaff_s6)" ( (binary_expression "puVar22 + (int)((int)&psVar45->got_verstring + 1)" identifier + (cast_expression "(int)((int)&psVar45->got_verstring + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&psVar45->got_verstring + 1)" ( (binary_expression "(int)&psVar45->got_verstring + 1" (cast_expression "(int)&psVar45->got_verstring" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar45->got_verstring" & (field_expression "psVar45->got_verstring" identifier -> field_identifier))) + number_literal) )))) , (pointer_expression "*(undefined4 *)(psStack_b0->sent_verstring + 0x10)" * (cast_expression "(undefined4 *)(psStack_b0->sent_verstring + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psStack_b0->sent_verstring + 0x10)" ( (binary_expression "psStack_b0->sent_verstring + 0x10" (field_expression "psStack_b0->sent_verstring" identifier -> field_identifier) + number_literal) )))) , identifier ))) ;) (expression_statement "puVar23 = puVar22 + (int)(unaff_s6->recvbuf + (int)(psVar45->recvbuf + -0x40));" (assignment_expression "puVar23 = puVar22 + (int)(unaff_s6->recvbuf + (int)(psVar45->recvbuf + -0x40))" identifier = (binary_expression "puVar22 + (int)(unaff_s6->recvbuf + (int)(psVar45->recvbuf + -0x40))" identifier + (cast_expression "(int)(unaff_s6->recvbuf + (int)(psVar45->recvbuf + -0x40))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(unaff_s6->recvbuf + (int)(psVar45->recvbuf + -0x40))" ( (binary_expression "unaff_s6->recvbuf + (int)(psVar45->recvbuf + -0x40)" (field_expression "unaff_s6->recvbuf" identifier -> field_identifier) + (cast_expression "(int)(psVar45->recvbuf + -0x40)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(psVar45->recvbuf + -0x40)" ( (binary_expression "psVar45->recvbuf + -0x40" (field_expression "psVar45->recvbuf" identifier -> field_identifier) + number_literal) )))) ))))) ;) (expression_statement "puVar23[0x1c] = uVar8;" (assignment_expression "puVar23[0x1c] = uVar8" (subscript_expression "puVar23[0x1c]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar23[0x19] = uVar7;" (assignment_expression "puVar23[0x19] = uVar7" (subscript_expression "puVar23[0x19]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar23[0x1a] = uVar6;" (assignment_expression "puVar23[0x1a] = uVar6" (subscript_expression "puVar23[0x1a]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar23[0x1b] = uVar9;" (assignment_expression "puVar23[0x1b] = uVar9" (subscript_expression "puVar23[0x1b]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(**(code **)(puVar47 + 0x88b70))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar22,puVar38,0);" (call_expression "(**(code **)(puVar47 + 0x88b70))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar22,puVar38,0)" (parenthesized_expression "(**(code **)(puVar47 + 0x88b70))" ( (pointer_expression "**(code **)(puVar47 + 0x88b70)" * (pointer_expression "*(code **)(puVar47 + 0x88b70)" * (cast_expression "(code **)(puVar47 + 0x88b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88b70)" ( (binary_expression "puVar47 + 0x88b70" identifier + number_literal) ))))) )) (argument_list "(cs_00->parent->ssh,cs_00->id,0x62,puVar22,puVar38,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 **)(puVar47 + 0x88394))(puVar22);" (call_expression "(**(code **)(puVar47 + 0x88394))(puVar22)" (parenthesized_expression "(**(code **)(puVar47 + 0x88394))" ( (pointer_expression "**(code **)(puVar47 + 0x88394)" * (pointer_expression "*(code **)(puVar47 + 0x88394)" * (cast_expression "(code **)(puVar47 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88394)" ( (binary_expression "puVar47 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(puVar22)" ( 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_000893ac;" goto statement_identifier ;) })) (goto_statement "goto LAB_00089df8;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00089cc8:\n            (**(code **)(puVar47 + 0x88b70))(cs_00->parent->ssh,cs_00->id,bVar31,puVar38,puVar23,0);" statement_identifier : (expression_statement "(**(code **)(puVar47 + 0x88b70))(cs_00->parent->ssh,cs_00->id,bVar31,puVar38,puVar23,0);" (call_expression "(**(code **)(puVar47 + 0x88b70))(cs_00->parent->ssh,cs_00->id,bVar31,puVar38,puVar23,0)" (parenthesized_expression "(**(code **)(puVar47 + 0x88b70))" ( (pointer_expression "**(code **)(puVar47 + 0x88b70)" * (pointer_expression "*(code **)(puVar47 + 0x88b70)" * (cast_expression "(code **)(puVar47 + 0x88b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88b70)" ( (binary_expression "puVar47 + 0x88b70" identifier + number_literal) ))))) )) (argument_list "(cs_00->parent->ssh,cs_00->id,bVar31,puVar38,puVar23,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 ((bVar31 == 0x61) && (3 < (int)puVar23)) {\n              ppsStack_88 = *(Socket *)(cs_00->recvbuf + 5);\n              psVar24 = (share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n              if (psVar24 != (share_channel *)0x0) {\n                if (psVar24->state == 2) {\n                  (**(code **)(puVar47 + 0x88b74))(cs_00->parent->ssh,psVar24->upstream_id);\n                  share_remove_channel(cs_00,psVar24);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar24->state = 1;\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }" if (parenthesized_expression "((bVar31 == 0x61) && (3 < (int)puVar23))" ( (binary_expression "(bVar31 == 0x61) && (3 < (int)puVar23)" (parenthesized_expression "(bVar31 == 0x61)" ( (binary_expression "bVar31 == 0x61" identifier == number_literal) )) && (parenthesized_expression "(3 < (int)puVar23)" ( (binary_expression "3 < (int)puVar23" number_literal < (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n              ppsStack_88 = *(Socket *)(cs_00->recvbuf + 5);\n              psVar24 = (share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);\n              if (psVar24 != (share_channel *)0x0) {\n                if (psVar24->state == 2) {\n                  (**(code **)(puVar47 + 0x88b74))(cs_00->parent->ssh,psVar24->upstream_id);\n                  share_remove_channel(cs_00,psVar24);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar24->state = 1;\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }" { (expression_statement "ppsStack_88 = *(Socket *)(cs_00->recvbuf + 5);" (assignment_expression "ppsStack_88 = *(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 "psVar24 = (share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0);" (assignment_expression "psVar24 = (share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0)" identifier = (cast_expression "(share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0)" ( (type_descriptor "share_channel *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "find234(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0)" identifier (argument_list "(cs_00->channels_by_server,&psStack_90,(cmpfn234)0x0)" ( (field_expression "cs_00->channels_by_server" identifier -> field_identifier) , (pointer_expression "&psStack_90" & identifier) , (cast_expression "(cmpfn234)0x0" ( (type_descriptor "cmpfn234" type_identifier) ) number_literal) ))))) ;) (if_statement "if (psVar24 != (share_channel *)0x0) {\n                if (psVar24->state == 2) {\n                  (**(code **)(puVar47 + 0x88b74))(cs_00->parent->ssh,psVar24->upstream_id);\n                  share_remove_channel(cs_00,psVar24);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar24->state = 1;\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }" if (parenthesized_expression "(psVar24 != (share_channel *)0x0)" ( (binary_expression "psVar24 != (share_channel *)0x0" identifier != (cast_expression "(share_channel *)0x0" ( (type_descriptor "share_channel *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                if (psVar24->state == 2) {\n                  (**(code **)(puVar47 + 0x88b74))(cs_00->parent->ssh,psVar24->upstream_id);\n                  share_remove_channel(cs_00,psVar24);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar24->state = 1;\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }" { (if_statement "if (psVar24->state == 2) {\n                  (**(code **)(puVar47 + 0x88b74))(cs_00->parent->ssh,psVar24->upstream_id);\n                  share_remove_channel(cs_00,psVar24);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar24->state = 1;\n                  cs_00->recvlen = 0;\n                }" if (parenthesized_expression "(psVar24->state == 2)" ( (binary_expression "psVar24->state == 2" (field_expression "psVar24->state" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n                  (**(code **)(puVar47 + 0x88b74))(cs_00->parent->ssh,psVar24->upstream_id);\n                  share_remove_channel(cs_00,psVar24);\n                  cs_00->recvlen = 0;\n                }" { (expression_statement "(**(code **)(puVar47 + 0x88b74))(cs_00->parent->ssh,psVar24->upstream_id);" (call_expression "(**(code **)(puVar47 + 0x88b74))(cs_00->parent->ssh,psVar24->upstream_id)" (parenthesized_expression "(**(code **)(puVar47 + 0x88b74))" ( (pointer_expression "**(code **)(puVar47 + 0x88b74)" * (pointer_expression "*(code **)(puVar47 + 0x88b74)" * (cast_expression "(code **)(puVar47 + 0x88b74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88b74)" ( (binary_expression "puVar47 + 0x88b74" identifier + number_literal) ))))) )) (argument_list "(cs_00->parent->ssh,psVar24->upstream_id)" ( (field_expression "cs_00->parent->ssh" (field_expression "cs_00->parent" identifier -> field_identifier) -> field_identifier) , (field_expression "psVar24->upstream_id" identifier -> field_identifier) ))) ;) (expression_statement "share_remove_channel(cs_00,psVar24);" (call_expression "share_remove_channel(cs_00,psVar24)" identifier (argument_list "(cs_00,psVar24)" ( 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                  psVar24->state = 1;\n                  cs_00->recvlen = 0;\n                }" else (compound_statement "{\n                  psVar24->state = 1;\n                  cs_00->recvlen = 0;\n                }" { (expression_statement "psVar24->state = 1;" (assignment_expression "psVar24->state = 1" (field_expression "psVar24->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_000893ac;" goto statement_identifier ;) })) })) }) (else_clause "else {\n            if (bVar31 == 0x5c) {\n              if (3 < (int)puVar23) {\n                psVar45 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                unaff_s6 = (ssh_sharing_connstate *)&psStack_90;\n                psStack_90 = psVar45;\n                e = find234(cs_00->halfchannels,unaff_s6,(cmpfn234)0x0);\n                if (e == (void *)0x0) {\n                  psStack_8c = psVar45;\n                  xc_00 = (share_xchannel *)\n                          find234(cs_00->xchannels_by_server,unaff_s6,(cmpfn234)0x0);\n                  if (xc_00 == (share_xchannel *)0x0) {\n                    pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                                (*(int *)(puVar47 + 0x8839c) + 0x4680,psVar45);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(cs_00,xc_00);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar18 = cs_00->parent;\n                  uVar35 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar47 + 0x88b70))(psVar18->ssh,cs_00->id,uVar35,puVar38,puVar23,0);\n                  del234(cs_00->halfchannels,e);\n                  (**(code **)(puVar47 + 0x88394))(e);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }\n              pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar31) {\n              if (100 < bVar31) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)puVar23 < 0x10) {\n              pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar36 = (uint)(cs_00->recvbuf + 5) & 3;\n            upstream_id = *(uint *)(cs_00->recvbuf + 9);\n            uVar32 = (uint)(cs_00->recvbuf + 8) & 3;\n            psVar45 = (ssh_sharing_connstate *)\n                      ((*(int *)(cs_00->recvbuf + 5 + -uVar36) << uVar36 * 8 |\n                       (uint)psVar45 & 0xffffffffU >> (4 - uVar36) * 8) & -1 << (uVar32 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar32) >> (3 - uVar32) * 8);\n            psStack_90 = psVar45;\n            e = find234(cs_00->halfchannels,&psStack_90,(cmpfn234)0x0);\n            if (e == (void *)0x0) {\n              psStack_8c = psVar45;\n              unaff_s6 = (ssh_sharing_connstate *)\n                         find234(cs_00->xchannels_by_server,&psStack_90,(cmpfn234)0x0);\n              if (unaff_s6 == (ssh_sharing_connstate *)0x0) goto LAB_0008a14c;\n              server_id = unaff_s6->fn;\n            }\n            else {\n              unaff_s6 = (ssh_sharing_connstate *)0x0;\n              server_id = (plug_function_table *)\n                          (**(code **)(puVar47 + 0x88b8c))(cs_00->parent->ssh,cs_00);\n            }\n            cs_00->recvbuf[0xc] = (uchar)server_id;\n            cs_00->recvbuf[9] = (uchar)((uint)server_id >> 0x18);\n            cs_00->recvbuf[10] = (uchar)((uint)server_id >> 0x10);\n            cs_00->recvbuf[0xb] = (uchar)((uint)server_id >> 8);\n            uVar36 = (uint)(cs_00->recvbuf + 0x11) & 3;\n            uVar32 = (uint)(cs_00->recvbuf + 0x14) & 3;\n            psVar24 = share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)server_id\n                                        ,(int)psVar45,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar36) << uVar36 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar36) * 8) &\n                                         -1 << (uVar32 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar32) >>\n                                        (3 - uVar32) * 8));\n            if (e != (void *)0x0) {\n              psVar18 = cs_00->parent;\n              uVar35 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (ssh_sharing_connstate *)0x0) {\n              uVar36 = *(uint *)(cs_00->recvbuf + 0xd);\n              if (uVar36 < 0x100) {\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x4614,uVar36);\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(cs_00,(share_xchannel *)unaff_s6,psVar24,uVar36);\n              share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,unaff_s6);\n              cs_00->recvlen = 0;\n              goto LAB_000893ac;\n            }\n          }" else (compound_statement "{\n            if (bVar31 == 0x5c) {\n              if (3 < (int)puVar23) {\n                psVar45 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                unaff_s6 = (ssh_sharing_connstate *)&psStack_90;\n                psStack_90 = psVar45;\n                e = find234(cs_00->halfchannels,unaff_s6,(cmpfn234)0x0);\n                if (e == (void *)0x0) {\n                  psStack_8c = psVar45;\n                  xc_00 = (share_xchannel *)\n                          find234(cs_00->xchannels_by_server,unaff_s6,(cmpfn234)0x0);\n                  if (xc_00 == (share_xchannel *)0x0) {\n                    pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                                (*(int *)(puVar47 + 0x8839c) + 0x4680,psVar45);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(cs_00,xc_00);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar18 = cs_00->parent;\n                  uVar35 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar47 + 0x88b70))(psVar18->ssh,cs_00->id,uVar35,puVar38,puVar23,0);\n                  del234(cs_00->halfchannels,e);\n                  (**(code **)(puVar47 + 0x88394))(e);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }\n              pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar31) {\n              if (100 < bVar31) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)puVar23 < 0x10) {\n              pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar36 = (uint)(cs_00->recvbuf + 5) & 3;\n            upstream_id = *(uint *)(cs_00->recvbuf + 9);\n            uVar32 = (uint)(cs_00->recvbuf + 8) & 3;\n            psVar45 = (ssh_sharing_connstate *)\n                      ((*(int *)(cs_00->recvbuf + 5 + -uVar36) << uVar36 * 8 |\n                       (uint)psVar45 & 0xffffffffU >> (4 - uVar36) * 8) & -1 << (uVar32 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar32) >> (3 - uVar32) * 8);\n            psStack_90 = psVar45;\n            e = find234(cs_00->halfchannels,&psStack_90,(cmpfn234)0x0);\n            if (e == (void *)0x0) {\n              psStack_8c = psVar45;\n              unaff_s6 = (ssh_sharing_connstate *)\n                         find234(cs_00->xchannels_by_server,&psStack_90,(cmpfn234)0x0);\n              if (unaff_s6 == (ssh_sharing_connstate *)0x0) goto LAB_0008a14c;\n              server_id = unaff_s6->fn;\n            }\n            else {\n              unaff_s6 = (ssh_sharing_connstate *)0x0;\n              server_id = (plug_function_table *)\n                          (**(code **)(puVar47 + 0x88b8c))(cs_00->parent->ssh,cs_00);\n            }\n            cs_00->recvbuf[0xc] = (uchar)server_id;\n            cs_00->recvbuf[9] = (uchar)((uint)server_id >> 0x18);\n            cs_00->recvbuf[10] = (uchar)((uint)server_id >> 0x10);\n            cs_00->recvbuf[0xb] = (uchar)((uint)server_id >> 8);\n            uVar36 = (uint)(cs_00->recvbuf + 0x11) & 3;\n            uVar32 = (uint)(cs_00->recvbuf + 0x14) & 3;\n            psVar24 = share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)server_id\n                                        ,(int)psVar45,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar36) << uVar36 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar36) * 8) &\n                                         -1 << (uVar32 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar32) >>\n                                        (3 - uVar32) * 8));\n            if (e != (void *)0x0) {\n              psVar18 = cs_00->parent;\n              uVar35 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (ssh_sharing_connstate *)0x0) {\n              uVar36 = *(uint *)(cs_00->recvbuf + 0xd);\n              if (uVar36 < 0x100) {\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x4614,uVar36);\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(cs_00,(share_xchannel *)unaff_s6,psVar24,uVar36);\n              share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,unaff_s6);\n              cs_00->recvlen = 0;\n              goto LAB_000893ac;\n            }\n          }" { (if_statement "if (bVar31 == 0x5c) {\n              if (3 < (int)puVar23) {\n                psVar45 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                unaff_s6 = (ssh_sharing_connstate *)&psStack_90;\n                psStack_90 = psVar45;\n                e = find234(cs_00->halfchannels,unaff_s6,(cmpfn234)0x0);\n                if (e == (void *)0x0) {\n                  psStack_8c = psVar45;\n                  xc_00 = (share_xchannel *)\n                          find234(cs_00->xchannels_by_server,unaff_s6,(cmpfn234)0x0);\n                  if (xc_00 == (share_xchannel *)0x0) {\n                    pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                                (*(int *)(puVar47 + 0x8839c) + 0x4680,psVar45);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(cs_00,xc_00);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar18 = cs_00->parent;\n                  uVar35 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar47 + 0x88b70))(psVar18->ssh,cs_00->id,uVar35,puVar38,puVar23,0);\n                  del234(cs_00->halfchannels,e);\n                  (**(code **)(puVar47 + 0x88394))(e);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }\n              pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }" if (parenthesized_expression "(bVar31 == 0x5c)" ( (binary_expression "bVar31 == 0x5c" identifier == number_literal) )) (compound_statement "{\n              if (3 < (int)puVar23) {\n                psVar45 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                unaff_s6 = (ssh_sharing_connstate *)&psStack_90;\n                psStack_90 = psVar45;\n                e = find234(cs_00->halfchannels,unaff_s6,(cmpfn234)0x0);\n                if (e == (void *)0x0) {\n                  psStack_8c = psVar45;\n                  xc_00 = (share_xchannel *)\n                          find234(cs_00->xchannels_by_server,unaff_s6,(cmpfn234)0x0);\n                  if (xc_00 == (share_xchannel *)0x0) {\n                    pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                                (*(int *)(puVar47 + 0x8839c) + 0x4680,psVar45);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(cs_00,xc_00);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar18 = cs_00->parent;\n                  uVar35 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar47 + 0x88b70))(psVar18->ssh,cs_00->id,uVar35,puVar38,puVar23,0);\n                  del234(cs_00->halfchannels,e);\n                  (**(code **)(puVar47 + 0x88394))(e);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }\n              pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }" { (if_statement "if (3 < (int)puVar23) {\n                psVar45 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                unaff_s6 = (ssh_sharing_connstate *)&psStack_90;\n                psStack_90 = psVar45;\n                e = find234(cs_00->halfchannels,unaff_s6,(cmpfn234)0x0);\n                if (e == (void *)0x0) {\n                  psStack_8c = psVar45;\n                  xc_00 = (share_xchannel *)\n                          find234(cs_00->xchannels_by_server,unaff_s6,(cmpfn234)0x0);\n                  if (xc_00 == (share_xchannel *)0x0) {\n                    pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                                (*(int *)(puVar47 + 0x8839c) + 0x4680,psVar45);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(cs_00,xc_00);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar18 = cs_00->parent;\n                  uVar35 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar47 + 0x88b70))(psVar18->ssh,cs_00->id,uVar35,puVar38,puVar23,0);\n                  del234(cs_00->halfchannels,e);\n                  (**(code **)(puVar47 + 0x88394))(e);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }" if (parenthesized_expression "(3 < (int)puVar23)" ( (binary_expression "3 < (int)puVar23" number_literal < (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                psVar45 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                unaff_s6 = (ssh_sharing_connstate *)&psStack_90;\n                psStack_90 = psVar45;\n                e = find234(cs_00->halfchannels,unaff_s6,(cmpfn234)0x0);\n                if (e == (void *)0x0) {\n                  psStack_8c = psVar45;\n                  xc_00 = (share_xchannel *)\n                          find234(cs_00->xchannels_by_server,unaff_s6,(cmpfn234)0x0);\n                  if (xc_00 == (share_xchannel *)0x0) {\n                    pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                                (*(int *)(puVar47 + 0x8839c) + 0x4680,psVar45);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(cs_00,xc_00);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar18 = cs_00->parent;\n                  uVar35 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar47 + 0x88b70))(psVar18->ssh,cs_00->id,uVar35,puVar38,puVar23,0);\n                  del234(cs_00->halfchannels,e);\n                  (**(code **)(puVar47 + 0x88394))(e);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000893ac;\n              }" { (expression_statement "psVar45 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);" (assignment_expression "psVar45 = *(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 "unaff_s6 = (ssh_sharing_connstate *)&psStack_90;" (assignment_expression "unaff_s6 = (ssh_sharing_connstate *)&psStack_90" identifier = (cast_expression "(ssh_sharing_connstate *)&psStack_90" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psStack_90" & identifier))) ;) (expression_statement "psStack_90 = psVar45;" (assignment_expression "psStack_90 = psVar45" identifier = identifier) ;) (expression_statement "e = find234(cs_00->halfchannels,unaff_s6,(cmpfn234)0x0);" (assignment_expression "e = find234(cs_00->halfchannels,unaff_s6,(cmpfn234)0x0)" identifier = (call_expression "find234(cs_00->halfchannels,unaff_s6,(cmpfn234)0x0)" identifier (argument_list "(cs_00->halfchannels,unaff_s6,(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 (e == (void *)0x0) {\n                  psStack_8c = psVar45;\n                  xc_00 = (share_xchannel *)\n                          find234(cs_00->xchannels_by_server,unaff_s6,(cmpfn234)0x0);\n                  if (xc_00 == (share_xchannel *)0x0) {\n                    pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                                (*(int *)(puVar47 + 0x8839c) + 0x4680,psVar45);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(cs_00,xc_00);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar18 = cs_00->parent;\n                  uVar35 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar47 + 0x88b70))(psVar18->ssh,cs_00->id,uVar35,puVar38,puVar23,0);\n                  del234(cs_00->halfchannels,e);\n                  (**(code **)(puVar47 + 0x88394))(e);\n                  cs_00->recvlen = 0;\n                }" if (parenthesized_expression "(e == (void *)0x0)" ( (binary_expression "e == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  psStack_8c = psVar45;\n                  xc_00 = (share_xchannel *)\n                          find234(cs_00->xchannels_by_server,unaff_s6,(cmpfn234)0x0);\n                  if (xc_00 == (share_xchannel *)0x0) {\n                    pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                                (*(int *)(puVar47 + 0x8839c) + 0x4680,psVar45);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(cs_00,xc_00);\n                  cs_00->recvlen = 0;\n                }" { (expression_statement "psStack_8c = psVar45;" (assignment_expression "psStack_8c = psVar45" identifier = identifier) ;) (expression_statement "xc_00 = (share_xchannel *)\n                          find234(cs_00->xchannels_by_server,unaff_s6,(cmpfn234)0x0);" (assignment_expression "xc_00 = (share_xchannel *)\n                          find234(cs_00->xchannels_by_server,unaff_s6,(cmpfn234)0x0)" identifier = (cast_expression "(share_xchannel *)\n                          find234(cs_00->xchannels_by_server,unaff_s6,(cmpfn234)0x0)" ( (type_descriptor "share_xchannel *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "find234(cs_00->xchannels_by_server,unaff_s6,(cmpfn234)0x0)" identifier (argument_list "(cs_00->xchannels_by_server,unaff_s6,(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 (xc_00 == (share_xchannel *)0x0) {\n                    pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                                (*(int *)(puVar47 + 0x8839c) + 0x4680,psVar45);\n                    goto LAB_00089674;\n                  }" if (parenthesized_expression "(xc_00 == (share_xchannel *)0x0)" ( (binary_expression "xc_00 == (share_xchannel *)0x0" identifier == (cast_expression "(share_xchannel *)0x0" ( (type_descriptor "share_xchannel *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                                (*(int *)(puVar47 + 0x8839c) + 0x4680,psVar45);\n                    goto LAB_00089674;\n                  }" { (expression_statement "pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                                (*(int *)(puVar47 + 0x8839c) + 0x4680,psVar45);" (assignment_expression "pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                                (*(int *)(puVar47 + 0x8839c) + 0x4680,psVar45)" identifier = (cast_expression "(char *)(**(code **)(puVar47 + 0x8844c))\n                                                (*(int *)(puVar47 + 0x8839c) + 0x4680,psVar45)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar47 + 0x8844c))\n                                                (*(int *)(puVar47 + 0x8839c) + 0x4680,psVar45)" (parenthesized_expression "(**(code **)(puVar47 + 0x8844c))" ( (pointer_expression "**(code **)(puVar47 + 0x8844c)" * (pointer_expression "*(code **)(puVar47 + 0x8844c)" * (cast_expression "(code **)(puVar47 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x8844c)" ( (binary_expression "puVar47 + 0x8844c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar47 + 0x8839c) + 0x4680,psVar45)" ( (binary_expression "*(int *)(puVar47 + 0x8839c) + 0x4680" (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" identifier + number_literal) )))) + number_literal) , identifier ))))) ;) (goto_statement "goto LAB_00089674;" goto statement_identifier ;) })) (expression_statement "share_xchannel_failure(cs_00,xc_00);" (call_expression "share_xchannel_failure(cs_00,xc_00)" identifier (argument_list "(cs_00,xc_00)" ( 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                  psVar18 = cs_00->parent;\n                  uVar35 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar47 + 0x88b70))(psVar18->ssh,cs_00->id,uVar35,puVar38,puVar23,0);\n                  del234(cs_00->halfchannels,e);\n                  (**(code **)(puVar47 + 0x88394))(e);\n                  cs_00->recvlen = 0;\n                }" else (compound_statement "{\n                  psVar18 = cs_00->parent;\n                  uVar35 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar47 + 0x88b70))(psVar18->ssh,cs_00->id,uVar35,puVar38,puVar23,0);\n                  del234(cs_00->halfchannels,e);\n                  (**(code **)(puVar47 + 0x88394))(e);\n                  cs_00->recvlen = 0;\n                }" { (expression_statement "psVar18 = cs_00->parent;" (assignment_expression "psVar18 = cs_00->parent" identifier = (field_expression "cs_00->parent" identifier -> field_identifier)) ;) (expression_statement "uVar35 = 0x5c;" (assignment_expression "uVar35 = 0x5c" identifier = number_literal) ;) (labeled_statement "LAB_000895b4:\n                  (**(code **)(puVar47 + 0x88b70))(psVar18->ssh,cs_00->id,uVar35,puVar38,puVar23,0);" statement_identifier : (expression_statement "(**(code **)(puVar47 + 0x88b70))(psVar18->ssh,cs_00->id,uVar35,puVar38,puVar23,0);" (call_expression "(**(code **)(puVar47 + 0x88b70))(psVar18->ssh,cs_00->id,uVar35,puVar38,puVar23,0)" (parenthesized_expression "(**(code **)(puVar47 + 0x88b70))" ( (pointer_expression "**(code **)(puVar47 + 0x88b70)" * (pointer_expression "*(code **)(puVar47 + 0x88b70)" * (cast_expression "(code **)(puVar47 + 0x88b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88b70)" ( (binary_expression "puVar47 + 0x88b70" identifier + number_literal) ))))) )) (argument_list "(psVar18->ssh,cs_00->id,uVar35,puVar38,puVar23,0)" ( (field_expression "psVar18->ssh" identifier -> field_identifier) , (field_expression "cs_00->id" identifier -> field_identifier) , identifier , identifier , identifier , number_literal ))) ;)) (expression_statement "del234(cs_00->halfchannels,e);" (call_expression "del234(cs_00->halfchannels,e)" identifier (argument_list "(cs_00->halfchannels,e)" ( (field_expression "cs_00->halfchannels" identifier -> field_identifier) , identifier ))) ;) (expression_statement "(**(code **)(puVar47 + 0x88394))(e);" (call_expression "(**(code **)(puVar47 + 0x88394))(e)" (parenthesized_expression "(**(code **)(puVar47 + 0x88394))" ( (pointer_expression "**(code **)(puVar47 + 0x88394)" * (pointer_expression "*(code **)(puVar47 + 0x88394)" * (cast_expression "(code **)(puVar47 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88394)" ( (binary_expression "puVar47 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(e)" ( 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_000893ac;" goto statement_identifier ;) })) (expression_statement "pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x4658);" (assignment_expression "pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x4658)" identifier = (cast_expression "(char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x4658)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x4658)" (parenthesized_expression "(**(code **)(puVar47 + 0x8844c))" ( (pointer_expression "**(code **)(puVar47 + 0x8844c)" * (pointer_expression "*(code **)(puVar47 + 0x8844c)" * (cast_expression "(code **)(puVar47 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x8844c)" ( (binary_expression "puVar47 + 0x8844c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar47 + 0x8839c) + 0x4658)" ( (binary_expression "*(int *)(puVar47 + 0x8839c) + 0x4658" (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" identifier + number_literal) )))) + number_literal) ))))) ;) (goto_statement "goto LAB_00089674;" goto statement_identifier ;) })) (if_statement "if (0x5b < bVar31) {\n              if (100 < bVar31) goto LAB_0008965c;\n              goto LAB_00089714;\n            }" if (parenthesized_expression "(0x5b < bVar31)" ( (binary_expression "0x5b < bVar31" number_literal < identifier) )) (compound_statement "{\n              if (100 < bVar31) goto LAB_0008965c;\n              goto LAB_00089714;\n            }" { (if_statement "if (100 < bVar31) goto LAB_0008965c;" if (parenthesized_expression "(100 < bVar31)" ( (binary_expression "100 < bVar31" number_literal < identifier) )) (goto_statement "goto LAB_0008965c;" goto statement_identifier ;)) (goto_statement "goto LAB_00089714;" goto statement_identifier ;) })) (if_statement "if ((int)puVar23 < 0x10) {\n              pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }" if (parenthesized_expression "((int)puVar23 < 0x10)" ( (binary_expression "(int)puVar23 < 0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n              pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }" { (expression_statement "pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x45ac);" (assignment_expression "pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x45ac)" identifier = (cast_expression "(char *)(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x45ac)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar47 + 0x8844c))\n                                          (*(int *)(puVar47 + 0x8839c) + 0x45ac)" (parenthesized_expression "(**(code **)(puVar47 + 0x8844c))" ( (pointer_expression "**(code **)(puVar47 + 0x8844c)" * (pointer_expression "*(code **)(puVar47 + 0x8844c)" * (cast_expression "(code **)(puVar47 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x8844c)" ( (binary_expression "puVar47 + 0x8844c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar47 + 0x8839c) + 0x45ac)" ( (binary_expression "*(int *)(puVar47 + 0x8839c) + 0x45ac" (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" identifier + number_literal) )))) + number_literal) ))))) ;) (goto_statement "goto LAB_00089674;" goto statement_identifier ;) })) (expression_statement "uVar36 = (uint)(cs_00->recvbuf + 5) & 3;" (assignment_expression "uVar36 = (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 "uVar32 = (uint)(cs_00->recvbuf + 8) & 3;" (assignment_expression "uVar32 = (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 "psVar45 = (ssh_sharing_connstate *)\n                      ((*(int *)(cs_00->recvbuf + 5 + -uVar36) << uVar36 * 8 |\n                       (uint)psVar45 & 0xffffffffU >> (4 - uVar36) * 8) & -1 << (uVar32 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar32) >> (3 - uVar32) * 8);" (assignment_expression "psVar45 = (ssh_sharing_connstate *)\n                      ((*(int *)(cs_00->recvbuf + 5 + -uVar36) << uVar36 * 8 |\n                       (uint)psVar45 & 0xffffffffU >> (4 - uVar36) * 8) & -1 << (uVar32 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar32) >> (3 - uVar32) * 8)" identifier = (cast_expression "(ssh_sharing_connstate *)\n                      ((*(int *)(cs_00->recvbuf + 5 + -uVar36) << uVar36 * 8 |\n                       (uint)psVar45 & 0xffffffffU >> (4 - uVar36) * 8) & -1 << (uVar32 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar32) >> (3 - uVar32) * 8)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((*(int *)(cs_00->recvbuf + 5 + -uVar36) << uVar36 * 8 |\n                       (uint)psVar45 & 0xffffffffU >> (4 - uVar36) * 8) & -1 << (uVar32 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar32) >> (3 - uVar32) * 8)" ( (binary_expression "(*(int *)(cs_00->recvbuf + 5 + -uVar36) << uVar36 * 8 |\n                       (uint)psVar45 & 0xffffffffU >> (4 - uVar36) * 8) & -1 << (uVar32 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar32) >> (3 - uVar32) * 8" (binary_expression "(*(int *)(cs_00->recvbuf + 5 + -uVar36) << uVar36 * 8 |\n                       (uint)psVar45 & 0xffffffffU >> (4 - uVar36) * 8) & -1 << (uVar32 + 1) * 8" (parenthesized_expression "(*(int *)(cs_00->recvbuf + 5 + -uVar36) << uVar36 * 8 |\n                       (uint)psVar45 & 0xffffffffU >> (4 - uVar36) * 8)" ( (binary_expression "*(int *)(cs_00->recvbuf + 5 + -uVar36) << uVar36 * 8 |\n                       (uint)psVar45 & 0xffffffffU >> (4 - uVar36) * 8" (binary_expression "*(int *)(cs_00->recvbuf + 5 + -uVar36) << uVar36 * 8" (pointer_expression "*(int *)(cs_00->recvbuf + 5 + -uVar36)" * (cast_expression "(int *)(cs_00->recvbuf + 5 + -uVar36)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(cs_00->recvbuf + 5 + -uVar36)" ( (binary_expression "cs_00->recvbuf + 5 + -uVar36" (binary_expression "cs_00->recvbuf + 5" (field_expression "cs_00->recvbuf" identifier -> field_identifier) + number_literal) + (unary_expression "-uVar36" - identifier)) )))) << (binary_expression "uVar36 * 8" identifier * number_literal)) | (binary_expression "(uint)psVar45 & 0xffffffffU >> (4 - uVar36) * 8" (cast_expression "(uint)psVar45" ( (type_descriptor "uint" type_identifier) ) identifier) & (binary_expression "0xffffffffU >> (4 - uVar36) * 8" number_literal >> (binary_expression "(4 - uVar36) * 8" (parenthesized_expression "(4 - uVar36)" ( (binary_expression "4 - uVar36" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar32 + 1) * 8" number_literal << (binary_expression "(uVar32 + 1) * 8" (parenthesized_expression "(uVar32 + 1)" ( (binary_expression "uVar32 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "*(uint *)(cs_00->recvbuf + 8 + -uVar32) >> (3 - uVar32) * 8" (pointer_expression "*(uint *)(cs_00->recvbuf + 8 + -uVar32)" * (cast_expression "(uint *)(cs_00->recvbuf + 8 + -uVar32)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(cs_00->recvbuf + 8 + -uVar32)" ( (binary_expression "cs_00->recvbuf + 8 + -uVar32" (binary_expression "cs_00->recvbuf + 8" (field_expression "cs_00->recvbuf" identifier -> field_identifier) + number_literal) + (unary_expression "-uVar32" - identifier)) )))) >> (binary_expression "(3 - uVar32) * 8" (parenthesized_expression "(3 - uVar32)" ( (binary_expression "3 - uVar32" number_literal - identifier) )) * number_literal))) )))) ;) (expression_statement "psStack_90 = psVar45;" (assignment_expression "psStack_90 = psVar45" identifier = identifier) ;) (expression_statement "e = find234(cs_00->halfchannels,&psStack_90,(cmpfn234)0x0);" (assignment_expression "e = find234(cs_00->halfchannels,&psStack_90,(cmpfn234)0x0)" identifier = (call_expression "find234(cs_00->halfchannels,&psStack_90,(cmpfn234)0x0)" identifier (argument_list "(cs_00->halfchannels,&psStack_90,(cmpfn234)0x0)" ( (field_expression "cs_00->halfchannels" identifier -> field_identifier) , (pointer_expression "&psStack_90" & identifier) , (cast_expression "(cmpfn234)0x0" ( (type_descriptor "cmpfn234" type_identifier) ) number_literal) )))) ;) (if_statement "if (e == (void *)0x0) {\n              psStack_8c = psVar45;\n              unaff_s6 = (ssh_sharing_connstate *)\n                         find234(cs_00->xchannels_by_server,&psStack_90,(cmpfn234)0x0);\n              if (unaff_s6 == (ssh_sharing_connstate *)0x0) goto LAB_0008a14c;\n              server_id = unaff_s6->fn;\n            }\n            else {\n              unaff_s6 = (ssh_sharing_connstate *)0x0;\n              server_id = (plug_function_table *)\n                          (**(code **)(puVar47 + 0x88b8c))(cs_00->parent->ssh,cs_00);\n            }" if (parenthesized_expression "(e == (void *)0x0)" ( (binary_expression "e == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              psStack_8c = psVar45;\n              unaff_s6 = (ssh_sharing_connstate *)\n                         find234(cs_00->xchannels_by_server,&psStack_90,(cmpfn234)0x0);\n              if (unaff_s6 == (ssh_sharing_connstate *)0x0) goto LAB_0008a14c;\n              server_id = unaff_s6->fn;\n            }" { (expression_statement "psStack_8c = psVar45;" (assignment_expression "psStack_8c = psVar45" identifier = identifier) ;) (expression_statement "unaff_s6 = (ssh_sharing_connstate *)\n                         find234(cs_00->xchannels_by_server,&psStack_90,(cmpfn234)0x0);" (assignment_expression "unaff_s6 = (ssh_sharing_connstate *)\n                         find234(cs_00->xchannels_by_server,&psStack_90,(cmpfn234)0x0)" identifier = (cast_expression "(ssh_sharing_connstate *)\n                         find234(cs_00->xchannels_by_server,&psStack_90,(cmpfn234)0x0)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "find234(cs_00->xchannels_by_server,&psStack_90,(cmpfn234)0x0)" identifier (argument_list "(cs_00->xchannels_by_server,&psStack_90,(cmpfn234)0x0)" ( (field_expression "cs_00->xchannels_by_server" identifier -> field_identifier) , (pointer_expression "&psStack_90" & identifier) , (cast_expression "(cmpfn234)0x0" ( (type_descriptor "cmpfn234" type_identifier) ) number_literal) ))))) ;) (if_statement "if (unaff_s6 == (ssh_sharing_connstate *)0x0) goto LAB_0008a14c;" if (parenthesized_expression "(unaff_s6 == (ssh_sharing_connstate *)0x0)" ( (binary_expression "unaff_s6 == (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_0008a14c;" goto statement_identifier ;)) (expression_statement "server_id = unaff_s6->fn;" (assignment_expression "server_id = unaff_s6->fn" identifier = (field_expression "unaff_s6->fn" identifier -> field_identifier)) ;) }) (else_clause "else {\n              unaff_s6 = (ssh_sharing_connstate *)0x0;\n              server_id = (plug_function_table *)\n                          (**(code **)(puVar47 + 0x88b8c))(cs_00->parent->ssh,cs_00);\n            }" else (compound_statement "{\n              unaff_s6 = (ssh_sharing_connstate *)0x0;\n              server_id = (plug_function_table *)\n                          (**(code **)(puVar47 + 0x88b8c))(cs_00->parent->ssh,cs_00);\n            }" { (expression_statement "unaff_s6 = (ssh_sharing_connstate *)0x0;" (assignment_expression "unaff_s6 = (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 "server_id = (plug_function_table *)\n                          (**(code **)(puVar47 + 0x88b8c))(cs_00->parent->ssh,cs_00);" (assignment_expression "server_id = (plug_function_table *)\n                          (**(code **)(puVar47 + 0x88b8c))(cs_00->parent->ssh,cs_00)" identifier = (cast_expression "(plug_function_table *)\n                          (**(code **)(puVar47 + 0x88b8c))(cs_00->parent->ssh,cs_00)" ( (type_descriptor "plug_function_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar47 + 0x88b8c))(cs_00->parent->ssh,cs_00)" (parenthesized_expression "(**(code **)(puVar47 + 0x88b8c))" ( (pointer_expression "**(code **)(puVar47 + 0x88b8c)" * (pointer_expression "*(code **)(puVar47 + 0x88b8c)" * (cast_expression "(code **)(puVar47 + 0x88b8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88b8c)" ( (binary_expression "puVar47 + 0x88b8c" 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)server_id;" (assignment_expression "cs_00->recvbuf[0xc] = (uchar)server_id" (subscript_expression "cs_00->recvbuf[0xc]" (field_expression "cs_00->recvbuf" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(uchar)server_id" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "cs_00->recvbuf[9] = (uchar)((uint)server_id >> 0x18);" (assignment_expression "cs_00->recvbuf[9] = (uchar)((uint)server_id >> 0x18)" (subscript_expression "cs_00->recvbuf[9]" (field_expression "cs_00->recvbuf" identifier -> field_identifier) [ number_literal ]) = (call_expression "(uchar)((uint)server_id >> 0x18)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((uint)server_id >> 0x18)" ( (binary_expression "(uint)server_id >> 0x18" (cast_expression "(uint)server_id" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "cs_00->recvbuf[10] = (uchar)((uint)server_id >> 0x10);" (assignment_expression "cs_00->recvbuf[10] = (uchar)((uint)server_id >> 0x10)" (subscript_expression "cs_00->recvbuf[10]" (field_expression "cs_00->recvbuf" identifier -> field_identifier) [ number_literal ]) = (call_expression "(uchar)((uint)server_id >> 0x10)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((uint)server_id >> 0x10)" ( (binary_expression "(uint)server_id >> 0x10" (cast_expression "(uint)server_id" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "cs_00->recvbuf[0xb] = (uchar)((uint)server_id >> 8);" (assignment_expression "cs_00->recvbuf[0xb] = (uchar)((uint)server_id >> 8)" (subscript_expression "cs_00->recvbuf[0xb]" (field_expression "cs_00->recvbuf" identifier -> field_identifier) [ number_literal ]) = (call_expression "(uchar)((uint)server_id >> 8)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((uint)server_id >> 8)" ( (binary_expression "(uint)server_id >> 8" (cast_expression "(uint)server_id" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar36 = (uint)(cs_00->recvbuf + 0x11) & 3;" (assignment_expression "uVar36 = (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 "uVar32 = (uint)(cs_00->recvbuf + 0x14) & 3;" (assignment_expression "uVar32 = (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 "psVar24 = share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)server_id\n                                        ,(int)psVar45,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar36) << uVar36 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar36) * 8) &\n                                         -1 << (uVar32 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar32) >>\n                                        (3 - uVar32) * 8));" (assignment_expression "psVar24 = share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)server_id\n                                        ,(int)psVar45,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar36) << uVar36 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar36) * 8) &\n                                         -1 << (uVar32 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar32) >>\n                                        (3 - uVar32) * 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)server_id\n                                        ,(int)psVar45,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar36) << uVar36 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar36) * 8) &\n                                         -1 << (uVar32 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar32) >>\n                                        (3 - uVar32) * 8))" identifier (argument_list "((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)server_id\n                                        ,(int)psVar45,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar36) << uVar36 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar36) * 8) &\n                                         -1 << (uVar32 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar32) >>\n                                        (3 - uVar32) * 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)server_id" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(int)psVar45" ( (type_descriptor "int" primitive_type) ) identifier) , number_literal , (cast_expression "(ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar36) << uVar36 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar36) * 8) &\n                                         -1 << (uVar32 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar32) >>\n                                        (3 - uVar32) * 8)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((*(int *)(cs_00->recvbuf + 0x11 + -uVar36) << uVar36 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar36) * 8) &\n                                         -1 << (uVar32 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar32) >>\n                                        (3 - uVar32) * 8)" ( (binary_expression "(*(int *)(cs_00->recvbuf + 0x11 + -uVar36) << uVar36 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar36) * 8) &\n                                         -1 << (uVar32 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar32) >>\n                                        (3 - uVar32) * 8" (binary_expression "(*(int *)(cs_00->recvbuf + 0x11 + -uVar36) << uVar36 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar36) * 8) &\n                                         -1 << (uVar32 + 1) * 8" (parenthesized_expression "(*(int *)(cs_00->recvbuf + 0x11 + -uVar36) << uVar36 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar36) * 8)" ( (binary_expression "*(int *)(cs_00->recvbuf + 0x11 + -uVar36) << uVar36 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar36) * 8" (binary_expression "*(int *)(cs_00->recvbuf + 0x11 + -uVar36) << uVar36 * 8" (pointer_expression "*(int *)(cs_00->recvbuf + 0x11 + -uVar36)" * (cast_expression "(int *)(cs_00->recvbuf + 0x11 + -uVar36)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(cs_00->recvbuf + 0x11 + -uVar36)" ( (binary_expression "cs_00->recvbuf + 0x11 + -uVar36" (binary_expression "cs_00->recvbuf + 0x11" (field_expression "cs_00->recvbuf" identifier -> field_identifier) + number_literal) + (unary_expression "-uVar36" - identifier)) )))) << (binary_expression "uVar36 * 8" identifier * number_literal)) | (binary_expression "in_t3 & 0xffffffffU >> (4 - uVar36) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar36) * 8" number_literal >> (binary_expression "(4 - uVar36) * 8" (parenthesized_expression "(4 - uVar36)" ( (binary_expression "4 - uVar36" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar32 + 1) * 8" number_literal << (binary_expression "(uVar32 + 1) * 8" (parenthesized_expression "(uVar32 + 1)" ( (binary_expression "uVar32 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "*(uint *)(cs_00->recvbuf + 0x14 + -uVar32) >>\n                                        (3 - uVar32) * 8" (pointer_expression "*(uint *)(cs_00->recvbuf + 0x14 + -uVar32)" * (cast_expression "(uint *)(cs_00->recvbuf + 0x14 + -uVar32)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(cs_00->recvbuf + 0x14 + -uVar32)" ( (binary_expression "cs_00->recvbuf + 0x14 + -uVar32" (binary_expression "cs_00->recvbuf + 0x14" (field_expression "cs_00->recvbuf" identifier -> field_identifier) + number_literal) + (unary_expression "-uVar32" - identifier)) )))) >> (binary_expression "(3 - uVar32) * 8" (parenthesized_expression "(3 - uVar32)" ( (binary_expression "3 - uVar32" number_literal - identifier) )) * number_literal))) ))) )))) ;) (if_statement "if (e != (void *)0x0) {\n              psVar18 = cs_00->parent;\n              uVar35 = 0x5b;\n              goto LAB_000895b4;\n            }" if (parenthesized_expression "(e != (void *)0x0)" ( (binary_expression "e != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              psVar18 = cs_00->parent;\n              uVar35 = 0x5b;\n              goto LAB_000895b4;\n            }" { (expression_statement "psVar18 = cs_00->parent;" (assignment_expression "psVar18 = cs_00->parent" identifier = (field_expression "cs_00->parent" identifier -> field_identifier)) ;) (expression_statement "uVar35 = 0x5b;" (assignment_expression "uVar35 = 0x5b" identifier = number_literal) ;) (goto_statement "goto LAB_000895b4;" goto statement_identifier ;) })) (if_statement "if (unaff_s6 != (ssh_sharing_connstate *)0x0) {\n              uVar36 = *(uint *)(cs_00->recvbuf + 0xd);\n              if (uVar36 < 0x100) {\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x4614,uVar36);\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(cs_00,(share_xchannel *)unaff_s6,psVar24,uVar36);\n              share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,unaff_s6);\n              cs_00->recvlen = 0;\n              goto LAB_000893ac;\n            }" if (parenthesized_expression "(unaff_s6 != (ssh_sharing_connstate *)0x0)" ( (binary_expression "unaff_s6 != (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              uVar36 = *(uint *)(cs_00->recvbuf + 0xd);\n              if (uVar36 < 0x100) {\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x4614,uVar36);\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(cs_00,(share_xchannel *)unaff_s6,psVar24,uVar36);\n              share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,unaff_s6);\n              cs_00->recvlen = 0;\n              goto LAB_000893ac;\n            }" { (expression_statement "uVar36 = *(uint *)(cs_00->recvbuf + 0xd);" (assignment_expression "uVar36 = *(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 (uVar36 < 0x100) {\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x4614,uVar36);\n                goto LAB_00089674;\n              }" if (parenthesized_expression "(uVar36 < 0x100)" ( (binary_expression "uVar36 < 0x100" identifier < number_literal) )) (compound_statement "{\n                pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x4614,uVar36);\n                goto LAB_00089674;\n              }" { (expression_statement "pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x4614,uVar36);" (assignment_expression "pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x4614,uVar36)" identifier = (cast_expression "(char *)(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x4614,uVar36)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar47 + 0x8844c))\n                                            (*(int *)(puVar47 + 0x8839c) + 0x4614,uVar36)" (parenthesized_expression "(**(code **)(puVar47 + 0x8844c))" ( (pointer_expression "**(code **)(puVar47 + 0x8844c)" * (pointer_expression "*(code **)(puVar47 + 0x8844c)" * (cast_expression "(code **)(puVar47 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x8844c)" ( (binary_expression "puVar47 + 0x8844c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar47 + 0x8839c) + 0x4614,uVar36)" ( (binary_expression "*(int *)(puVar47 + 0x8839c) + 0x4614" (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" identifier + number_literal) )))) + number_literal) , identifier ))))) ;) (goto_statement "goto LAB_00089674;" goto statement_identifier ;) })) (expression_statement "share_xchannel_confirmation(cs_00,(share_xchannel *)unaff_s6,psVar24,uVar36);" (call_expression "share_xchannel_confirmation(cs_00,(share_xchannel *)unaff_s6,psVar24,uVar36)" identifier (argument_list "(cs_00,(share_xchannel *)unaff_s6,psVar24,uVar36)" ( identifier , (cast_expression "(share_xchannel *)unaff_s6" ( (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,unaff_s6);" (call_expression "share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,unaff_s6)" identifier (argument_list "((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,unaff_s6)" ( (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_000893ac;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_000893a4:\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_000893ac;" goto statement_identifier ;) })) (expression_statement "iVar28 = *(int *)(puVar47 + 0x8839c);" (assignment_expression "iVar28 = *(int *)(puVar47 + 0x8839c)" identifier = (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" identifier + number_literal) ))))) ;) (if_statement "if (3 < (int)puVar23) {\n          iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n          if (((iVar28 == 0) || ((int)psStack_90 < 0)) ||\n             (psVar45 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90),\n             (int)&unaff_s6[-1].xchannels_by_server <= (int)psStack_90)) {\n            iVar28 = *(int *)(puVar47 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pppVar14 = &psStack_90->fn;\n          pppVar15 = &psStack_90->fn;\n          psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)((int)&psStack_90->fn + 2));\n          unaff_s6 = (ssh_sharing_connstate *)\n                     ((uint)*(byte *)&psVar45->fn << 0x18 |\n                      (uint)puVar38[(int)((int)pppVar14 + 1)] << 0x10 |\n                      (uint)puVar38[(int)((int)pppVar15 + 3)] | (uint)*(byte *)&psStack_b0->fn << 8)\n          ;\n          uVar36 = (**(code **)(puVar47 + 0x88b8c))(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)unaff_s6,uVar36,0,3,\n                            (ssh_sharing_connstate *)\n                            ((uint)*(byte *)&psVar45->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 3) |\n                            (uint)*(uchar *)((int)&psVar45->sock + 2) << 8));\n          *(char *)&psVar45->fn = (char)(uVar36 >> 0x18);\n          puVar38[(int)((int)pppVar14 + 1)] = (byte)(uVar36 >> 0x10);\n          *(char *)&psStack_b0->fn = (char)(uVar36 >> 8);\n          puVar38[(int)((int)pppVar15 + 3)] = (byte)uVar36;\n          (**(code **)(puVar47 + 0x88b70))(cs_00->parent->ssh,cs_00->id,0x5a,puVar38,puVar23,0);\n          cs_00->recvlen = 0;\n          goto LAB_000893ac;\n        }" if (parenthesized_expression "(3 < (int)puVar23)" ( (binary_expression "3 < (int)puVar23" number_literal < (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);\n          if (((iVar28 == 0) || ((int)psStack_90 < 0)) ||\n             (psVar45 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90),\n             (int)&unaff_s6[-1].xchannels_by_server <= (int)psStack_90)) {\n            iVar28 = *(int *)(puVar47 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pppVar14 = &psStack_90->fn;\n          pppVar15 = &psStack_90->fn;\n          psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)((int)&psStack_90->fn + 2));\n          unaff_s6 = (ssh_sharing_connstate *)\n                     ((uint)*(byte *)&psVar45->fn << 0x18 |\n                      (uint)puVar38[(int)((int)pppVar14 + 1)] << 0x10 |\n                      (uint)puVar38[(int)((int)pppVar15 + 3)] | (uint)*(byte *)&psStack_b0->fn << 8)\n          ;\n          uVar36 = (**(code **)(puVar47 + 0x88b8c))(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)unaff_s6,uVar36,0,3,\n                            (ssh_sharing_connstate *)\n                            ((uint)*(byte *)&psVar45->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 3) |\n                            (uint)*(uchar *)((int)&psVar45->sock + 2) << 8));\n          *(char *)&psVar45->fn = (char)(uVar36 >> 0x18);\n          puVar38[(int)((int)pppVar14 + 1)] = (byte)(uVar36 >> 0x10);\n          *(char *)&psStack_b0->fn = (char)(uVar36 >> 8);\n          puVar38[(int)((int)pppVar15 + 3)] = (byte)uVar36;\n          (**(code **)(puVar47 + 0x88b70))(cs_00->parent->ssh,cs_00->id,0x5a,puVar38,puVar23,0);\n          cs_00->recvlen = 0;\n          goto LAB_000893ac;\n        }" { (expression_statement "iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90);" (assignment_expression "iVar28 = getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90)" identifier = (call_expression "getstring_inner(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90)" identifier (argument_list "(puVar38,(int)puVar23,(char **)0x0,(int *)&psStack_90)" ( identifier , (cast_expression "(int)puVar23" ( (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_90" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psStack_90" & identifier)) )))) ;) (if_statement "if (((iVar28 == 0) || ((int)psStack_90 < 0)) ||\n             (psVar45 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90),\n             (int)&unaff_s6[-1].xchannels_by_server <= (int)psStack_90)) {\n            iVar28 = *(int *)(puVar47 + 0x8839c);\n            goto LAB_00089d50;\n          }" if (parenthesized_expression "(((iVar28 == 0) || ((int)psStack_90 < 0)) ||\n             (psVar45 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90),\n             (int)&unaff_s6[-1].xchannels_by_server <= (int)psStack_90))" ( (binary_expression "((iVar28 == 0) || ((int)psStack_90 < 0)) ||\n             (psVar45 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90),\n             (int)&unaff_s6[-1].xchannels_by_server <= (int)psStack_90)" (parenthesized_expression "((iVar28 == 0) || ((int)psStack_90 < 0))" ( (binary_expression "(iVar28 == 0) || ((int)psStack_90 < 0)" (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) || (parenthesized_expression "((int)psStack_90 < 0)" ( (binary_expression "(int)psStack_90 < 0" (cast_expression "(int)psStack_90" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) ))) )) || (parenthesized_expression "(psVar45 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90),\n             (int)&unaff_s6[-1].xchannels_by_server <= (int)psStack_90)" ( (comma_expression "psVar45 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90),\n             (int)&unaff_s6[-1].xchannels_by_server <= (int)psStack_90" (assignment_expression "psVar45 = (ssh_sharing_connstate *)(puVar38 + (int)psStack_90)" identifier = (cast_expression "(ssh_sharing_connstate *)(puVar38 + (int)psStack_90)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + (int)psStack_90)" ( (binary_expression "puVar38 + (int)psStack_90" identifier + (cast_expression "(int)psStack_90" ( (type_descriptor "int" primitive_type) ) identifier)) )))) , (binary_expression "(int)&unaff_s6[-1].xchannels_by_server <= (int)psStack_90" (cast_expression "(int)&unaff_s6[-1].xchannels_by_server" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s6[-1].xchannels_by_server" & (field_expression "unaff_s6[-1].xchannels_by_server" (subscript_expression "unaff_s6[-1]" identifier [ number_literal ]) . field_identifier))) <= (cast_expression "(int)psStack_90" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\n            iVar28 = *(int *)(puVar47 + 0x8839c);\n            goto LAB_00089d50;\n          }" { (expression_statement "iVar28 = *(int *)(puVar47 + 0x8839c);" (assignment_expression "iVar28 = *(int *)(puVar47 + 0x8839c)" identifier = (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00089d50;" goto statement_identifier ;) })) (expression_statement "pppVar14 = &psStack_90->fn;" (assignment_expression "pppVar14 = &psStack_90->fn" identifier = (pointer_expression "&psStack_90->fn" & (field_expression "psStack_90->fn" identifier -> field_identifier))) ;) (expression_statement "pppVar15 = &psStack_90->fn;" (assignment_expression "pppVar15 = &psStack_90->fn" identifier = (pointer_expression "&psStack_90->fn" & (field_expression "psStack_90->fn" identifier -> field_identifier))) ;) (expression_statement "psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)((int)&psStack_90->fn + 2));" (assignment_expression "psStack_b0 = (ssh_sharing_connstate *)(puVar38 + (int)((int)&psStack_90->fn + 2))" identifier = (cast_expression "(ssh_sharing_connstate *)(puVar38 + (int)((int)&psStack_90->fn + 2))" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + (int)((int)&psStack_90->fn + 2))" ( (binary_expression "puVar38 + (int)((int)&psStack_90->fn + 2)" identifier + (cast_expression "(int)((int)&psStack_90->fn + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&psStack_90->fn + 2)" ( (binary_expression "(int)&psStack_90->fn + 2" (cast_expression "(int)&psStack_90->fn" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psStack_90->fn" & (field_expression "psStack_90->fn" identifier -> field_identifier))) + number_literal) )))) )))) ;) (expression_statement "unaff_s6 = (ssh_sharing_connstate *)\n                     ((uint)*(byte *)&psVar45->fn << 0x18 |\n                      (uint)puVar38[(int)((int)pppVar14 + 1)] << 0x10 |\n                      (uint)puVar38[(int)((int)pppVar15 + 3)] | (uint)*(byte *)&psStack_b0->fn << 8)\n          ;" (assignment_expression "unaff_s6 = (ssh_sharing_connstate *)\n                     ((uint)*(byte *)&psVar45->fn << 0x18 |\n                      (uint)puVar38[(int)((int)pppVar14 + 1)] << 0x10 |\n                      (uint)puVar38[(int)((int)pppVar15 + 3)] | (uint)*(byte *)&psStack_b0->fn << 8)" identifier = (cast_expression "(ssh_sharing_connstate *)\n                     ((uint)*(byte *)&psVar45->fn << 0x18 |\n                      (uint)puVar38[(int)((int)pppVar14 + 1)] << 0x10 |\n                      (uint)puVar38[(int)((int)pppVar15 + 3)] | (uint)*(byte *)&psStack_b0->fn << 8)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)*(byte *)&psVar45->fn << 0x18 |\n                      (uint)puVar38[(int)((int)pppVar14 + 1)] << 0x10 |\n                      (uint)puVar38[(int)((int)pppVar15 + 3)] | (uint)*(byte *)&psStack_b0->fn << 8)" ( (binary_expression "(uint)*(byte *)&psVar45->fn << 0x18 |\n                      (uint)puVar38[(int)((int)pppVar14 + 1)] << 0x10 |\n                      (uint)puVar38[(int)((int)pppVar15 + 3)] | (uint)*(byte *)&psStack_b0->fn << 8" (binary_expression "(uint)*(byte *)&psVar45->fn << 0x18 |\n                      (uint)puVar38[(int)((int)pppVar14 + 1)] << 0x10 |\n                      (uint)puVar38[(int)((int)pppVar15 + 3)]" (binary_expression "(uint)*(byte *)&psVar45->fn << 0x18 |\n                      (uint)puVar38[(int)((int)pppVar14 + 1)] << 0x10" (binary_expression "(uint)*(byte *)&psVar45->fn << 0x18" (binary_expression "(uint)*(byte *)&psVar45->fn" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)&psVar45->fn" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psVar45->fn" & (field_expression "psVar45->fn" identifier -> field_identifier)))) << number_literal) | (binary_expression "(uint)puVar38[(int)((int)pppVar14 + 1)] << 0x10" (cast_expression "(uint)puVar38[(int)((int)pppVar14 + 1)]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar38[(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)puVar38[(int)((int)pppVar15 + 3)]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar38[(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_b0->fn << 8" (binary_expression "(uint)*(byte *)&psStack_b0->fn" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)&psStack_b0->fn" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psStack_b0->fn" & (field_expression "psStack_b0->fn" identifier -> field_identifier)))) << number_literal)) )))) ;) (expression_statement "uVar36 = (**(code **)(puVar47 + 0x88b8c))(cs_00->parent->ssh,cs_00);" (assignment_expression "uVar36 = (**(code **)(puVar47 + 0x88b8c))(cs_00->parent->ssh,cs_00)" identifier = (call_expression "(**(code **)(puVar47 + 0x88b8c))(cs_00->parent->ssh,cs_00)" (parenthesized_expression "(**(code **)(puVar47 + 0x88b8c))" ( (pointer_expression "**(code **)(puVar47 + 0x88b8c)" * (pointer_expression "*(code **)(puVar47 + 0x88b8c)" * (cast_expression "(code **)(puVar47 + 0x88b8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88b8c)" ( (binary_expression "puVar47 + 0x88b8c" 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)unaff_s6,uVar36,0,3,\n                            (ssh_sharing_connstate *)\n                            ((uint)*(byte *)&psVar45->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 3) |\n                            (uint)*(uchar *)((int)&psVar45->sock + 2) << 8));" (call_expression "share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                            (uint)&cs_00->channels_by_server,(uint)unaff_s6,uVar36,0,3,\n                            (ssh_sharing_connstate *)\n                            ((uint)*(byte *)&psVar45->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 3) |\n                            (uint)*(uchar *)((int)&psVar45->sock + 2) << 8))" identifier (argument_list "((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                            (uint)&cs_00->channels_by_server,(uint)unaff_s6,uVar36,0,3,\n                            (ssh_sharing_connstate *)\n                            ((uint)*(byte *)&psVar45->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 3) |\n                            (uint)*(uchar *)((int)&psVar45->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)unaff_s6" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier , number_literal , number_literal , (cast_expression "(ssh_sharing_connstate *)\n                            ((uint)*(byte *)&psVar45->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 3) |\n                            (uint)*(uchar *)((int)&psVar45->sock + 2) << 8)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)*(byte *)&psVar45->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 3) |\n                            (uint)*(uchar *)((int)&psVar45->sock + 2) << 8)" ( (binary_expression "(uint)*(byte *)&psVar45->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 3) |\n                            (uint)*(uchar *)((int)&psVar45->sock + 2) << 8" (binary_expression "(uint)*(byte *)&psVar45->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 3)" (binary_expression "(uint)*(byte *)&psVar45->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar45->sock + 1) << 0x10" (binary_expression "(uint)*(byte *)&psVar45->sock << 0x18" (binary_expression "(uint)*(byte *)&psVar45->sock" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)&psVar45->sock" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psVar45->sock" & (field_expression "psVar45->sock" identifier -> field_identifier)))) << number_literal) | (binary_expression "(uint)*(uchar *)((int)&psVar45->sock + 1) << 0x10" (binary_expression "(uint)*(uchar *)((int)&psVar45->sock + 1)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(uchar *)((int)&psVar45->sock + 1)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psVar45->sock + 1)" ( (binary_expression "(int)&psVar45->sock + 1" (cast_expression "(int)&psVar45->sock" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar45->sock" & (field_expression "psVar45->sock" identifier -> field_identifier))) + number_literal) )))) << number_literal)) | (binary_expression "(uint)*(uchar *)((int)&psVar45->sock + 3)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(uchar *)((int)&psVar45->sock + 3)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psVar45->sock + 3)" ( (binary_expression "(int)&psVar45->sock + 3" (cast_expression "(int)&psVar45->sock" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar45->sock" & (field_expression "psVar45->sock" identifier -> field_identifier))) + number_literal) ))))) | (binary_expression "(uint)*(uchar *)((int)&psVar45->sock + 2) << 8" (binary_expression "(uint)*(uchar *)((int)&psVar45->sock + 2)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(uchar *)((int)&psVar45->sock + 2)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psVar45->sock + 2)" ( (binary_expression "(int)&psVar45->sock + 2" (cast_expression "(int)&psVar45->sock" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar45->sock" & (field_expression "psVar45->sock" identifier -> field_identifier))) + number_literal) )))) << number_literal)) ))) ))) ;) (expression_statement "*(char *)&psVar45->fn = (char)(uVar36 >> 0x18);" (assignment_expression "*(char *)&psVar45->fn = (char)(uVar36 >> 0x18)" (pointer_expression "*(char *)&psVar45->fn" * (cast_expression "(char *)&psVar45->fn" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psVar45->fn" & (field_expression "psVar45->fn" identifier -> field_identifier)))) = (cast_expression "(char)(uVar36 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar36 >> 0x18)" ( (binary_expression "uVar36 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "puVar38[(int)((int)pppVar14 + 1)] = (byte)(uVar36 >> 0x10);" (assignment_expression "puVar38[(int)((int)pppVar14 + 1)] = (byte)(uVar36 >> 0x10)" (subscript_expression "puVar38[(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)(uVar36 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar36 >> 0x10)" ( (binary_expression "uVar36 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "*(char *)&psStack_b0->fn = (char)(uVar36 >> 8);" (assignment_expression "*(char *)&psStack_b0->fn = (char)(uVar36 >> 8)" (pointer_expression "*(char *)&psStack_b0->fn" * (cast_expression "(char *)&psStack_b0->fn" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psStack_b0->fn" & (field_expression "psStack_b0->fn" identifier -> field_identifier)))) = (cast_expression "(char)(uVar36 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar36 >> 8)" ( (binary_expression "uVar36 >> 8" identifier >> number_literal) )))) ;) (expression_statement "puVar38[(int)((int)pppVar15 + 3)] = (byte)uVar36;" (assignment_expression "puVar38[(int)((int)pppVar15 + 3)] = (byte)uVar36" (subscript_expression "puVar38[(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)uVar36" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "(**(code **)(puVar47 + 0x88b70))(cs_00->parent->ssh,cs_00->id,0x5a,puVar38,puVar23,0);" (call_expression "(**(code **)(puVar47 + 0x88b70))(cs_00->parent->ssh,cs_00->id,0x5a,puVar38,puVar23,0)" (parenthesized_expression "(**(code **)(puVar47 + 0x88b70))" ( (pointer_expression "**(code **)(puVar47 + 0x88b70)" * (pointer_expression "*(code **)(puVar47 + 0x88b70)" * (cast_expression "(code **)(puVar47 + 0x88b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88b70)" ( (binary_expression "puVar47 + 0x88b70" identifier + number_literal) ))))) )) (argument_list "(cs_00->parent->ssh,cs_00->id,0x5a,puVar38,puVar23,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_000893ac;" goto statement_identifier ;) })) (labeled_statement "LAB_00089d50:\n        pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))(iVar28 + 0x458c);" statement_identifier : (expression_statement "pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))(iVar28 + 0x458c);" (assignment_expression "pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))(iVar28 + 0x458c)" identifier = (cast_expression "(char *)(**(code **)(puVar47 + 0x8844c))(iVar28 + 0x458c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar47 + 0x8844c))(iVar28 + 0x458c)" (parenthesized_expression "(**(code **)(puVar47 + 0x8844c))" ( (pointer_expression "**(code **)(puVar47 + 0x8844c)" * (pointer_expression "*(code **)(puVar47 + 0x8844c)" * (cast_expression "(code **)(puVar47 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x8844c)" ( (binary_expression "puVar47 + 0x8844c" identifier + number_literal) ))))) )) (argument_list "(iVar28 + 0x458c)" ( (binary_expression "iVar28 + 0x458c" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_00089674:\n        while (pcVar17 == (char *)0x0) {\n          (**(code **)(puVar47 + 0x88ff4))\n                    (*(int *)(puVar47 + 0x8839c) + 0x4768,*(int *)(puVar47 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar47 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                      (*(int *)(puVar47 + 0x8839c) + 0x45d8,psVar45);\n        }" statement_identifier : (while_statement "while (pcVar17 == (char *)0x0) {\n          (**(code **)(puVar47 + 0x88ff4))\n                    (*(int *)(puVar47 + 0x8839c) + 0x4768,*(int *)(puVar47 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar47 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                      (*(int *)(puVar47 + 0x8839c) + 0x45d8,psVar45);\n        }" while (parenthesized_expression "(pcVar17 == (char *)0x0)" ( (binary_expression "pcVar17 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          (**(code **)(puVar47 + 0x88ff4))\n                    (*(int *)(puVar47 + 0x8839c) + 0x4768,*(int *)(puVar47 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar47 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                      (*(int *)(puVar47 + 0x8839c) + 0x45d8,psVar45);\n        }" { (expression_statement "(**(code **)(puVar47 + 0x88ff4))\n                    (*(int *)(puVar47 + 0x8839c) + 0x4768,*(int *)(puVar47 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar47 + 0x8839c) + 0x4870);" (call_expression "(**(code **)(puVar47 + 0x88ff4))\n                    (*(int *)(puVar47 + 0x8839c) + 0x4768,*(int *)(puVar47 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar47 + 0x8839c) + 0x4870)" (parenthesized_expression "(**(code **)(puVar47 + 0x88ff4))" ( (pointer_expression "**(code **)(puVar47 + 0x88ff4)" * (pointer_expression "*(code **)(puVar47 + 0x88ff4)" * (cast_expression "(code **)(puVar47 + 0x88ff4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88ff4)" ( (binary_expression "puVar47 + 0x88ff4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar47 + 0x8839c) + 0x4768,*(int *)(puVar47 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar47 + 0x8839c) + 0x4870)" ( (binary_expression "*(int *)(puVar47 + 0x8839c) + 0x4768" (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar47 + 0x8839c) + 0x43dc" (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar47 + 0x8839c) + 0x4870" (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0008a14c:\n          pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                      (*(int *)(puVar47 + 0x8839c) + 0x45d8,psVar45);" statement_identifier : (expression_statement "pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                      (*(int *)(puVar47 + 0x8839c) + 0x45d8,psVar45);" (assignment_expression "pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                      (*(int *)(puVar47 + 0x8839c) + 0x45d8,psVar45)" identifier = (cast_expression "(char *)(**(code **)(puVar47 + 0x8844c))\n                                      (*(int *)(puVar47 + 0x8839c) + 0x45d8,psVar45)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar47 + 0x8844c))\n                                      (*(int *)(puVar47 + 0x8839c) + 0x45d8,psVar45)" (parenthesized_expression "(**(code **)(puVar47 + 0x8844c))" ( (pointer_expression "**(code **)(puVar47 + 0x8844c)" * (pointer_expression "*(code **)(puVar47 + 0x8844c)" * (cast_expression "(code **)(puVar47 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x8844c)" ( (binary_expression "puVar47 + 0x8844c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar47 + 0x8839c) + 0x45d8,psVar45)" ( (binary_expression "*(int *)(puVar47 + 0x8839c) + 0x45d8" (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" identifier + number_literal) )))) + number_literal) , identifier ))))) ;)) }))) (expression_statement "share_disconnect(cs_00,pcVar17);" (call_expression "share_disconnect(cs_00,pcVar17)" identifier (argument_list "(cs_00,pcVar17)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar47 + 0x88394))(pcVar17);" (call_expression "(**(code **)(puVar47 + 0x88394))(pcVar17)" (parenthesized_expression "(**(code **)(puVar47 + 0x88394))" ( (pointer_expression "**(code **)(puVar47 + 0x88394)" * (pointer_expression "*(code **)(puVar47 + 0x88394)" * (cast_expression "(code **)(puVar47 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88394)" ( (binary_expression "puVar47 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(pcVar17)" ( 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_000893ac;" goto statement_identifier ;) })) (expression_statement "pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                  (*(int *)(puVar47 + 0x8839c) + 0x4544,iVar28);" (assignment_expression "pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))\n                                  (*(int *)(puVar47 + 0x8839c) + 0x4544,iVar28)" identifier = (cast_expression "(char *)(**(code **)(puVar47 + 0x8844c))\n                                  (*(int *)(puVar47 + 0x8839c) + 0x4544,iVar28)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar47 + 0x8844c))\n                                  (*(int *)(puVar47 + 0x8839c) + 0x4544,iVar28)" (parenthesized_expression "(**(code **)(puVar47 + 0x8844c))" ( (pointer_expression "**(code **)(puVar47 + 0x8844c)" * (pointer_expression "*(code **)(puVar47 + 0x8844c)" * (cast_expression "(code **)(puVar47 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x8844c)" ( (binary_expression "puVar47 + 0x8844c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar47 + 0x8839c) + 0x4544,iVar28)" ( (binary_expression "*(int *)(puVar47 + 0x8839c) + 0x4544" (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" identifier + number_literal) )))) + number_literal) , identifier ))))) ;) (labeled_statement "LAB_000890b4:\n      share_disconnect(cs_00,pcVar17);" statement_identifier : (expression_statement "share_disconnect(cs_00,pcVar17);" (call_expression "share_disconnect(cs_00,pcVar17)" identifier (argument_list "(cs_00,pcVar17)" ( identifier , identifier ))) ;)) (expression_statement "(**(code **)(puVar47 + 0x88394))(pcVar17);" (call_expression "(**(code **)(puVar47 + 0x88394))(pcVar17)" (parenthesized_expression "(**(code **)(puVar47 + 0x88394))" ( (pointer_expression "**(code **)(puVar47 + 0x88394)" * (pointer_expression "*(code **)(puVar47 + 0x88394)" * (cast_expression "(code **)(puVar47 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88394)" ( (binary_expression "puVar47 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(pcVar17)" ( identifier ))) ;) (expression_statement "unaff_s5 = pbVar33;" (assignment_expression "unaff_s5 = pbVar33" identifier = identifier) ;) (labeled_statement "LAB_000890e0:\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 "uVar36 = cs_00->recvlen;" (assignment_expression "uVar36 = cs_00->recvlen" identifier = (field_expression "cs_00->recvlen" identifier -> field_identifier)) ;) (expression_statement "bVar31 = *pbVar33;" (assignment_expression "bVar31 = *pbVar33" identifier = (pointer_expression "*pbVar33" * identifier)) ;) (expression_statement "pbVar40 = pbVar16 + -1;" (assignment_expression "pbVar40 = pbVar16 + -1" identifier = (binary_expression "pbVar16 + -1" identifier + number_literal)) ;) (expression_statement "pbVar42 = pbVar33 + 1;" (assignment_expression "pbVar42 = pbVar33 + 1" identifier = (binary_expression "pbVar33 + 1" identifier + number_literal)) ;) (if_statement "if (bVar31 == 10) {\nLAB_0008942c:\n    pbVar33 = pbVar42;\n    if (0x2d < uVar36) {\n      psVar45 = (ssh_sharing_connstate *)cs_00->recvbuf;\n      iVar28 = (**(code **)(puVar47 + 0x894d4))(psVar45,*(int *)(puVar47 + 0x8839c) + 0x4890,0x2e);\n      if (iVar28 == 0) {\n        if ((0 < (int)uVar36) && (cs_00->recvbuf[uVar36 - 1] == '\r')) {\n          cs_00->recvlen = uVar36 - 1;\n          uVar36 = uVar36 - 1;\n        }\n        (**(code **)(puVar47 + 0x88b68))\n                  (cs_00->parent->ssh,cs_00->id,*(int *)(puVar47 + 0x8839c) + 0x4524,uVar36,psVar45)\n        ;\n        cs_00->got_verstring = 1;\n        cs_00->recvlen = 0;\n        goto LAB_000893ac;\n      }\n    }\n    pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))(*(int *)(puVar47 + 0x8839c) + 0x44f4);\n    goto LAB_000890b4;\n  }" if (parenthesized_expression "(bVar31 == 10)" ( (binary_expression "bVar31 == 10" identifier == number_literal) )) (compound_statement "{\nLAB_0008942c:\n    pbVar33 = pbVar42;\n    if (0x2d < uVar36) {\n      psVar45 = (ssh_sharing_connstate *)cs_00->recvbuf;\n      iVar28 = (**(code **)(puVar47 + 0x894d4))(psVar45,*(int *)(puVar47 + 0x8839c) + 0x4890,0x2e);\n      if (iVar28 == 0) {\n        if ((0 < (int)uVar36) && (cs_00->recvbuf[uVar36 - 1] == '\r')) {\n          cs_00->recvlen = uVar36 - 1;\n          uVar36 = uVar36 - 1;\n        }\n        (**(code **)(puVar47 + 0x88b68))\n                  (cs_00->parent->ssh,cs_00->id,*(int *)(puVar47 + 0x8839c) + 0x4524,uVar36,psVar45)\n        ;\n        cs_00->got_verstring = 1;\n        cs_00->recvlen = 0;\n        goto LAB_000893ac;\n      }\n    }\n    pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))(*(int *)(puVar47 + 0x8839c) + 0x44f4);\n    goto LAB_000890b4;\n  }" { (labeled_statement "LAB_0008942c:\n    pbVar33 = pbVar42;" statement_identifier : (expression_statement "pbVar33 = pbVar42;" (assignment_expression "pbVar33 = pbVar42" identifier = identifier) ;)) (if_statement "if (0x2d < uVar36) {\n      psVar45 = (ssh_sharing_connstate *)cs_00->recvbuf;\n      iVar28 = (**(code **)(puVar47 + 0x894d4))(psVar45,*(int *)(puVar47 + 0x8839c) + 0x4890,0x2e);\n      if (iVar28 == 0) {\n        if ((0 < (int)uVar36) && (cs_00->recvbuf[uVar36 - 1] == '\r')) {\n          cs_00->recvlen = uVar36 - 1;\n          uVar36 = uVar36 - 1;\n        }\n        (**(code **)(puVar47 + 0x88b68))\n                  (cs_00->parent->ssh,cs_00->id,*(int *)(puVar47 + 0x8839c) + 0x4524,uVar36,psVar45)\n        ;\n        cs_00->got_verstring = 1;\n        cs_00->recvlen = 0;\n        goto LAB_000893ac;\n      }\n    }" if (parenthesized_expression "(0x2d < uVar36)" ( (binary_expression "0x2d < uVar36" number_literal < identifier) )) (compound_statement "{\n      psVar45 = (ssh_sharing_connstate *)cs_00->recvbuf;\n      iVar28 = (**(code **)(puVar47 + 0x894d4))(psVar45,*(int *)(puVar47 + 0x8839c) + 0x4890,0x2e);\n      if (iVar28 == 0) {\n        if ((0 < (int)uVar36) && (cs_00->recvbuf[uVar36 - 1] == '\r')) {\n          cs_00->recvlen = uVar36 - 1;\n          uVar36 = uVar36 - 1;\n        }\n        (**(code **)(puVar47 + 0x88b68))\n                  (cs_00->parent->ssh,cs_00->id,*(int *)(puVar47 + 0x8839c) + 0x4524,uVar36,psVar45)\n        ;\n        cs_00->got_verstring = 1;\n        cs_00->recvlen = 0;\n        goto LAB_000893ac;\n      }\n    }" { (expression_statement "psVar45 = (ssh_sharing_connstate *)cs_00->recvbuf;" (assignment_expression "psVar45 = (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 "iVar28 = (**(code **)(puVar47 + 0x894d4))(psVar45,*(int *)(puVar47 + 0x8839c) + 0x4890,0x2e);" (assignment_expression "iVar28 = (**(code **)(puVar47 + 0x894d4))(psVar45,*(int *)(puVar47 + 0x8839c) + 0x4890,0x2e)" identifier = (call_expression "(**(code **)(puVar47 + 0x894d4))(psVar45,*(int *)(puVar47 + 0x8839c) + 0x4890,0x2e)" (parenthesized_expression "(**(code **)(puVar47 + 0x894d4))" ( (pointer_expression "**(code **)(puVar47 + 0x894d4)" * (pointer_expression "*(code **)(puVar47 + 0x894d4)" * (cast_expression "(code **)(puVar47 + 0x894d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x894d4)" ( (binary_expression "puVar47 + 0x894d4" identifier + number_literal) ))))) )) (argument_list "(psVar45,*(int *)(puVar47 + 0x8839c) + 0x4890,0x2e)" ( identifier , (binary_expression "*(int *)(puVar47 + 0x8839c) + 0x4890" (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (if_statement "if (iVar28 == 0) {\n        if ((0 < (int)uVar36) && (cs_00->recvbuf[uVar36 - 1] == '\r')) {\n          cs_00->recvlen = uVar36 - 1;\n          uVar36 = uVar36 - 1;\n        }\n        (**(code **)(puVar47 + 0x88b68))\n                  (cs_00->parent->ssh,cs_00->id,*(int *)(puVar47 + 0x8839c) + 0x4524,uVar36,psVar45)\n        ;\n        cs_00->got_verstring = 1;\n        cs_00->recvlen = 0;\n        goto LAB_000893ac;\n      }" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (compound_statement "{\n        if ((0 < (int)uVar36) && (cs_00->recvbuf[uVar36 - 1] == '\r')) {\n          cs_00->recvlen = uVar36 - 1;\n          uVar36 = uVar36 - 1;\n        }\n        (**(code **)(puVar47 + 0x88b68))\n                  (cs_00->parent->ssh,cs_00->id,*(int *)(puVar47 + 0x8839c) + 0x4524,uVar36,psVar45)\n        ;\n        cs_00->got_verstring = 1;\n        cs_00->recvlen = 0;\n        goto LAB_000893ac;\n      }" { (if_statement "if ((0 < (int)uVar36) && (cs_00->recvbuf[uVar36 - 1] == '\r')) {\n          cs_00->recvlen = uVar36 - 1;\n          uVar36 = uVar36 - 1;\n        }" if (parenthesized_expression "((0 < (int)uVar36) && (cs_00->recvbuf[uVar36 - 1] == '\r'))" ( (binary_expression "(0 < (int)uVar36) && (cs_00->recvbuf[uVar36 - 1] == '\r')" (parenthesized_expression "(0 < (int)uVar36)" ( (binary_expression "0 < (int)uVar36" number_literal < (cast_expression "(int)uVar36" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(cs_00->recvbuf[uVar36 - 1] == '\r')" ( (binary_expression "cs_00->recvbuf[uVar36 - 1] == '\r'" (subscript_expression "cs_00->recvbuf[uVar36 - 1]" (field_expression "cs_00->recvbuf" identifier -> field_identifier) [ (binary_expression "uVar36 - 1" identifier - number_literal) ]) == (char_literal "'\r'" ' escape_sequence ')) ))) )) (compound_statement "{\n          cs_00->recvlen = uVar36 - 1;\n          uVar36 = uVar36 - 1;\n        }" { (expression_statement "cs_00->recvlen = uVar36 - 1;" (assignment_expression "cs_00->recvlen = uVar36 - 1" (field_expression "cs_00->recvlen" identifier -> field_identifier) = (binary_expression "uVar36 - 1" identifier - number_literal)) ;) (expression_statement "uVar36 = uVar36 - 1;" (assignment_expression "uVar36 = uVar36 - 1" identifier = (binary_expression "uVar36 - 1" identifier - number_literal)) ;) })) (expression_statement "(**(code **)(puVar47 + 0x88b68))\n                  (cs_00->parent->ssh,cs_00->id,*(int *)(puVar47 + 0x8839c) + 0x4524,uVar36,psVar45)\n        ;" (call_expression "(**(code **)(puVar47 + 0x88b68))\n                  (cs_00->parent->ssh,cs_00->id,*(int *)(puVar47 + 0x8839c) + 0x4524,uVar36,psVar45)" (parenthesized_expression "(**(code **)(puVar47 + 0x88b68))" ( (pointer_expression "**(code **)(puVar47 + 0x88b68)" * (pointer_expression "*(code **)(puVar47 + 0x88b68)" * (cast_expression "(code **)(puVar47 + 0x88b68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x88b68)" ( (binary_expression "puVar47 + 0x88b68" identifier + number_literal) ))))) )) (argument_list "(cs_00->parent->ssh,cs_00->id,*(int *)(puVar47 + 0x8839c) + 0x4524,uVar36,psVar45)" ( (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 *)(puVar47 + 0x8839c) + 0x4524" (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" 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_000893ac;" goto statement_identifier ;) })) })) (expression_statement "pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))(*(int *)(puVar47 + 0x8839c) + 0x44f4);" (assignment_expression "pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))(*(int *)(puVar47 + 0x8839c) + 0x44f4)" identifier = (cast_expression "(char *)(**(code **)(puVar47 + 0x8844c))(*(int *)(puVar47 + 0x8839c) + 0x44f4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar47 + 0x8844c))(*(int *)(puVar47 + 0x8839c) + 0x44f4)" (parenthesized_expression "(**(code **)(puVar47 + 0x8844c))" ( (pointer_expression "**(code **)(puVar47 + 0x8844c)" * (pointer_expression "*(code **)(puVar47 + 0x8844c)" * (cast_expression "(code **)(puVar47 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x8844c)" ( (binary_expression "puVar47 + 0x8844c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar47 + 0x8839c) + 0x44f4)" ( (binary_expression "*(int *)(puVar47 + 0x8839c) + 0x44f4" (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" identifier + number_literal) )))) + number_literal) ))))) ;) (goto_statement "goto LAB_000890b4;" goto statement_identifier ;) })) (expression_statement "pbVar41 = pbVar16;" (assignment_expression "pbVar41 = pbVar16" identifier = identifier) ;) (if_statement "if (uVar36 < 0x4010) {\n    uVar36 = uVar36 + 1;\n    pbVar34 = pbVar33 + (int)pbVar40;\n    pbVar40 = pbVar16;\n    unaff_s5 = pbVar42;\n    do {\n      cs_00->recvlen = uVar36;\n      cs_00->recvbuf[uVar36 - 1] = bVar31;\n      if (pbVar33 + (int)pbVar16 == unaff_s5) goto LAB_00089094;\n      pbVar40 = pbVar34 + -(int)unaff_s5;\n      pbVar42 = unaff_s5 + 1;\n      bVar31 = *unaff_s5;\n      if (bVar31 == 10) goto LAB_0008942c;\n      uVar36 = uVar36 + 1;\n      pbVar41 = pbVar40;\n      unaff_s5 = pbVar42;\n    } while (uVar36 != 0x4011);\n  }" if (parenthesized_expression "(uVar36 < 0x4010)" ( (binary_expression "uVar36 < 0x4010" identifier < number_literal) )) (compound_statement "{\n    uVar36 = uVar36 + 1;\n    pbVar34 = pbVar33 + (int)pbVar40;\n    pbVar40 = pbVar16;\n    unaff_s5 = pbVar42;\n    do {\n      cs_00->recvlen = uVar36;\n      cs_00->recvbuf[uVar36 - 1] = bVar31;\n      if (pbVar33 + (int)pbVar16 == unaff_s5) goto LAB_00089094;\n      pbVar40 = pbVar34 + -(int)unaff_s5;\n      pbVar42 = unaff_s5 + 1;\n      bVar31 = *unaff_s5;\n      if (bVar31 == 10) goto LAB_0008942c;\n      uVar36 = uVar36 + 1;\n      pbVar41 = pbVar40;\n      unaff_s5 = pbVar42;\n    } while (uVar36 != 0x4011);\n  }" { (expression_statement "uVar36 = uVar36 + 1;" (assignment_expression "uVar36 = uVar36 + 1" identifier = (binary_expression "uVar36 + 1" identifier + number_literal)) ;) (expression_statement "pbVar34 = pbVar33 + (int)pbVar40;" (assignment_expression "pbVar34 = pbVar33 + (int)pbVar40" identifier = (binary_expression "pbVar33 + (int)pbVar40" identifier + (cast_expression "(int)pbVar40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pbVar40 = pbVar16;" (assignment_expression "pbVar40 = pbVar16" identifier = identifier) ;) (expression_statement "unaff_s5 = pbVar42;" (assignment_expression "unaff_s5 = pbVar42" identifier = identifier) ;) (do_statement "do {\n      cs_00->recvlen = uVar36;\n      cs_00->recvbuf[uVar36 - 1] = bVar31;\n      if (pbVar33 + (int)pbVar16 == unaff_s5) goto LAB_00089094;\n      pbVar40 = pbVar34 + -(int)unaff_s5;\n      pbVar42 = unaff_s5 + 1;\n      bVar31 = *unaff_s5;\n      if (bVar31 == 10) goto LAB_0008942c;\n      uVar36 = uVar36 + 1;\n      pbVar41 = pbVar40;\n      unaff_s5 = pbVar42;\n    } while (uVar36 != 0x4011);" do (compound_statement "{\n      cs_00->recvlen = uVar36;\n      cs_00->recvbuf[uVar36 - 1] = bVar31;\n      if (pbVar33 + (int)pbVar16 == unaff_s5) goto LAB_00089094;\n      pbVar40 = pbVar34 + -(int)unaff_s5;\n      pbVar42 = unaff_s5 + 1;\n      bVar31 = *unaff_s5;\n      if (bVar31 == 10) goto LAB_0008942c;\n      uVar36 = uVar36 + 1;\n      pbVar41 = pbVar40;\n      unaff_s5 = pbVar42;\n    }" { (expression_statement "cs_00->recvlen = uVar36;" (assignment_expression "cs_00->recvlen = uVar36" (field_expression "cs_00->recvlen" identifier -> field_identifier) = identifier) ;) (expression_statement "cs_00->recvbuf[uVar36 - 1] = bVar31;" (assignment_expression "cs_00->recvbuf[uVar36 - 1] = bVar31" (subscript_expression "cs_00->recvbuf[uVar36 - 1]" (field_expression "cs_00->recvbuf" identifier -> field_identifier) [ (binary_expression "uVar36 - 1" identifier - number_literal) ]) = identifier) ;) (if_statement "if (pbVar33 + (int)pbVar16 == unaff_s5) goto LAB_00089094;" if (parenthesized_expression "(pbVar33 + (int)pbVar16 == unaff_s5)" ( (binary_expression "pbVar33 + (int)pbVar16 == unaff_s5" (binary_expression "pbVar33 + (int)pbVar16" identifier + (cast_expression "(int)pbVar16" ( (type_descriptor "int" primitive_type) ) identifier)) == identifier) )) (goto_statement "goto LAB_00089094;" goto statement_identifier ;)) (expression_statement "pbVar40 = pbVar34 + -(int)unaff_s5;" (assignment_expression "pbVar40 = pbVar34 + -(int)unaff_s5" identifier = (binary_expression "pbVar34 + -(int)unaff_s5" identifier + (unary_expression "-(int)unaff_s5" - (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "pbVar42 = unaff_s5 + 1;" (assignment_expression "pbVar42 = unaff_s5 + 1" identifier = (binary_expression "unaff_s5 + 1" identifier + number_literal)) ;) (expression_statement "bVar31 = *unaff_s5;" (assignment_expression "bVar31 = *unaff_s5" identifier = (pointer_expression "*unaff_s5" * identifier)) ;) (if_statement "if (bVar31 == 10) goto LAB_0008942c;" if (parenthesized_expression "(bVar31 == 10)" ( (binary_expression "bVar31 == 10" identifier == number_literal) )) (goto_statement "goto LAB_0008942c;" goto statement_identifier ;)) (expression_statement "uVar36 = uVar36 + 1;" (assignment_expression "uVar36 = uVar36 + 1" identifier = (binary_expression "uVar36 + 1" identifier + number_literal)) ;) (expression_statement "pbVar41 = pbVar40;" (assignment_expression "pbVar41 = pbVar40" identifier = identifier) ;) (expression_statement "unaff_s5 = pbVar42;" (assignment_expression "unaff_s5 = pbVar42" identifier = identifier) ;) }) while (parenthesized_expression "(uVar36 != 0x4011)" ( (binary_expression "uVar36 != 0x4011" identifier != number_literal) )) ;) })) (expression_statement "pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))(*(int *)(puVar47 + 0x8839c) + 0x44d4);" (assignment_expression "pcVar17 = (char *)(**(code **)(puVar47 + 0x8844c))(*(int *)(puVar47 + 0x8839c) + 0x44d4)" identifier = (cast_expression "(char *)(**(code **)(puVar47 + 0x8844c))(*(int *)(puVar47 + 0x8839c) + 0x44d4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar47 + 0x8844c))(*(int *)(puVar47 + 0x8839c) + 0x44d4)" (parenthesized_expression "(**(code **)(puVar47 + 0x8844c))" ( (pointer_expression "**(code **)(puVar47 + 0x8844c)" * (pointer_expression "*(code **)(puVar47 + 0x8844c)" * (cast_expression "(code **)(puVar47 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x8844c)" ( (binary_expression "puVar47 + 0x8844c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar47 + 0x8839c) + 0x44d4)" ( (binary_expression "*(int *)(puVar47 + 0x8839c) + 0x44d4" (pointer_expression "*(int *)(puVar47 + 0x8839c)" * (cast_expression "(int *)(puVar47 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x8839c)" ( (binary_expression "puVar47 + 0x8839c" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pbVar40 = pbVar41;" (assignment_expression "pbVar40 = pbVar41" identifier = identifier) ;) (expression_statement "pbVar33 = pbVar42;" (assignment_expression "pbVar33 = pbVar42" identifier = identifier) ;) (goto_statement "goto LAB_000890b4;" goto statement_identifier ;) })))
(translation_unit "void share_xchannel_failure(int param_1,int param_2)\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  undefined4 uVar12;\n  byte ****ppppbVar13;\n  int iVar14;\n  byte ****ppppbVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  byte *pbVar18;\n  undefined4 *puVar19;\n  undefined4 *puVar20;\n  int iVar21;\n  int iVar22;\n  byte bVar26;\n  int iVar23;\n  undefined4 uVar24;\n  undefined4 *puVar25;\n  uint uVar27;\n  byte *pbVar28;\n  byte *pbVar29;\n  uint in_t3;\n  byte *pbVar30;\n  uint uVar31;\n  byte *pbVar32;\n  byte *****pppppbVar33;\n  byte *pbVar34;\n  byte *unaff_s5;\n  byte *****unaff_s6;\n  byte *****pppppbVar35;\n  byte *****pppppbVar36;\n  undefined *puVar37;\n  code *pcVar38;\n  int *piVar39;\n  byte ****local_b0;\n  byte ****local_90;\n  byte ****local_8c;\n  undefined4 local_88;\n  byte ***local_68;\n  int local_64;\n  int local_60;\n  int local_5c;\n  undefined *local_58;\n  undefined4 local_18;\n  int local_14;\n  \n  pppppbVar36 = (byte *****)PTR___stack_chk_guard_00112630;\n  local_18 = *(undefined4 *)(param_2 + 4);\n  pbVar28 = &DAT_00000061;\n  pbVar32 = (byte *)&local_18;\n  local_14 = *(int *)PTR___stack_chk_guard_00112630;\n  (*(code *)PTR_ssh_send_packet_from_downstream_00111acc)\n            (*(undefined4 *)(*(int *)(param_1 + 0xc) + 0x14),*(undefined4 *)(param_1 + 4));\n  *(undefined4 *)(param_2 + 8) = 0;\n  iVar22 = param_1;\n  share_dead_xchannel_respond(param_1,param_2);\n  if ((byte ****)local_14 == *pppppbVar36) {\n    return;\n  }\n  puVar37 = PTR___stack_chk_fail_001122c8;\n  (*(code *)PTR___stack_chk_fail_001122c8)();\n  iVar11 = *(int *)(iVar22 + 0x10);\n  piVar39 = *(int **)(puVar37 + 0x896d4);\n  local_58 = (undefined *)pppppbVar36;\n  local_64 = *piVar39;\n  pbVar34 = pbVar32;\n  local_60 = param_2;\n  local_5c = param_1;\n  if (iVar11 != 0x709) {\n    if (0x709 < iVar11) {\n      if (iVar11 == 0x72e) goto LAB_000893ac;\n      if (iVar11 != 0x73b) goto LAB_000890e0;\n      goto LAB_00088fd4;\n    }\n    if (iVar11 != 0) goto LAB_000890e0;\n    *(undefined4 *)(iVar22 + 0x4030) = 0;\n  }\n  if (pbVar32 == (byte *)0x0) {\nLAB_00089094:\n    *(undefined4 *)(iVar22 + 0x10) = 0x709;\nLAB_000890e4:\n    do {\n      if (local_64 == *piVar39) {\n        return;\n      }\n      (**(code **)(puVar37 + 0x8936c))();\n      pbVar28 = unaff_s5;\nLAB_00089df8:\n      local_68 = *local_b0;\n      FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n      (**(code **)(puVar37 + 0x88394))(unaff_s6);\n      *(undefined4 *)(iVar22 + 0x4030) = 0;\nLAB_000893ac:\n      pbVar32 = pbVar28 + (int)pbVar34;\n      unaff_s5 = pbVar28;\n      do {\n        pbVar34 = pbVar32 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar32) {\n          *(undefined4 *)(iVar22 + 0x10) = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar11 = *(int *)(iVar22 + 0x4030);\n        pbVar28 = unaff_s5 + 1;\n        iVar23 = iVar11 + 1;\n        bVar26 = *unaff_s5;\n        in_t3 = (uint)bVar26;\n        *(int *)(iVar22 + 0x4030) = iVar23;\n        *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n        unaff_s5 = pbVar28;\n      } while (iVar23 < 4);\n      iVar11 = (**(code **)(puVar37 + 0x884fc))(*(int *)(iVar22 + 0x20) + 4);\n      *(int *)(iVar22 + 0x1c) = iVar11;\n      if (iVar11 - 5U < 0x400c) {\n        unaff_s6 = *(byte ******)(iVar22 + 0x4030);\n        while (unaff_s5 = pbVar28, (int)unaff_s6 < iVar11) {\nLAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar11 = *(int *)(iVar22 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar26 = *pbVar28;\n          pbVar28 = pbVar28 + 1;\n          unaff_s6 = (byte *****)(iVar11 + 1);\n          *(byte ******)(iVar22 + 0x4030) = unaff_s6;\n          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n          iVar11 = *(int *)(iVar22 + 0x1c);\n        }\n        bVar26 = *(byte *)(iVar22 + 0x24);\n        iVar11 = iVar22 + 0x25;\n        pbVar32 = (byte *)((int)unaff_s6 + -5);\n        if (bVar26 != 0x5a) {\n          if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\n        iVar23 = *(int *)(puVar37 + 0x8839c);\n        if (3 < (int)pbVar32) {\n          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n          if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);\n          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);\n          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);\n          unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);\n          uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);\n          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);\n          *pbVar18 = (byte)((uint)uVar12 >> 0x10);\n          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);\n          *pbVar30 = (byte)uVar12;\n          (**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);\nLAB_00089674:\n        while (iVar11 == 0) {\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }\n        FUN_000887e0(iVar22,iVar11);\n        (**(code **)(puVar37 + 0x88394))(iVar11);\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n      uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11);\nLAB_000890b4:\n      FUN_000887e0(iVar22,uVar12);\n      (**(code **)(puVar37 + 0x88394))(uVar12);\n      unaff_s5 = pbVar28;\nLAB_000890e0:\n      *(undefined4 *)(iVar22 + 0x10) = 0;\n    } while( true );\n  }\n  uVar31 = *(uint *)(iVar22 + 0x4030);\n  bVar26 = *pbVar28;\n  pbVar34 = pbVar32 + -1;\n  pbVar30 = pbVar28 + 1;\n  if (bVar26 == 10) {\nLAB_0008942c:\n    pbVar28 = pbVar30;\n    if (0x2d < uVar31) {\n      pppppbVar36 = (byte *****)(iVar22 + 0x20);\n      iVar11 = (**(code **)(puVar37 + 0x894d4))\n                         (pppppbVar36,*(int *)(puVar37 + 0x8839c) + 0x4890,0x2e);\n      if (iVar11 == 0) {\n        if ((0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')) {\n          *(uint *)(iVar22 + 0x4030) = uVar27;\n          uVar31 = uVar27;\n        }\n        (**(code **)(puVar37 + 0x88b68))\n                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36);\n        *(undefined4 *)(iVar22 + 0x18) = 1;\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n    }\n    uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44f4);\n    goto LAB_000890b4;\n  }\n  pbVar18 = pbVar32;\n  if (uVar31 < 0x4010) {\n    uVar31 = uVar31 + 1;\n    pbVar29 = pbVar28 + (int)pbVar34;\n    pbVar34 = pbVar32;\n    unaff_s5 = pbVar30;\n    do {\n      *(uint *)(iVar22 + 0x4030) = uVar31;\n      *(byte *)(iVar22 + uVar31 + 0x1f) = bVar26;\n      if (pbVar28 + (int)pbVar32 == unaff_s5) goto LAB_00089094;\n      pbVar34 = pbVar29 + -(int)unaff_s5;\n      pbVar30 = unaff_s5 + 1;\n      bVar26 = *unaff_s5;\n      if (bVar26 == 10) goto LAB_0008942c;\n      uVar31 = uVar31 + 1;\n      pbVar18 = pbVar34;\n      unaff_s5 = pbVar30;\n    } while (uVar31 != 0x4011);\n  }\n  uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44d4);\n  pbVar34 = pbVar18;\n  pbVar28 = pbVar30;\n  goto LAB_000890b4;\n}\n\n" (function_definition "void share_xchannel_failure(int param_1,int param_2)\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  undefined4 uVar12;\n  byte ****ppppbVar13;\n  int iVar14;\n  byte ****ppppbVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  byte *pbVar18;\n  undefined4 *puVar19;\n  undefined4 *puVar20;\n  int iVar21;\n  int iVar22;\n  byte bVar26;\n  int iVar23;\n  undefined4 uVar24;\n  undefined4 *puVar25;\n  uint uVar27;\n  byte *pbVar28;\n  byte *pbVar29;\n  uint in_t3;\n  byte *pbVar30;\n  uint uVar31;\n  byte *pbVar32;\n  byte *****pppppbVar33;\n  byte *pbVar34;\n  byte *unaff_s5;\n  byte *****unaff_s6;\n  byte *****pppppbVar35;\n  byte *****pppppbVar36;\n  undefined *puVar37;\n  code *pcVar38;\n  int *piVar39;\n  byte ****local_b0;\n  byte ****local_90;\n  byte ****local_8c;\n  undefined4 local_88;\n  byte ***local_68;\n  int local_64;\n  int local_60;\n  int local_5c;\n  undefined *local_58;\n  undefined4 local_18;\n  int local_14;\n  \n  pppppbVar36 = (byte *****)PTR___stack_chk_guard_00112630;\n  local_18 = *(undefined4 *)(param_2 + 4);\n  pbVar28 = &DAT_00000061;\n  pbVar32 = (byte *)&local_18;\n  local_14 = *(int *)PTR___stack_chk_guard_00112630;\n  (*(code *)PTR_ssh_send_packet_from_downstream_00111acc)\n            (*(undefined4 *)(*(int *)(param_1 + 0xc) + 0x14),*(undefined4 *)(param_1 + 4));\n  *(undefined4 *)(param_2 + 8) = 0;\n  iVar22 = param_1;\n  share_dead_xchannel_respond(param_1,param_2);\n  if ((byte ****)local_14 == *pppppbVar36) {\n    return;\n  }\n  puVar37 = PTR___stack_chk_fail_001122c8;\n  (*(code *)PTR___stack_chk_fail_001122c8)();\n  iVar11 = *(int *)(iVar22 + 0x10);\n  piVar39 = *(int **)(puVar37 + 0x896d4);\n  local_58 = (undefined *)pppppbVar36;\n  local_64 = *piVar39;\n  pbVar34 = pbVar32;\n  local_60 = param_2;\n  local_5c = param_1;\n  if (iVar11 != 0x709) {\n    if (0x709 < iVar11) {\n      if (iVar11 == 0x72e) goto LAB_000893ac;\n      if (iVar11 != 0x73b) goto LAB_000890e0;\n      goto LAB_00088fd4;\n    }\n    if (iVar11 != 0) goto LAB_000890e0;\n    *(undefined4 *)(iVar22 + 0x4030) = 0;\n  }\n  if (pbVar32 == (byte *)0x0) {\nLAB_00089094:\n    *(undefined4 *)(iVar22 + 0x10) = 0x709;\nLAB_000890e4:\n    do {\n      if (local_64 == *piVar39) {\n        return;\n      }\n      (**(code **)(puVar37 + 0x8936c))();\n      pbVar28 = unaff_s5;\nLAB_00089df8:\n      local_68 = *local_b0;\n      FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n      (**(code **)(puVar37 + 0x88394))(unaff_s6);\n      *(undefined4 *)(iVar22 + 0x4030) = 0;\nLAB_000893ac:\n      pbVar32 = pbVar28 + (int)pbVar34;\n      unaff_s5 = pbVar28;\n      do {\n        pbVar34 = pbVar32 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar32) {\n          *(undefined4 *)(iVar22 + 0x10) = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar11 = *(int *)(iVar22 + 0x4030);\n        pbVar28 = unaff_s5 + 1;\n        iVar23 = iVar11 + 1;\n        bVar26 = *unaff_s5;\n        in_t3 = (uint)bVar26;\n        *(int *)(iVar22 + 0x4030) = iVar23;\n        *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n        unaff_s5 = pbVar28;\n      } while (iVar23 < 4);\n      iVar11 = (**(code **)(puVar37 + 0x884fc))(*(int *)(iVar22 + 0x20) + 4);\n      *(int *)(iVar22 + 0x1c) = iVar11;\n      if (iVar11 - 5U < 0x400c) {\n        unaff_s6 = *(byte ******)(iVar22 + 0x4030);\n        while (unaff_s5 = pbVar28, (int)unaff_s6 < iVar11) {\nLAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar11 = *(int *)(iVar22 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar26 = *pbVar28;\n          pbVar28 = pbVar28 + 1;\n          unaff_s6 = (byte *****)(iVar11 + 1);\n          *(byte ******)(iVar22 + 0x4030) = unaff_s6;\n          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n          iVar11 = *(int *)(iVar22 + 0x1c);\n        }\n        bVar26 = *(byte *)(iVar22 + 0x24);\n        iVar11 = iVar22 + 0x25;\n        pbVar32 = (byte *)((int)unaff_s6 + -5);\n        if (bVar26 != 0x5a) {\n          if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\n        iVar23 = *(int *)(puVar37 + 0x8839c);\n        if (3 < (int)pbVar32) {\n          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n          if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);\n          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);\n          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);\n          unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);\n          uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);\n          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);\n          *pbVar18 = (byte)((uint)uVar12 >> 0x10);\n          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);\n          *pbVar30 = (byte)uVar12;\n          (**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);\nLAB_00089674:\n        while (iVar11 == 0) {\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }\n        FUN_000887e0(iVar22,iVar11);\n        (**(code **)(puVar37 + 0x88394))(iVar11);\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n      uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11);\nLAB_000890b4:\n      FUN_000887e0(iVar22,uVar12);\n      (**(code **)(puVar37 + 0x88394))(uVar12);\n      unaff_s5 = pbVar28;\nLAB_000890e0:\n      *(undefined4 *)(iVar22 + 0x10) = 0;\n    } while( true );\n  }\n  uVar31 = *(uint *)(iVar22 + 0x4030);\n  bVar26 = *pbVar28;\n  pbVar34 = pbVar32 + -1;\n  pbVar30 = pbVar28 + 1;\n  if (bVar26 == 10) {\nLAB_0008942c:\n    pbVar28 = pbVar30;\n    if (0x2d < uVar31) {\n      pppppbVar36 = (byte *****)(iVar22 + 0x20);\n      iVar11 = (**(code **)(puVar37 + 0x894d4))\n                         (pppppbVar36,*(int *)(puVar37 + 0x8839c) + 0x4890,0x2e);\n      if (iVar11 == 0) {\n        if ((0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')) {\n          *(uint *)(iVar22 + 0x4030) = uVar27;\n          uVar31 = uVar27;\n        }\n        (**(code **)(puVar37 + 0x88b68))\n                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36);\n        *(undefined4 *)(iVar22 + 0x18) = 1;\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n    }\n    uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44f4);\n    goto LAB_000890b4;\n  }\n  pbVar18 = pbVar32;\n  if (uVar31 < 0x4010) {\n    uVar31 = uVar31 + 1;\n    pbVar29 = pbVar28 + (int)pbVar34;\n    pbVar34 = pbVar32;\n    unaff_s5 = pbVar30;\n    do {\n      *(uint *)(iVar22 + 0x4030) = uVar31;\n      *(byte *)(iVar22 + uVar31 + 0x1f) = bVar26;\n      if (pbVar28 + (int)pbVar32 == unaff_s5) goto LAB_00089094;\n      pbVar34 = pbVar29 + -(int)unaff_s5;\n      pbVar30 = unaff_s5 + 1;\n      bVar26 = *unaff_s5;\n      if (bVar26 == 10) goto LAB_0008942c;\n      uVar31 = uVar31 + 1;\n      pbVar18 = pbVar34;\n      unaff_s5 = pbVar30;\n    } while (uVar31 != 0x4011);\n  }\n  uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44d4);\n  pbVar34 = pbVar18;\n  pbVar28 = pbVar30;\n  goto LAB_000890b4;\n}" primitive_type (function_declarator "share_xchannel_failure(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" 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  undefined4 uVar12;\n  byte ****ppppbVar13;\n  int iVar14;\n  byte ****ppppbVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  byte *pbVar18;\n  undefined4 *puVar19;\n  undefined4 *puVar20;\n  int iVar21;\n  int iVar22;\n  byte bVar26;\n  int iVar23;\n  undefined4 uVar24;\n  undefined4 *puVar25;\n  uint uVar27;\n  byte *pbVar28;\n  byte *pbVar29;\n  uint in_t3;\n  byte *pbVar30;\n  uint uVar31;\n  byte *pbVar32;\n  byte *****pppppbVar33;\n  byte *pbVar34;\n  byte *unaff_s5;\n  byte *****unaff_s6;\n  byte *****pppppbVar35;\n  byte *****pppppbVar36;\n  undefined *puVar37;\n  code *pcVar38;\n  int *piVar39;\n  byte ****local_b0;\n  byte ****local_90;\n  byte ****local_8c;\n  undefined4 local_88;\n  byte ***local_68;\n  int local_64;\n  int local_60;\n  int local_5c;\n  undefined *local_58;\n  undefined4 local_18;\n  int local_14;\n  \n  pppppbVar36 = (byte *****)PTR___stack_chk_guard_00112630;\n  local_18 = *(undefined4 *)(param_2 + 4);\n  pbVar28 = &DAT_00000061;\n  pbVar32 = (byte *)&local_18;\n  local_14 = *(int *)PTR___stack_chk_guard_00112630;\n  (*(code *)PTR_ssh_send_packet_from_downstream_00111acc)\n            (*(undefined4 *)(*(int *)(param_1 + 0xc) + 0x14),*(undefined4 *)(param_1 + 4));\n  *(undefined4 *)(param_2 + 8) = 0;\n  iVar22 = param_1;\n  share_dead_xchannel_respond(param_1,param_2);\n  if ((byte ****)local_14 == *pppppbVar36) {\n    return;\n  }\n  puVar37 = PTR___stack_chk_fail_001122c8;\n  (*(code *)PTR___stack_chk_fail_001122c8)();\n  iVar11 = *(int *)(iVar22 + 0x10);\n  piVar39 = *(int **)(puVar37 + 0x896d4);\n  local_58 = (undefined *)pppppbVar36;\n  local_64 = *piVar39;\n  pbVar34 = pbVar32;\n  local_60 = param_2;\n  local_5c = param_1;\n  if (iVar11 != 0x709) {\n    if (0x709 < iVar11) {\n      if (iVar11 == 0x72e) goto LAB_000893ac;\n      if (iVar11 != 0x73b) goto LAB_000890e0;\n      goto LAB_00088fd4;\n    }\n    if (iVar11 != 0) goto LAB_000890e0;\n    *(undefined4 *)(iVar22 + 0x4030) = 0;\n  }\n  if (pbVar32 == (byte *)0x0) {\nLAB_00089094:\n    *(undefined4 *)(iVar22 + 0x10) = 0x709;\nLAB_000890e4:\n    do {\n      if (local_64 == *piVar39) {\n        return;\n      }\n      (**(code **)(puVar37 + 0x8936c))();\n      pbVar28 = unaff_s5;\nLAB_00089df8:\n      local_68 = *local_b0;\n      FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n      (**(code **)(puVar37 + 0x88394))(unaff_s6);\n      *(undefined4 *)(iVar22 + 0x4030) = 0;\nLAB_000893ac:\n      pbVar32 = pbVar28 + (int)pbVar34;\n      unaff_s5 = pbVar28;\n      do {\n        pbVar34 = pbVar32 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar32) {\n          *(undefined4 *)(iVar22 + 0x10) = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar11 = *(int *)(iVar22 + 0x4030);\n        pbVar28 = unaff_s5 + 1;\n        iVar23 = iVar11 + 1;\n        bVar26 = *unaff_s5;\n        in_t3 = (uint)bVar26;\n        *(int *)(iVar22 + 0x4030) = iVar23;\n        *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n        unaff_s5 = pbVar28;\n      } while (iVar23 < 4);\n      iVar11 = (**(code **)(puVar37 + 0x884fc))(*(int *)(iVar22 + 0x20) + 4);\n      *(int *)(iVar22 + 0x1c) = iVar11;\n      if (iVar11 - 5U < 0x400c) {\n        unaff_s6 = *(byte ******)(iVar22 + 0x4030);\n        while (unaff_s5 = pbVar28, (int)unaff_s6 < iVar11) {\nLAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar11 = *(int *)(iVar22 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar26 = *pbVar28;\n          pbVar28 = pbVar28 + 1;\n          unaff_s6 = (byte *****)(iVar11 + 1);\n          *(byte ******)(iVar22 + 0x4030) = unaff_s6;\n          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n          iVar11 = *(int *)(iVar22 + 0x1c);\n        }\n        bVar26 = *(byte *)(iVar22 + 0x24);\n        iVar11 = iVar22 + 0x25;\n        pbVar32 = (byte *)((int)unaff_s6 + -5);\n        if (bVar26 != 0x5a) {\n          if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\n        iVar23 = *(int *)(puVar37 + 0x8839c);\n        if (3 < (int)pbVar32) {\n          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n          if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);\n          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);\n          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);\n          unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);\n          uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);\n          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);\n          *pbVar18 = (byte)((uint)uVar12 >> 0x10);\n          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);\n          *pbVar30 = (byte)uVar12;\n          (**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);\nLAB_00089674:\n        while (iVar11 == 0) {\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }\n        FUN_000887e0(iVar22,iVar11);\n        (**(code **)(puVar37 + 0x88394))(iVar11);\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n      uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11);\nLAB_000890b4:\n      FUN_000887e0(iVar22,uVar12);\n      (**(code **)(puVar37 + 0x88394))(uVar12);\n      unaff_s5 = pbVar28;\nLAB_000890e0:\n      *(undefined4 *)(iVar22 + 0x10) = 0;\n    } while( true );\n  }\n  uVar31 = *(uint *)(iVar22 + 0x4030);\n  bVar26 = *pbVar28;\n  pbVar34 = pbVar32 + -1;\n  pbVar30 = pbVar28 + 1;\n  if (bVar26 == 10) {\nLAB_0008942c:\n    pbVar28 = pbVar30;\n    if (0x2d < uVar31) {\n      pppppbVar36 = (byte *****)(iVar22 + 0x20);\n      iVar11 = (**(code **)(puVar37 + 0x894d4))\n                         (pppppbVar36,*(int *)(puVar37 + 0x8839c) + 0x4890,0x2e);\n      if (iVar11 == 0) {\n        if ((0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')) {\n          *(uint *)(iVar22 + 0x4030) = uVar27;\n          uVar31 = uVar27;\n        }\n        (**(code **)(puVar37 + 0x88b68))\n                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36);\n        *(undefined4 *)(iVar22 + 0x18) = 1;\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n    }\n    uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44f4);\n    goto LAB_000890b4;\n  }\n  pbVar18 = pbVar32;\n  if (uVar31 < 0x4010) {\n    uVar31 = uVar31 + 1;\n    pbVar29 = pbVar28 + (int)pbVar34;\n    pbVar34 = pbVar32;\n    unaff_s5 = pbVar30;\n    do {\n      *(uint *)(iVar22 + 0x4030) = uVar31;\n      *(byte *)(iVar22 + uVar31 + 0x1f) = bVar26;\n      if (pbVar28 + (int)pbVar32 == unaff_s5) goto LAB_00089094;\n      pbVar34 = pbVar29 + -(int)unaff_s5;\n      pbVar30 = unaff_s5 + 1;\n      bVar26 = *unaff_s5;\n      if (bVar26 == 10) goto LAB_0008942c;\n      uVar31 = uVar31 + 1;\n      pbVar18 = pbVar34;\n      unaff_s5 = pbVar30;\n    } while (uVar31 != 0x4011);\n  }\n  uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44d4);\n  pbVar34 = pbVar18;\n  pbVar28 = pbVar30;\n  goto LAB_000890b4;\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 "undefined4 uVar12;" type_identifier identifier ;) (declaration "byte ****ppppbVar13;" type_identifier (pointer_declarator "****ppppbVar13" * (pointer_declarator "***ppppbVar13" * (pointer_declarator "**ppppbVar13" * (pointer_declarator "*ppppbVar13" * identifier)))) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "byte ****ppppbVar15;" type_identifier (pointer_declarator "****ppppbVar15" * (pointer_declarator "***ppppbVar15" * (pointer_declarator "**ppppbVar15" * (pointer_declarator "*ppppbVar15" * identifier)))) ;) (declaration "undefined1 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined1 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "undefined4 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "undefined4 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "byte bVar26;" type_identifier identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "undefined4 uVar24;" type_identifier identifier ;) (declaration "undefined4 *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "byte *pbVar28;" type_identifier (pointer_declarator "*pbVar28" * identifier) ;) (declaration "byte *pbVar29;" type_identifier (pointer_declarator "*pbVar29" * identifier) ;) (declaration "uint in_t3;" type_identifier identifier ;) (declaration "byte *pbVar30;" type_identifier (pointer_declarator "*pbVar30" * identifier) ;) (declaration "uint uVar31;" type_identifier identifier ;) (declaration "byte *pbVar32;" type_identifier (pointer_declarator "*pbVar32" * identifier) ;) (declaration "byte *****pppppbVar33;" type_identifier (pointer_declarator "*****pppppbVar33" * (pointer_declarator "****pppppbVar33" * (pointer_declarator "***pppppbVar33" * (pointer_declarator "**pppppbVar33" * (pointer_declarator "*pppppbVar33" * identifier))))) ;) (declaration "byte *pbVar34;" type_identifier (pointer_declarator "*pbVar34" * identifier) ;) (declaration "byte *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "byte *****unaff_s6;" type_identifier (pointer_declarator "*****unaff_s6" * (pointer_declarator "****unaff_s6" * (pointer_declarator "***unaff_s6" * (pointer_declarator "**unaff_s6" * (pointer_declarator "*unaff_s6" * 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 "byte ****local_b0;" type_identifier (pointer_declarator "****local_b0" * (pointer_declarator "***local_b0" * (pointer_declarator "**local_b0" * (pointer_declarator "*local_b0" * identifier)))) ;) (declaration "byte ****local_90;" type_identifier (pointer_declarator "****local_90" * (pointer_declarator "***local_90" * (pointer_declarator "**local_90" * (pointer_declarator "*local_90" * identifier)))) ;) (declaration "byte ****local_8c;" type_identifier (pointer_declarator "****local_8c" * (pointer_declarator "***local_8c" * (pointer_declarator "**local_8c" * (pointer_declarator "*local_8c" * identifier)))) ;) (declaration "undefined4 local_88;" type_identifier identifier ;) (declaration "byte ***local_68;" type_identifier (pointer_declarator "***local_68" * (pointer_declarator "**local_68" * (pointer_declarator "*local_68" * identifier))) ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "undefined *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "undefined4 local_18;" type_identifier identifier ;) (declaration "int local_14;" primitive_type identifier ;) (expression_statement "pppppbVar36 = (byte *****)PTR___stack_chk_guard_00112630;" (assignment_expression "pppppbVar36 = (byte *****)PTR___stack_chk_guard_00112630" identifier = (cast_expression "(byte *****)PTR___stack_chk_guard_00112630" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (expression_statement "local_18 = *(undefined4 *)(param_2 + 4);" (assignment_expression "local_18 = *(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 "pbVar28 = &DAT_00000061;" (assignment_expression "pbVar28 = &DAT_00000061" identifier = (pointer_expression "&DAT_00000061" & identifier)) ;) (expression_statement "pbVar32 = (byte *)&local_18;" (assignment_expression "pbVar32 = (byte *)&local_18" identifier = (cast_expression "(byte *)&local_18" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_18" & identifier))) ;) (expression_statement "local_14 = *(int *)PTR___stack_chk_guard_00112630;" (assignment_expression "local_14 = *(int *)PTR___stack_chk_guard_00112630" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00112630" * (cast_expression "(int *)PTR___stack_chk_guard_00112630" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "(*(code *)PTR_ssh_send_packet_from_downstream_00111acc)\n            (*(undefined4 *)(*(int *)(param_1 + 0xc) + 0x14),*(undefined4 *)(param_1 + 4));" (call_expression "(*(code *)PTR_ssh_send_packet_from_downstream_00111acc)\n            (*(undefined4 *)(*(int *)(param_1 + 0xc) + 0x14),*(undefined4 *)(param_1 + 4))" (parenthesized_expression "(*(code *)PTR_ssh_send_packet_from_downstream_00111acc)" ( (pointer_expression "*(code *)PTR_ssh_send_packet_from_downstream_00111acc" * (cast_expression "(code *)PTR_ssh_send_packet_from_downstream_00111acc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(*(int *)(param_1 + 0xc) + 0x14),*(undefined4 *)(param_1 + 4))" ( (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(param_1 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (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) )))) , (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined4 *)(param_2 + 8) = 0;" (assignment_expression "*(undefined4 *)(param_2 + 8) = 0" (pointer_expression "*(undefined4 *)(param_2 + 8)" * (cast_expression "(undefined4 *)(param_2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar22 = param_1;" (assignment_expression "iVar22 = param_1" identifier = identifier) ;) (expression_statement "share_dead_xchannel_respond(param_1,param_2);" (call_expression "share_dead_xchannel_respond(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier ))) ;) (if_statement "if ((byte ****)local_14 == *pppppbVar36) {\n    return;\n  }" if (parenthesized_expression "((byte ****)local_14 == *pppppbVar36)" ( (binary_expression "(byte ****)local_14 == *pppppbVar36" (cast_expression "(byte ****)local_14" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier) == (pointer_expression "*pppppbVar36" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "puVar37 = PTR___stack_chk_fail_001122c8;" (assignment_expression "puVar37 = PTR___stack_chk_fail_001122c8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_001122c8)();" (call_expression "(*(code *)PTR___stack_chk_fail_001122c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_001122c8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_001122c8" * (cast_expression "(code *)PTR___stack_chk_fail_001122c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar11 = *(int *)(iVar22 + 0x10);" (assignment_expression "iVar11 = *(int *)(iVar22 + 0x10)" identifier = (pointer_expression "*(int *)(iVar22 + 0x10)" * (cast_expression "(int *)(iVar22 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x10)" ( (binary_expression "iVar22 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "piVar39 = *(int **)(puVar37 + 0x896d4);" (assignment_expression "piVar39 = *(int **)(puVar37 + 0x896d4)" identifier = (pointer_expression "*(int **)(puVar37 + 0x896d4)" * (cast_expression "(int **)(puVar37 + 0x896d4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x896d4)" ( (binary_expression "puVar37 + 0x896d4" identifier + number_literal) ))))) ;) (expression_statement "local_58 = (undefined *)pppppbVar36;" (assignment_expression "local_58 = (undefined *)pppppbVar36" identifier = (cast_expression "(undefined *)pppppbVar36" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_64 = *piVar39;" (assignment_expression "local_64 = *piVar39" identifier = (pointer_expression "*piVar39" * identifier)) ;) (expression_statement "pbVar34 = pbVar32;" (assignment_expression "pbVar34 = pbVar32" identifier = identifier) ;) (expression_statement "local_60 = param_2;" (assignment_expression "local_60 = param_2" identifier = identifier) ;) (expression_statement "local_5c = param_1;" (assignment_expression "local_5c = param_1" identifier = identifier) ;) (if_statement "if (iVar11 != 0x709) {\n    if (0x709 < iVar11) {\n      if (iVar11 == 0x72e) goto LAB_000893ac;\n      if (iVar11 != 0x73b) goto LAB_000890e0;\n      goto LAB_00088fd4;\n    }\n    if (iVar11 != 0) goto LAB_000890e0;\n    *(undefined4 *)(iVar22 + 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_000893ac;\n      if (iVar11 != 0x73b) goto LAB_000890e0;\n      goto LAB_00088fd4;\n    }\n    if (iVar11 != 0) goto LAB_000890e0;\n    *(undefined4 *)(iVar22 + 0x4030) = 0;\n  }" { (if_statement "if (0x709 < iVar11) {\n      if (iVar11 == 0x72e) goto LAB_000893ac;\n      if (iVar11 != 0x73b) goto LAB_000890e0;\n      goto LAB_00088fd4;\n    }" if (parenthesized_expression "(0x709 < iVar11)" ( (binary_expression "0x709 < iVar11" number_literal < identifier) )) (compound_statement "{\n      if (iVar11 == 0x72e) goto LAB_000893ac;\n      if (iVar11 != 0x73b) goto LAB_000890e0;\n      goto LAB_00088fd4;\n    }" { (if_statement "if (iVar11 == 0x72e) goto LAB_000893ac;" if (parenthesized_expression "(iVar11 == 0x72e)" ( (binary_expression "iVar11 == 0x72e" identifier == number_literal) )) (goto_statement "goto LAB_000893ac;" goto statement_identifier ;)) (if_statement "if (iVar11 != 0x73b) goto LAB_000890e0;" if (parenthesized_expression "(iVar11 != 0x73b)" ( (binary_expression "iVar11 != 0x73b" identifier != number_literal) )) (goto_statement "goto LAB_000890e0;" goto statement_identifier ;)) (goto_statement "goto LAB_00088fd4;" goto statement_identifier ;) })) (if_statement "if (iVar11 != 0) goto LAB_000890e0;" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000890e0;" goto statement_identifier ;)) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" * (cast_expression "(undefined4 *)(iVar22 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = number_literal) ;) })) (if_statement "if (pbVar32 == (byte *)0x0) {\nLAB_00089094:\n    *(undefined4 *)(iVar22 + 0x10) = 0x709;\nLAB_000890e4:\n    do {\n      if (local_64 == *piVar39) {\n        return;\n      }\n      (**(code **)(puVar37 + 0x8936c))();\n      pbVar28 = unaff_s5;\nLAB_00089df8:\n      local_68 = *local_b0;\n      FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n      (**(code **)(puVar37 + 0x88394))(unaff_s6);\n      *(undefined4 *)(iVar22 + 0x4030) = 0;\nLAB_000893ac:\n      pbVar32 = pbVar28 + (int)pbVar34;\n      unaff_s5 = pbVar28;\n      do {\n        pbVar34 = pbVar32 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar32) {\n          *(undefined4 *)(iVar22 + 0x10) = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar11 = *(int *)(iVar22 + 0x4030);\n        pbVar28 = unaff_s5 + 1;\n        iVar23 = iVar11 + 1;\n        bVar26 = *unaff_s5;\n        in_t3 = (uint)bVar26;\n        *(int *)(iVar22 + 0x4030) = iVar23;\n        *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n        unaff_s5 = pbVar28;\n      } while (iVar23 < 4);\n      iVar11 = (**(code **)(puVar37 + 0x884fc))(*(int *)(iVar22 + 0x20) + 4);\n      *(int *)(iVar22 + 0x1c) = iVar11;\n      if (iVar11 - 5U < 0x400c) {\n        unaff_s6 = *(byte ******)(iVar22 + 0x4030);\n        while (unaff_s5 = pbVar28, (int)unaff_s6 < iVar11) {\nLAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar11 = *(int *)(iVar22 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar26 = *pbVar28;\n          pbVar28 = pbVar28 + 1;\n          unaff_s6 = (byte *****)(iVar11 + 1);\n          *(byte ******)(iVar22 + 0x4030) = unaff_s6;\n          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n          iVar11 = *(int *)(iVar22 + 0x1c);\n        }\n        bVar26 = *(byte *)(iVar22 + 0x24);\n        iVar11 = iVar22 + 0x25;\n        pbVar32 = (byte *)((int)unaff_s6 + -5);\n        if (bVar26 != 0x5a) {\n          if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\n        iVar23 = *(int *)(puVar37 + 0x8839c);\n        if (3 < (int)pbVar32) {\n          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n          if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);\n          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);\n          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);\n          unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);\n          uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);\n          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);\n          *pbVar18 = (byte)((uint)uVar12 >> 0x10);\n          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);\n          *pbVar30 = (byte)uVar12;\n          (**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);\nLAB_00089674:\n        while (iVar11 == 0) {\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }\n        FUN_000887e0(iVar22,iVar11);\n        (**(code **)(puVar37 + 0x88394))(iVar11);\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n      uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11);\nLAB_000890b4:\n      FUN_000887e0(iVar22,uVar12);\n      (**(code **)(puVar37 + 0x88394))(uVar12);\n      unaff_s5 = pbVar28;\nLAB_000890e0:\n      *(undefined4 *)(iVar22 + 0x10) = 0;\n    } while( true );\n  }" if (parenthesized_expression "(pbVar32 == (byte *)0x0)" ( (binary_expression "pbVar32 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00089094:\n    *(undefined4 *)(iVar22 + 0x10) = 0x709;\nLAB_000890e4:\n    do {\n      if (local_64 == *piVar39) {\n        return;\n      }\n      (**(code **)(puVar37 + 0x8936c))();\n      pbVar28 = unaff_s5;\nLAB_00089df8:\n      local_68 = *local_b0;\n      FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n      (**(code **)(puVar37 + 0x88394))(unaff_s6);\n      *(undefined4 *)(iVar22 + 0x4030) = 0;\nLAB_000893ac:\n      pbVar32 = pbVar28 + (int)pbVar34;\n      unaff_s5 = pbVar28;\n      do {\n        pbVar34 = pbVar32 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar32) {\n          *(undefined4 *)(iVar22 + 0x10) = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar11 = *(int *)(iVar22 + 0x4030);\n        pbVar28 = unaff_s5 + 1;\n        iVar23 = iVar11 + 1;\n        bVar26 = *unaff_s5;\n        in_t3 = (uint)bVar26;\n        *(int *)(iVar22 + 0x4030) = iVar23;\n        *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n        unaff_s5 = pbVar28;\n      } while (iVar23 < 4);\n      iVar11 = (**(code **)(puVar37 + 0x884fc))(*(int *)(iVar22 + 0x20) + 4);\n      *(int *)(iVar22 + 0x1c) = iVar11;\n      if (iVar11 - 5U < 0x400c) {\n        unaff_s6 = *(byte ******)(iVar22 + 0x4030);\n        while (unaff_s5 = pbVar28, (int)unaff_s6 < iVar11) {\nLAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar11 = *(int *)(iVar22 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar26 = *pbVar28;\n          pbVar28 = pbVar28 + 1;\n          unaff_s6 = (byte *****)(iVar11 + 1);\n          *(byte ******)(iVar22 + 0x4030) = unaff_s6;\n          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n          iVar11 = *(int *)(iVar22 + 0x1c);\n        }\n        bVar26 = *(byte *)(iVar22 + 0x24);\n        iVar11 = iVar22 + 0x25;\n        pbVar32 = (byte *)((int)unaff_s6 + -5);\n        if (bVar26 != 0x5a) {\n          if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\n        iVar23 = *(int *)(puVar37 + 0x8839c);\n        if (3 < (int)pbVar32) {\n          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n          if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);\n          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);\n          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);\n          unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);\n          uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);\n          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);\n          *pbVar18 = (byte)((uint)uVar12 >> 0x10);\n          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);\n          *pbVar30 = (byte)uVar12;\n          (**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);\nLAB_00089674:\n        while (iVar11 == 0) {\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }\n        FUN_000887e0(iVar22,iVar11);\n        (**(code **)(puVar37 + 0x88394))(iVar11);\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n      uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11);\nLAB_000890b4:\n      FUN_000887e0(iVar22,uVar12);\n      (**(code **)(puVar37 + 0x88394))(uVar12);\n      unaff_s5 = pbVar28;\nLAB_000890e0:\n      *(undefined4 *)(iVar22 + 0x10) = 0;\n    } while( true );\n  }" { (labeled_statement "LAB_00089094:\n    *(undefined4 *)(iVar22 + 0x10) = 0x709;" statement_identifier : (expression_statement "*(undefined4 *)(iVar22 + 0x10) = 0x709;" (assignment_expression "*(undefined4 *)(iVar22 + 0x10) = 0x709" (pointer_expression "*(undefined4 *)(iVar22 + 0x10)" * (cast_expression "(undefined4 *)(iVar22 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x10)" ( (binary_expression "iVar22 + 0x10" identifier + number_literal) )))) = number_literal) ;)) (labeled_statement "LAB_000890e4:\n    do {\n      if (local_64 == *piVar39) {\n        return;\n      }\n      (**(code **)(puVar37 + 0x8936c))();\n      pbVar28 = unaff_s5;\nLAB_00089df8:\n      local_68 = *local_b0;\n      FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n      (**(code **)(puVar37 + 0x88394))(unaff_s6);\n      *(undefined4 *)(iVar22 + 0x4030) = 0;\nLAB_000893ac:\n      pbVar32 = pbVar28 + (int)pbVar34;\n      unaff_s5 = pbVar28;\n      do {\n        pbVar34 = pbVar32 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar32) {\n          *(undefined4 *)(iVar22 + 0x10) = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar11 = *(int *)(iVar22 + 0x4030);\n        pbVar28 = unaff_s5 + 1;\n        iVar23 = iVar11 + 1;\n        bVar26 = *unaff_s5;\n        in_t3 = (uint)bVar26;\n        *(int *)(iVar22 + 0x4030) = iVar23;\n        *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n        unaff_s5 = pbVar28;\n      } while (iVar23 < 4);\n      iVar11 = (**(code **)(puVar37 + 0x884fc))(*(int *)(iVar22 + 0x20) + 4);\n      *(int *)(iVar22 + 0x1c) = iVar11;\n      if (iVar11 - 5U < 0x400c) {\n        unaff_s6 = *(byte ******)(iVar22 + 0x4030);\n        while (unaff_s5 = pbVar28, (int)unaff_s6 < iVar11) {\nLAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar11 = *(int *)(iVar22 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar26 = *pbVar28;\n          pbVar28 = pbVar28 + 1;\n          unaff_s6 = (byte *****)(iVar11 + 1);\n          *(byte ******)(iVar22 + 0x4030) = unaff_s6;\n          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n          iVar11 = *(int *)(iVar22 + 0x1c);\n        }\n        bVar26 = *(byte *)(iVar22 + 0x24);\n        iVar11 = iVar22 + 0x25;\n        pbVar32 = (byte *)((int)unaff_s6 + -5);\n        if (bVar26 != 0x5a) {\n          if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\n        iVar23 = *(int *)(puVar37 + 0x8839c);\n        if (3 < (int)pbVar32) {\n          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n          if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);\n          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);\n          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);\n          unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);\n          uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);\n          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);\n          *pbVar18 = (byte)((uint)uVar12 >> 0x10);\n          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);\n          *pbVar30 = (byte)uVar12;\n          (**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);\nLAB_00089674:\n        while (iVar11 == 0) {\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }\n        FUN_000887e0(iVar22,iVar11);\n        (**(code **)(puVar37 + 0x88394))(iVar11);\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n      uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11);\nLAB_000890b4:\n      FUN_000887e0(iVar22,uVar12);\n      (**(code **)(puVar37 + 0x88394))(uVar12);\n      unaff_s5 = pbVar28;\nLAB_000890e0:\n      *(undefined4 *)(iVar22 + 0x10) = 0;\n    } while( true );" statement_identifier : (do_statement "do {\n      if (local_64 == *piVar39) {\n        return;\n      }\n      (**(code **)(puVar37 + 0x8936c))();\n      pbVar28 = unaff_s5;\nLAB_00089df8:\n      local_68 = *local_b0;\n      FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n      (**(code **)(puVar37 + 0x88394))(unaff_s6);\n      *(undefined4 *)(iVar22 + 0x4030) = 0;\nLAB_000893ac:\n      pbVar32 = pbVar28 + (int)pbVar34;\n      unaff_s5 = pbVar28;\n      do {\n        pbVar34 = pbVar32 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar32) {\n          *(undefined4 *)(iVar22 + 0x10) = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar11 = *(int *)(iVar22 + 0x4030);\n        pbVar28 = unaff_s5 + 1;\n        iVar23 = iVar11 + 1;\n        bVar26 = *unaff_s5;\n        in_t3 = (uint)bVar26;\n        *(int *)(iVar22 + 0x4030) = iVar23;\n        *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n        unaff_s5 = pbVar28;\n      } while (iVar23 < 4);\n      iVar11 = (**(code **)(puVar37 + 0x884fc))(*(int *)(iVar22 + 0x20) + 4);\n      *(int *)(iVar22 + 0x1c) = iVar11;\n      if (iVar11 - 5U < 0x400c) {\n        unaff_s6 = *(byte ******)(iVar22 + 0x4030);\n        while (unaff_s5 = pbVar28, (int)unaff_s6 < iVar11) {\nLAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar11 = *(int *)(iVar22 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar26 = *pbVar28;\n          pbVar28 = pbVar28 + 1;\n          unaff_s6 = (byte *****)(iVar11 + 1);\n          *(byte ******)(iVar22 + 0x4030) = unaff_s6;\n          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n          iVar11 = *(int *)(iVar22 + 0x1c);\n        }\n        bVar26 = *(byte *)(iVar22 + 0x24);\n        iVar11 = iVar22 + 0x25;\n        pbVar32 = (byte *)((int)unaff_s6 + -5);\n        if (bVar26 != 0x5a) {\n          if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\n        iVar23 = *(int *)(puVar37 + 0x8839c);\n        if (3 < (int)pbVar32) {\n          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n          if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);\n          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);\n          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);\n          unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);\n          uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);\n          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);\n          *pbVar18 = (byte)((uint)uVar12 >> 0x10);\n          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);\n          *pbVar30 = (byte)uVar12;\n          (**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);\nLAB_00089674:\n        while (iVar11 == 0) {\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }\n        FUN_000887e0(iVar22,iVar11);\n        (**(code **)(puVar37 + 0x88394))(iVar11);\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n      uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11);\nLAB_000890b4:\n      FUN_000887e0(iVar22,uVar12);\n      (**(code **)(puVar37 + 0x88394))(uVar12);\n      unaff_s5 = pbVar28;\nLAB_000890e0:\n      *(undefined4 *)(iVar22 + 0x10) = 0;\n    } while( true );" do (compound_statement "{\n      if (local_64 == *piVar39) {\n        return;\n      }\n      (**(code **)(puVar37 + 0x8936c))();\n      pbVar28 = unaff_s5;\nLAB_00089df8:\n      local_68 = *local_b0;\n      FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n      (**(code **)(puVar37 + 0x88394))(unaff_s6);\n      *(undefined4 *)(iVar22 + 0x4030) = 0;\nLAB_000893ac:\n      pbVar32 = pbVar28 + (int)pbVar34;\n      unaff_s5 = pbVar28;\n      do {\n        pbVar34 = pbVar32 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar32) {\n          *(undefined4 *)(iVar22 + 0x10) = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar11 = *(int *)(iVar22 + 0x4030);\n        pbVar28 = unaff_s5 + 1;\n        iVar23 = iVar11 + 1;\n        bVar26 = *unaff_s5;\n        in_t3 = (uint)bVar26;\n        *(int *)(iVar22 + 0x4030) = iVar23;\n        *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n        unaff_s5 = pbVar28;\n      } while (iVar23 < 4);\n      iVar11 = (**(code **)(puVar37 + 0x884fc))(*(int *)(iVar22 + 0x20) + 4);\n      *(int *)(iVar22 + 0x1c) = iVar11;\n      if (iVar11 - 5U < 0x400c) {\n        unaff_s6 = *(byte ******)(iVar22 + 0x4030);\n        while (unaff_s5 = pbVar28, (int)unaff_s6 < iVar11) {\nLAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar11 = *(int *)(iVar22 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar26 = *pbVar28;\n          pbVar28 = pbVar28 + 1;\n          unaff_s6 = (byte *****)(iVar11 + 1);\n          *(byte ******)(iVar22 + 0x4030) = unaff_s6;\n          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n          iVar11 = *(int *)(iVar22 + 0x1c);\n        }\n        bVar26 = *(byte *)(iVar22 + 0x24);\n        iVar11 = iVar22 + 0x25;\n        pbVar32 = (byte *)((int)unaff_s6 + -5);\n        if (bVar26 != 0x5a) {\n          if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\n        iVar23 = *(int *)(puVar37 + 0x8839c);\n        if (3 < (int)pbVar32) {\n          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n          if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);\n          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);\n          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);\n          unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);\n          uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);\n          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);\n          *pbVar18 = (byte)((uint)uVar12 >> 0x10);\n          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);\n          *pbVar30 = (byte)uVar12;\n          (**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);\nLAB_00089674:\n        while (iVar11 == 0) {\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }\n        FUN_000887e0(iVar22,iVar11);\n        (**(code **)(puVar37 + 0x88394))(iVar11);\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n      uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11);\nLAB_000890b4:\n      FUN_000887e0(iVar22,uVar12);\n      (**(code **)(puVar37 + 0x88394))(uVar12);\n      unaff_s5 = pbVar28;\nLAB_000890e0:\n      *(undefined4 *)(iVar22 + 0x10) = 0;\n    }" { (if_statement "if (local_64 == *piVar39) {\n        return;\n      }" if (parenthesized_expression "(local_64 == *piVar39)" ( (binary_expression "local_64 == *piVar39" identifier == (pointer_expression "*piVar39" * identifier)) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "(**(code **)(puVar37 + 0x8936c))();" (call_expression "(**(code **)(puVar37 + 0x8936c))()" (parenthesized_expression "(**(code **)(puVar37 + 0x8936c))" ( (pointer_expression "**(code **)(puVar37 + 0x8936c)" * (pointer_expression "*(code **)(puVar37 + 0x8936c)" * (cast_expression "(code **)(puVar37 + 0x8936c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8936c)" ( (binary_expression "puVar37 + 0x8936c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pbVar28 = unaff_s5;" (assignment_expression "pbVar28 = unaff_s5" identifier = identifier) ;) (labeled_statement "LAB_00089df8:\n      local_68 = *local_b0;" statement_identifier : (expression_statement "local_68 = *local_b0;" (assignment_expression "local_68 = *local_b0" identifier = (pointer_expression "*local_b0" * identifier)) ;)) (expression_statement "FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);" (call_expression "FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc)" identifier (argument_list "(iVar22 + 8,100,&local_68,4,0,0xc)" ( (binary_expression "iVar22 + 8" identifier + number_literal) , number_literal , (pointer_expression "&local_68" & identifier) , number_literal , number_literal , number_literal ))) ;) (expression_statement "(**(code **)(puVar37 + 0x88394))(unaff_s6);" (call_expression "(**(code **)(puVar37 + 0x88394))(unaff_s6)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" ( (pointer_expression "**(code **)(puVar37 + 0x88394)" * (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(unaff_s6)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" * (cast_expression "(undefined4 *)(iVar22 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_000893ac:\n      pbVar32 = pbVar28 + (int)pbVar34;" statement_identifier : (expression_statement "pbVar32 = pbVar28 + (int)pbVar34;" (assignment_expression "pbVar32 = pbVar28 + (int)pbVar34" identifier = (binary_expression "pbVar28 + (int)pbVar34" identifier + (cast_expression "(int)pbVar34" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (expression_statement "unaff_s5 = pbVar28;" (assignment_expression "unaff_s5 = pbVar28" identifier = identifier) ;) (do_statement "do {\n        pbVar34 = pbVar32 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar32) {\n          *(undefined4 *)(iVar22 + 0x10) = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar11 = *(int *)(iVar22 + 0x4030);\n        pbVar28 = unaff_s5 + 1;\n        iVar23 = iVar11 + 1;\n        bVar26 = *unaff_s5;\n        in_t3 = (uint)bVar26;\n        *(int *)(iVar22 + 0x4030) = iVar23;\n        *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n        unaff_s5 = pbVar28;\n      } while (iVar23 < 4);" do (compound_statement "{\n        pbVar34 = pbVar32 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar32) {\n          *(undefined4 *)(iVar22 + 0x10) = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar11 = *(int *)(iVar22 + 0x4030);\n        pbVar28 = unaff_s5 + 1;\n        iVar23 = iVar11 + 1;\n        bVar26 = *unaff_s5;\n        in_t3 = (uint)bVar26;\n        *(int *)(iVar22 + 0x4030) = iVar23;\n        *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n        unaff_s5 = pbVar28;\n      }" { (expression_statement "pbVar34 = pbVar32 + (-1 - (int)unaff_s5);" (assignment_expression "pbVar34 = pbVar32 + (-1 - (int)unaff_s5)" identifier = (binary_expression "pbVar32 + (-1 - (int)unaff_s5)" identifier + (parenthesized_expression "(-1 - (int)unaff_s5)" ( (binary_expression "-1 - (int)unaff_s5" number_literal - (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (unaff_s5 == pbVar32) {\n          *(undefined4 *)(iVar22 + 0x10) = 0x72e;\n          goto LAB_000890e4;\n        }" if (parenthesized_expression "(unaff_s5 == pbVar32)" ( (binary_expression "unaff_s5 == pbVar32" identifier == identifier) )) (compound_statement "{\n          *(undefined4 *)(iVar22 + 0x10) = 0x72e;\n          goto LAB_000890e4;\n        }" { (expression_statement "*(undefined4 *)(iVar22 + 0x10) = 0x72e;" (assignment_expression "*(undefined4 *)(iVar22 + 0x10) = 0x72e" (pointer_expression "*(undefined4 *)(iVar22 + 0x10)" * (cast_expression "(undefined4 *)(iVar22 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x10)" ( (binary_expression "iVar22 + 0x10" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000890e4;" goto statement_identifier ;) })) (expression_statement "iVar11 = *(int *)(iVar22 + 0x4030);" (assignment_expression "iVar11 = *(int *)(iVar22 + 0x4030)" identifier = (pointer_expression "*(int *)(iVar22 + 0x4030)" * (cast_expression "(int *)(iVar22 + 0x4030)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) ))))) ;) (expression_statement "pbVar28 = unaff_s5 + 1;" (assignment_expression "pbVar28 = unaff_s5 + 1" identifier = (binary_expression "unaff_s5 + 1" identifier + number_literal)) ;) (expression_statement "iVar23 = iVar11 + 1;" (assignment_expression "iVar23 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "bVar26 = *unaff_s5;" (assignment_expression "bVar26 = *unaff_s5" identifier = (pointer_expression "*unaff_s5" * identifier)) ;) (expression_statement "in_t3 = (uint)bVar26;" (assignment_expression "in_t3 = (uint)bVar26" identifier = (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(int *)(iVar22 + 0x4030) = iVar23;" (assignment_expression "*(int *)(iVar22 + 0x4030) = iVar23" (pointer_expression "*(int *)(iVar22 + 0x4030)" * (cast_expression "(int *)(iVar22 + 0x4030)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)(iVar22 + iVar11 + 0x20) = bVar26;" (assignment_expression "*(byte *)(iVar22 + iVar11 + 0x20) = bVar26" (pointer_expression "*(byte *)(iVar22 + iVar11 + 0x20)" * (cast_expression "(byte *)(iVar22 + iVar11 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + iVar11 + 0x20)" ( (binary_expression "iVar22 + iVar11 + 0x20" (binary_expression "iVar22 + iVar11" identifier + identifier) + number_literal) )))) = identifier) ;) (expression_statement "unaff_s5 = pbVar28;" (assignment_expression "unaff_s5 = pbVar28" identifier = identifier) ;) }) while (parenthesized_expression "(iVar23 < 4)" ( (binary_expression "iVar23 < 4" identifier < number_literal) )) ;) (expression_statement "iVar11 = (**(code **)(puVar37 + 0x884fc))(*(int *)(iVar22 + 0x20) + 4);" (assignment_expression "iVar11 = (**(code **)(puVar37 + 0x884fc))(*(int *)(iVar22 + 0x20) + 4)" identifier = (call_expression "(**(code **)(puVar37 + 0x884fc))(*(int *)(iVar22 + 0x20) + 4)" (parenthesized_expression "(**(code **)(puVar37 + 0x884fc))" ( (pointer_expression "**(code **)(puVar37 + 0x884fc)" * (pointer_expression "*(code **)(puVar37 + 0x884fc)" * (cast_expression "(code **)(puVar37 + 0x884fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x884fc)" ( (binary_expression "puVar37 + 0x884fc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar22 + 0x20) + 4)" ( (binary_expression "*(int *)(iVar22 + 0x20) + 4" (pointer_expression "*(int *)(iVar22 + 0x20)" * (cast_expression "(int *)(iVar22 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x20)" ( (binary_expression "iVar22 + 0x20" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "*(int *)(iVar22 + 0x1c) = iVar11;" (assignment_expression "*(int *)(iVar22 + 0x1c) = iVar11" (pointer_expression "*(int *)(iVar22 + 0x1c)" * (cast_expression "(int *)(iVar22 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x1c)" ( (binary_expression "iVar22 + 0x1c" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar11 - 5U < 0x400c) {\n        unaff_s6 = *(byte ******)(iVar22 + 0x4030);\n        while (unaff_s5 = pbVar28, (int)unaff_s6 < iVar11) {\nLAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar11 = *(int *)(iVar22 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar26 = *pbVar28;\n          pbVar28 = pbVar28 + 1;\n          unaff_s6 = (byte *****)(iVar11 + 1);\n          *(byte ******)(iVar22 + 0x4030) = unaff_s6;\n          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n          iVar11 = *(int *)(iVar22 + 0x1c);\n        }\n        bVar26 = *(byte *)(iVar22 + 0x24);\n        iVar11 = iVar22 + 0x25;\n        pbVar32 = (byte *)((int)unaff_s6 + -5);\n        if (bVar26 != 0x5a) {\n          if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\n        iVar23 = *(int *)(puVar37 + 0x8839c);\n        if (3 < (int)pbVar32) {\n          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n          if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);\n          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);\n          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);\n          unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);\n          uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);\n          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);\n          *pbVar18 = (byte)((uint)uVar12 >> 0x10);\n          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);\n          *pbVar30 = (byte)uVar12;\n          (**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);\nLAB_00089674:\n        while (iVar11 == 0) {\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }\n        FUN_000887e0(iVar22,iVar11);\n        (**(code **)(puVar37 + 0x88394))(iVar11);\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }" if (parenthesized_expression "(iVar11 - 5U < 0x400c)" ( (binary_expression "iVar11 - 5U < 0x400c" (binary_expression "iVar11 - 5U" identifier - number_literal) < number_literal) )) (compound_statement "{\n        unaff_s6 = *(byte ******)(iVar22 + 0x4030);\n        while (unaff_s5 = pbVar28, (int)unaff_s6 < iVar11) {\nLAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar11 = *(int *)(iVar22 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar26 = *pbVar28;\n          pbVar28 = pbVar28 + 1;\n          unaff_s6 = (byte *****)(iVar11 + 1);\n          *(byte ******)(iVar22 + 0x4030) = unaff_s6;\n          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n          iVar11 = *(int *)(iVar22 + 0x1c);\n        }\n        bVar26 = *(byte *)(iVar22 + 0x24);\n        iVar11 = iVar22 + 0x25;\n        pbVar32 = (byte *)((int)unaff_s6 + -5);\n        if (bVar26 != 0x5a) {\n          if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\n        iVar23 = *(int *)(puVar37 + 0x8839c);\n        if (3 < (int)pbVar32) {\n          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n          if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);\n          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);\n          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);\n          unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);\n          uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);\n          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);\n          *pbVar18 = (byte)((uint)uVar12 >> 0x10);\n          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);\n          *pbVar30 = (byte)uVar12;\n          (**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);\nLAB_00089674:\n        while (iVar11 == 0) {\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }\n        FUN_000887e0(iVar22,iVar11);\n        (**(code **)(puVar37 + 0x88394))(iVar11);\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }" { (expression_statement "unaff_s6 = *(byte ******)(iVar22 + 0x4030);" (assignment_expression "unaff_s6 = *(byte ******)(iVar22 + 0x4030)" identifier = (pointer_expression "*(byte ******)(iVar22 + 0x4030)" * (cast_expression "(byte ******)(iVar22 + 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 "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) ))))) ;) (while_statement "while (unaff_s5 = pbVar28, (int)unaff_s6 < iVar11) {\nLAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar11 = *(int *)(iVar22 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar26 = *pbVar28;\n          pbVar28 = pbVar28 + 1;\n          unaff_s6 = (byte *****)(iVar11 + 1);\n          *(byte ******)(iVar22 + 0x4030) = unaff_s6;\n          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n          iVar11 = *(int *)(iVar22 + 0x1c);\n        }" while (parenthesized_expression "(unaff_s5 = pbVar28, (int)unaff_s6 < iVar11)" ( (comma_expression "unaff_s5 = pbVar28, (int)unaff_s6 < iVar11" (assignment_expression "unaff_s5 = pbVar28" identifier = identifier) , (binary_expression "(int)unaff_s6 < iVar11" (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier) < identifier)) )) (compound_statement "{\nLAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar11 = *(int *)(iVar22 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar26 = *pbVar28;\n          pbVar28 = pbVar28 + 1;\n          unaff_s6 = (byte *****)(iVar11 + 1);\n          *(byte ******)(iVar22 + 0x4030) = unaff_s6;\n          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n          iVar11 = *(int *)(iVar22 + 0x1c);\n        }" { (labeled_statement "LAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }" statement_identifier : (if_statement "if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\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 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }" { (expression_statement "*(undefined4 *)(iVar22 + 0x10) = 0x73b;" (assignment_expression "*(undefined4 *)(iVar22 + 0x10) = 0x73b" (pointer_expression "*(undefined4 *)(iVar22 + 0x10)" * (cast_expression "(undefined4 *)(iVar22 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x10)" ( (binary_expression "iVar22 + 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_000890e4;" goto statement_identifier ;) }))) (expression_statement "iVar11 = *(int *)(iVar22 + 0x4030);" (assignment_expression "iVar11 = *(int *)(iVar22 + 0x4030)" identifier = (pointer_expression "*(int *)(iVar22 + 0x4030)" * (cast_expression "(int *)(iVar22 + 0x4030)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) ))))) ;) (expression_statement "pbVar34 = pbVar34 + -1;" (assignment_expression "pbVar34 = pbVar34 + -1" identifier = (binary_expression "pbVar34 + -1" identifier + number_literal)) ;) (expression_statement "bVar26 = *pbVar28;" (assignment_expression "bVar26 = *pbVar28" identifier = (pointer_expression "*pbVar28" * identifier)) ;) (expression_statement "pbVar28 = pbVar28 + 1;" (assignment_expression "pbVar28 = pbVar28 + 1" identifier = (binary_expression "pbVar28 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s6 = (byte *****)(iVar11 + 1);" (assignment_expression "unaff_s6 = (byte *****)(iVar11 + 1)" identifier = (cast_expression "(byte *****)(iVar11 + 1)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(iVar11 + 1)" ( (binary_expression "iVar11 + 1" identifier + number_literal) )))) ;) (expression_statement "*(byte ******)(iVar22 + 0x4030) = unaff_s6;" (assignment_expression "*(byte ******)(iVar22 + 0x4030) = unaff_s6" (pointer_expression "*(byte ******)(iVar22 + 0x4030)" * (cast_expression "(byte ******)(iVar22 + 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 "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)(iVar22 + iVar11 + 0x20) = bVar26;" (assignment_expression "*(byte *)(iVar22 + iVar11 + 0x20) = bVar26" (pointer_expression "*(byte *)(iVar22 + iVar11 + 0x20)" * (cast_expression "(byte *)(iVar22 + iVar11 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + iVar11 + 0x20)" ( (binary_expression "iVar22 + iVar11 + 0x20" (binary_expression "iVar22 + iVar11" identifier + identifier) + number_literal) )))) = identifier) ;) (expression_statement "iVar11 = *(int *)(iVar22 + 0x1c);" (assignment_expression "iVar11 = *(int *)(iVar22 + 0x1c)" identifier = (pointer_expression "*(int *)(iVar22 + 0x1c)" * (cast_expression "(int *)(iVar22 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x1c)" ( (binary_expression "iVar22 + 0x1c" identifier + number_literal) ))))) ;) })) (expression_statement "bVar26 = *(byte *)(iVar22 + 0x24);" (assignment_expression "bVar26 = *(byte *)(iVar22 + 0x24)" identifier = (pointer_expression "*(byte *)(iVar22 + 0x24)" * (cast_expression "(byte *)(iVar22 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x24)" ( (binary_expression "iVar22 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = iVar22 + 0x25;" (assignment_expression "iVar11 = iVar22 + 0x25" identifier = (binary_expression "iVar22 + 0x25" identifier + number_literal)) ;) (expression_statement "pbVar32 = (byte *)((int)unaff_s6 + -5);" (assignment_expression "pbVar32 = (byte *)((int)unaff_s6 + -5)" identifier = (cast_expression "(byte *)((int)unaff_s6 + -5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s6 + -5)" ( (binary_expression "(int)unaff_s6 + -5" (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (bVar26 != 0x5a) {\n          if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }" if (parenthesized_expression "(bVar26 != 0x5a)" ( (binary_expression "bVar26 != 0x5a" identifier != number_literal) )) (compound_statement "{\n          if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }" { (if_statement "if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }" if (parenthesized_expression "(bVar26 < 0x5b)" ( (binary_expression "bVar26 < 0x5b" identifier < number_literal) )) (compound_statement "{\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }" { (if_statement "if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }" if (parenthesized_expression "(bVar26 != 2)" ( (binary_expression "bVar26 != 2" identifier != number_literal) )) (compound_statement "{\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }" { (if_statement "if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }" if (parenthesized_expression "(2 < bVar26)" ( (binary_expression "2 < bVar26" number_literal < identifier) )) (compound_statement "{\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }" { (if_statement "if (bVar26 == 4) goto LAB_00089714;" if (parenthesized_expression "(bVar26 == 4)" ( (binary_expression "bVar26 == 4" identifier == number_literal) )) (goto_statement "goto LAB_00089714;" goto statement_identifier ;)) (if_statement "if (bVar26 != 0x50) goto LAB_0008965c;" if (parenthesized_expression "(bVar26 != 0x50)" ( (binary_expression "bVar26 != 0x50" identifier != number_literal) )) (goto_statement "goto LAB_0008965c;" goto statement_identifier ;)) (expression_statement "iVar23 = *(int *)(puVar37 + 0x8839c);" (assignment_expression "iVar23 = *(int *)(puVar37 + 0x8839c)" identifier = (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) ))))) ;) (expression_statement "pppppbVar33 = pppppbVar36;" (assignment_expression "pppppbVar33 = pppppbVar36" identifier = identifier) ;) (if_statement "if ((int)pbVar32 < 4) goto LAB_000896fc;" if (parenthesized_expression "((int)pbVar32 < 4)" ( (binary_expression "(int)pbVar32 < 4" (cast_expression "(int)pbVar32" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_000896fc;" goto statement_identifier ;)) (expression_statement "pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);" (assignment_expression "pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0)" identifier = (cast_expression "(byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(*(int *)(puVar37 + 0x88acc) + 0x79c0)" ( (binary_expression "*(int *)(puVar37 + 0x88acc) + 0x79c0" (pointer_expression "*(int *)(puVar37 + 0x88acc)" * (cast_expression "(int *)(puVar37 + 0x88acc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x88acc)" ( (binary_expression "puVar37 + 0x88acc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);" (assignment_expression "iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0)" identifier = (call_expression "FUN_000879c0(iVar11,pbVar32,&local_90,0)" identifier (argument_list "(iVar11,pbVar32,&local_90,0)" ( identifier , identifier , (pointer_expression "&local_90" & identifier) , number_literal )))) ;) (expression_statement "ppppbVar13 = local_90;" (assignment_expression "ppppbVar13 = local_90" identifier = identifier) ;) (if_statement "if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;" if (parenthesized_expression "((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0))" ( (binary_expression "(iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)" (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) || (parenthesized_expression "((byte *****)local_90 == (byte *****)0x0)" ( (binary_expression "(byte *****)local_90 == (byte *****)0x0" (cast_expression "(byte *****)local_90" ( (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_000896f8;" goto statement_identifier ;)) (expression_statement "iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);" (assignment_expression "iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8)" identifier = (call_expression "(**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8)" (parenthesized_expression "(**(code **)(puVar37 + 0x8953c))" ( (pointer_expression "**(code **)(puVar37 + 0x8953c)" * (pointer_expression "*(code **)(puVar37 + 0x8953c)" * (cast_expression "(code **)(puVar37 + 0x8953c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8953c)" ( (binary_expression "puVar37 + 0x8953c" identifier + number_literal) ))))) )) (argument_list "(local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8)" ( identifier , (binary_expression "*(int *)(puVar37 + 0x8839c) + -0x30e8" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }" if (parenthesized_expression "(iVar23 != 0)" ( (binary_expression "iVar23 != 0" identifier != number_literal) )) (compound_statement "{\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }" { (expression_statement "iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);" (assignment_expression "iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c)" identifier = (call_expression "(**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c)" (parenthesized_expression "(**(code **)(puVar37 + 0x8953c))" ( (pointer_expression "**(code **)(puVar37 + 0x8953c)" * (pointer_expression "*(code **)(puVar37 + 0x8953c)" * (cast_expression "(code **)(puVar37 + 0x8953c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8953c)" ( (binary_expression "puVar37 + 0x8953c" identifier + number_literal) ))))) )) (argument_list "(ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c)" ( identifier , (binary_expression "*(int *)(puVar37 + 0x8839c) + -0x317c" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pcVar38 = *(code **)(puVar37 + 0x88394);" (assignment_expression "pcVar38 = *(code **)(puVar37 + 0x88394)" identifier = (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) ;) (expression_statement "pppppbVar36 = pppppbVar33;" (assignment_expression "pppppbVar36 = pppppbVar33" identifier = identifier) ;) (if_statement "if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }" if (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) (compound_statement "{\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }" { (expression_statement "(*pcVar38)(ppppbVar13);" (call_expression "(*pcVar38)(ppppbVar13)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(ppppbVar13)" ( identifier ))) ;) (expression_statement "iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);" (assignment_expression "iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90)" identifier = (call_expression "FUN_000879c0(iVar11,pbVar32,0,&local_90)" identifier (argument_list "(iVar11,pbVar32,0,&local_90)" ( identifier , identifier , number_literal , (pointer_expression "&local_90" & identifier) )))) ;) (expression_statement "pppppbVar35 = (byte *****)local_90;" (assignment_expression "pppppbVar35 = (byte *****)local_90" identifier = (cast_expression "(byte *****)local_90" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }" if (parenthesized_expression "(((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32))" ( (binary_expression "((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)" (parenthesized_expression "((iVar23 != 0) && (-1 < (int)local_90))" ( (binary_expression "(iVar23 != 0) && (-1 < (int)local_90)" (parenthesized_expression "(iVar23 != 0)" ( (binary_expression "iVar23 != 0" identifier != number_literal) )) && (parenthesized_expression "(-1 < (int)local_90)" ( (binary_expression "-1 < (int)local_90" number_literal < (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) && (parenthesized_expression "(pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)" ( (comma_expression "pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32" (assignment_expression "pbVar30 = (byte *)((int)local_90 + 1)" identifier = (cast_expression "(byte *)((int)local_90 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 1)" ( (binary_expression "(int)local_90 + 1" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (binary_expression "(int)local_90 < (int)pbVar32" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pbVar32" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }" { (expression_statement "local_b0 = (byte ****)((int)local_90 + iVar11);" (assignment_expression "local_b0 = (byte ****)((int)local_90 + iVar11)" identifier = (cast_expression "(byte ****)((int)local_90 + iVar11)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)local_90 + iVar11)" ( (binary_expression "(int)local_90 + iVar11" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "iVar21 = (int)pbVar32 - (int)pbVar30;" (assignment_expression "iVar21 = (int)pbVar32 - (int)pbVar30" identifier = (binary_expression "(int)pbVar32 - (int)pbVar30" (cast_expression "(int)pbVar32" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar30" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "bVar26 = *(byte *)local_b0;" (assignment_expression "bVar26 = *(byte *)local_b0" identifier = (pointer_expression "*(byte *)local_b0" * (cast_expression "(byte *)local_b0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }" if (parenthesized_expression "((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))" ( (binary_expression "(iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)" (parenthesized_expression "(iVar21 < 4)" ( (binary_expression "iVar21 < 4" identifier < number_literal) )) || (parenthesized_expression "(iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)" ( (comma_expression "iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0" (assignment_expression "iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90)" identifier = (call_expression "FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90)" identifier (argument_list "(pbVar30 + iVar11,iVar21,0,&local_90)" ( (binary_expression "pbVar30 + iVar11" identifier + identifier) , identifier , number_literal , (pointer_expression "&local_90" & identifier) )))) , (binary_expression "iVar23 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }" { (expression_statement "iVar23 = *(int *)(puVar37 + 0x8839c);" (assignment_expression "iVar23 = *(int *)(puVar37 + 0x8839c)" identifier = (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) ))))) ;) (if_statement "if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }" if (parenthesized_expression "((int)pppppbVar35 < (int)(unaff_s6 + -2))" ( (binary_expression "(int)pppppbVar35 < (int)(unaff_s6 + -2)" (cast_expression "(int)pppppbVar35" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)(unaff_s6 + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(unaff_s6 + -2)" ( (binary_expression "unaff_s6 + -2" identifier + number_literal) )))) )) (compound_statement "{\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }" { (if_statement "if (iVar21 >= 4) goto LAB_000892a4;" if (parenthesized_expression "(iVar21 >= 4)" ( (binary_expression "iVar21 >= 4" identifier >= number_literal) )) (goto_statement "goto LAB_000892a4;" goto statement_identifier ;)) (labeled_statement "LAB_00089eec:\n                          uVar12 = 0x5a7;" statement_identifier : (expression_statement "uVar12 = 0x5a7;" (assignment_expression "uVar12 = 0x5a7" identifier = number_literal) ;)) (goto_statement "goto LAB_00089ef0;" goto statement_identifier ;) })) }) (else_clause "else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }" else (compound_statement "{\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }" { (expression_statement "pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);" (assignment_expression "pppppbVar35 = (byte *****)(pbVar30 + (int)local_90)" identifier = (cast_expression "(byte *****)(pbVar30 + (int)local_90)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(pbVar30 + (int)local_90)" ( (binary_expression "pbVar30 + (int)local_90" identifier + (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar23 = *(int *)(puVar37 + 0x8839c);" (assignment_expression "iVar23 = *(int *)(puVar37 + 0x8839c)" identifier = (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) ))))) ;) (if_statement "if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }" if (parenthesized_expression "(-1 < (int)pppppbVar35)" ( (binary_expression "-1 < (int)pppppbVar35" number_literal < (cast_expression "(int)pppppbVar35" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }" { (expression_statement "pcVar38 = *(code **)(puVar37 + 0x8844c);" (assignment_expression "pcVar38 = *(code **)(puVar37 + 0x8844c)" identifier = (pointer_expression "*(code **)(puVar37 + 0x8844c)" * (cast_expression "(code **)(puVar37 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8844c)" ( (binary_expression "puVar37 + 0x8844c" identifier + number_literal) ))))) ;) (if_statement "if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;" if (parenthesized_expression "((int)(unaff_s6 + -2) <= (int)pppppbVar35)" ( (binary_expression "(int)(unaff_s6 + -2) <= (int)pppppbVar35" (cast_expression "(int)(unaff_s6 + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(unaff_s6 + -2)" ( (binary_expression "unaff_s6 + -2" identifier + number_literal) ))) <= (cast_expression "(int)pppppbVar35" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00089700;" goto statement_identifier ;)) (labeled_statement "LAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);" statement_identifier : (expression_statement "iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);" (assignment_expression "iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0)" identifier = (call_expression "FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0)" identifier (argument_list "(pbVar30 + iVar11,iVar21,&local_90,0)" ( (binary_expression "pbVar30 + iVar11" identifier + identifier) , identifier , (pointer_expression "&local_90" & identifier) , number_literal )))) ;)) (expression_statement "pppppbVar36 = (byte *****)local_90;" (assignment_expression "pppppbVar36 = (byte *****)local_90" identifier = (cast_expression "(byte *****)local_90" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;" if (parenthesized_expression "((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0))" ( (binary_expression "(iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)" (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) || (parenthesized_expression "(pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)" ( (comma_expression "pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0" (assignment_expression "pppppbVar33 = (byte *****)local_90" identifier = (cast_expression "(byte *****)local_90" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) , (binary_expression "(byte *****)local_90 == (byte *****)0x0" (cast_expression "(byte *****)local_90" ( (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_00089eec;" goto statement_identifier ;)) (expression_statement "pbVar30 = (byte *)((int)pppppbVar35 + iVar11);" (assignment_expression "pbVar30 = (byte *)((int)pppppbVar35 + iVar11)" identifier = (cast_expression "(byte *)((int)pppppbVar35 + iVar11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar35 + iVar11)" ( (binary_expression "(int)pppppbVar35 + iVar11" (cast_expression "(int)pppppbVar35" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "bVar1 = *pbVar30;" (assignment_expression "bVar1 = *pbVar30" identifier = (pointer_expression "*pbVar30" * identifier)) ;) (expression_statement "bVar2 = pbVar30[1];" (assignment_expression "bVar2 = pbVar30[1]" identifier = (subscript_expression "pbVar30[1]" identifier [ number_literal ])) ;) (expression_statement "bVar3 = pbVar30[3];" (assignment_expression "bVar3 = pbVar30[3]" identifier = (subscript_expression "pbVar30[3]" identifier [ number_literal ])) ;) (expression_statement "bVar4 = pbVar30[2];" (assignment_expression "bVar4 = pbVar30[2]" identifier = (subscript_expression "pbVar30[2]" identifier [ number_literal ])) ;) (expression_statement "local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);" (assignment_expression "local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90)" identifier = (cast_expression "(byte ****)(**(code **)(puVar37 + 0x883c0))(local_90)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(**(code **)(puVar37 + 0x883c0))(local_90)" (parenthesized_expression "(**(code **)(puVar37 + 0x883c0))" ( (pointer_expression "**(code **)(puVar37 + 0x883c0)" * (pointer_expression "*(code **)(puVar37 + 0x883c0)" * (cast_expression "(code **)(puVar37 + 0x883c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x883c0)" ( (binary_expression "puVar37 + 0x883c0" identifier + number_literal) ))))) )) (argument_list "(local_90)" ( identifier ))))) ;) (expression_statement "local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);" (assignment_expression "local_8c = (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 "unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);" (assignment_expression "unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0)" identifier = (cast_expression "(byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,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 *)(iVar22 + 0x4048),&local_90,0)" identifier (argument_list "(*(undefined4 *)(iVar22 + 0x4048),&local_90,0)" ( (pointer_expression "*(undefined4 *)(iVar22 + 0x4048)" * (cast_expression "(undefined4 *)(iVar22 + 0x4048)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4048)" ( (binary_expression "iVar22 + 0x4048" identifier + number_literal) )))) , (pointer_expression "&local_90" & identifier) , number_literal ))))) ;) (expression_statement "(**(code **)(puVar37 + 0x88394))(local_90);" (call_expression "(**(code **)(puVar37 + 0x88394))(local_90)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" ( (pointer_expression "**(code **)(puVar37 + 0x88394)" * (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(local_90)" ( identifier ))) ;) (if_statement "if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }" if (parenthesized_expression "(unaff_s6 == (byte *****)0x0)" ( (binary_expression "unaff_s6 == (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 **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }" { (expression_statement "pcVar38 = *(code **)(puVar37 + 0x88394);" (assignment_expression "pcVar38 = *(code **)(puVar37 + 0x88394)" identifier = (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) ;) (if_statement "if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }" if (parenthesized_expression "(bVar26 != 0)" ( (binary_expression "bVar26 != 0" identifier != number_literal) )) (compound_statement "{\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }" { (expression_statement "FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);" (call_expression "FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc)" identifier (argument_list "(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc)" ( (binary_expression "iVar22 + 8" identifier + number_literal) , number_literal , (binary_expression "*(int *)(puVar37 + 0x8839c) + -0x4be4" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , number_literal ))) ;) (goto_statement "goto LAB_00089394;" goto statement_identifier ;) })) }) (else_clause "else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }" else (compound_statement "{\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }" { (expression_statement "bVar26 = *(byte *)local_b0;" (assignment_expression "bVar26 = *(byte *)local_b0" identifier = (pointer_expression "*(byte *)local_b0" * (cast_expression "(byte *)local_b0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(byte *)local_b0 = 1;" (assignment_expression "*(byte *)local_b0 = 1" (pointer_expression "*(byte *)local_b0" * (cast_expression "(byte *)local_b0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (if_statement "if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }" if (parenthesized_expression "(bVar26 == 0)" ( (binary_expression "bVar26 == 0" identifier == number_literal) )) (compound_statement "{\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }" { (expression_statement "iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;" (assignment_expression "iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4" identifier = (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x44b4" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                              iVar23 = 0;\n                            }" else (compound_statement "{\n                              iVar23 = 0;\n                            }" { (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" identifier = number_literal) ;) }))) (expression_statement "(**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);" (call_expression "(**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b70))" ( (pointer_expression "**(code **)(puVar37 + 0x88b70)" * (pointer_expression "*(code **)(puVar37 + 0x88b70)" * (cast_expression "(code **)(puVar37 + 0x88b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88b70)" ( (binary_expression "puVar37 + 0x88b70" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) )))) + number_literal) )))) , (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) )))) , number_literal , identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);" (call_expression "(**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b88))" ( (pointer_expression "**(code **)(puVar37 + 0x88b88)" * (pointer_expression "*(code **)(puVar37 + 0x88b88)" * (cast_expression "(code **)(puVar37 + 0x88b88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88b88)" ( (binary_expression "puVar37 + 0x88b88" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) )))) + number_literal) )))) , identifier ))) ;) (labeled_statement "LAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);" statement_identifier : (expression_statement "pcVar38 = *(code **)(puVar37 + 0x88394);" (assignment_expression "pcVar38 = *(code **)(puVar37 + 0x88394)" identifier = (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) ;)) }))) (expression_statement "(*pcVar38)(pppppbVar36);" (call_expression "(*pcVar38)(pppppbVar36)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(pppppbVar36)" ( identifier ))) ;) (goto_statement "goto LAB_000893a4;" goto statement_identifier ;) })) }))) (goto_statement "goto LAB_000896fc;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }" else (compound_statement "{\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }" { (labeled_statement "LAB_00089f10:\n                    (*pcVar38)();" statement_identifier : (expression_statement "(*pcVar38)();" (call_expression "(*pcVar38)()" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "()" ( ))) ;)) (expression_statement "iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);" (assignment_expression "iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90)" identifier = (call_expression "FUN_000879c0(iVar11,pbVar32,0,&local_90)" identifier (argument_list "(iVar11,pbVar32,0,&local_90)" ( identifier , identifier , number_literal , (pointer_expression "&local_90" & identifier) )))) ;) (expression_statement "pppppbVar33 = pppppbVar36;" (assignment_expression "pppppbVar33 = pppppbVar36" identifier = identifier) ;) (if_statement "if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }" if (parenthesized_expression "(((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32))" ( (binary_expression "((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)" (parenthesized_expression "((iVar23 != 0) && (-1 < (int)local_90))" ( (binary_expression "(iVar23 != 0) && (-1 < (int)local_90)" (parenthesized_expression "(iVar23 != 0)" ( (binary_expression "iVar23 != 0" identifier != number_literal) )) && (parenthesized_expression "(-1 < (int)local_90)" ( (binary_expression "-1 < (int)local_90" number_literal < (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) && (parenthesized_expression "((int)local_90 < (int)pbVar32)" ( (binary_expression "(int)local_90 < (int)pbVar32" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pbVar32" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }" { (if_statement "if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;" if (parenthesized_expression "(*(byte *)((int)local_90 + iVar11) == 0)" ( (binary_expression "*(byte *)((int)local_90 + iVar11) == 0" (pointer_expression "*(byte *)((int)local_90 + iVar11)" * (cast_expression "(byte *)((int)local_90 + iVar11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + iVar11)" ( (binary_expression "(int)local_90 + iVar11" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) == number_literal) )) (goto_statement "goto LAB_000893a4;" goto statement_identifier ;)) (expression_statement "FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);" (call_expression "FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc)" identifier (argument_list "(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc)" ( (binary_expression "iVar22 + 8" identifier + number_literal) , number_literal , (binary_expression "*(int *)(puVar37 + 0x8839c) + -0x4be4" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , number_literal ))) ;) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" * (cast_expression "(undefined4 *)(iVar22 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000893ac;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);" statement_identifier : (expression_statement "iVar23 = *(int *)(puVar37 + 0x8839c);" (assignment_expression "iVar23 = *(int *)(puVar37 + 0x8839c)" identifier = (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_000896fc;" goto statement_identifier ;) })) (expression_statement "(**(code **)(puVar37 + 0x88394))(ppppbVar13);" (call_expression "(**(code **)(puVar37 + 0x88394))(ppppbVar13)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" ( (pointer_expression "**(code **)(puVar37 + 0x88394)" * (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(ppppbVar13)" ( identifier ))) ;) (expression_statement "iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);" (assignment_expression "iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90)" identifier = (call_expression "FUN_000879c0(iVar11,pbVar32,0,&local_90)" identifier (argument_list "(iVar11,pbVar32,0,&local_90)" ( identifier , identifier , number_literal , (pointer_expression "&local_90" & identifier) )))) ;) (expression_statement "pppppbVar36 = (byte *****)local_90;" (assignment_expression "pppppbVar36 = (byte *****)local_90" identifier = (cast_expression "(byte *****)local_90" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;" if (parenthesized_expression "(((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))" ( (binary_expression "((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90)" (parenthesized_expression "((iVar23 == 0) || ((int)local_90 < 0))" ( (binary_expression "(iVar23 == 0) || ((int)local_90 < 0)" (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) || (parenthesized_expression "((int)local_90 < 0)" ( (binary_expression "(int)local_90 < 0" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) ))) )) || (parenthesized_expression "(pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90)" ( (comma_expression "pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90" (assignment_expression "pbVar30 = (byte *)((int)local_90 + 1)" identifier = (cast_expression "(byte *)((int)local_90 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 1)" ( (binary_expression "(int)local_90 + 1" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (binary_expression "(int)pbVar32 <= (int)local_90" (cast_expression "(int)pbVar32" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (goto_statement "goto LAB_000896f8;" goto statement_identifier ;)) (expression_statement "pbVar18 = (byte *)((int)local_90 + iVar11);" (assignment_expression "pbVar18 = (byte *)((int)local_90 + iVar11)" identifier = (cast_expression "(byte *)((int)local_90 + iVar11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + iVar11)" ( (binary_expression "(int)local_90 + iVar11" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "iVar21 = (int)pbVar32 - (int)pbVar30;" (assignment_expression "iVar21 = (int)pbVar32 - (int)pbVar30" identifier = (binary_expression "(int)pbVar32 - (int)pbVar30" (cast_expression "(int)pbVar32" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar30" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_b0 = (byte ****)(uint)*pbVar18;" (assignment_expression "local_b0 = (byte ****)(uint)*pbVar18" identifier = (binary_expression "(byte ****)(uint)*pbVar18" (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 ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }" if (parenthesized_expression "((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))" ( (binary_expression "(iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)" (parenthesized_expression "(iVar21 < 4)" ( (binary_expression "iVar21 < 4" identifier < number_literal) )) || (parenthesized_expression "(iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)" ( (comma_expression "iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0" (assignment_expression "iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90)" identifier = (call_expression "FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90)" identifier (argument_list "(pbVar30 + iVar11,iVar21,0,&local_90)" ( (binary_expression "pbVar30 + iVar11" identifier + identifier) , identifier , number_literal , (pointer_expression "&local_90" & identifier) )))) , (binary_expression "iVar23 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }" { (expression_statement "iVar23 = *(int *)(puVar37 + 0x8839c);" (assignment_expression "iVar23 = *(int *)(puVar37 + 0x8839c)" identifier = (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) ))))) ;) (if_statement "if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }" if (parenthesized_expression "((int)pppppbVar36 < (int)(unaff_s6 + -2))" ( (binary_expression "(int)pppppbVar36 < (int)(unaff_s6 + -2)" (cast_expression "(int)pppppbVar36" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)(unaff_s6 + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(unaff_s6 + -2)" ( (binary_expression "unaff_s6 + -2" identifier + number_literal) )))) )) (compound_statement "{\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }" { (if_statement "if (iVar21 >= 4) goto LAB_0008a05c;" if (parenthesized_expression "(iVar21 >= 4)" ( (binary_expression "iVar21 >= 4" identifier >= number_literal) )) (goto_statement "goto LAB_0008a05c;" goto statement_identifier ;)) (labeled_statement "LAB_0008a304:\n                    uVar12 = 0x55e;" statement_identifier : (expression_statement "uVar12 = 0x55e;" (assignment_expression "uVar12 = 0x55e" identifier = number_literal) ;)) (labeled_statement "LAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);" statement_identifier : (expression_statement "pcVar38 = *(code **)(puVar37 + 0x88ff4);" (assignment_expression "pcVar38 = *(code **)(puVar37 + 0x88ff4)" identifier = (pointer_expression "*(code **)(puVar37 + 0x88ff4)" * (cast_expression "(code **)(puVar37 + 0x88ff4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88ff4)" ( (binary_expression "puVar37 + 0x88ff4" identifier + number_literal) ))))) ;)) (expression_statement "(*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);" (call_expression "(*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870)" ( (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x457c" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x43dc" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x4870" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pppppbVar36 = pppppbVar33;" (assignment_expression "pppppbVar36 = pppppbVar33" identifier = identifier) ;) (goto_statement "goto LAB_00089f10;" goto statement_identifier ;) })) (labeled_statement "LAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);" statement_identifier : (expression_statement "pcVar38 = *(code **)(puVar37 + 0x8844c);" (assignment_expression "pcVar38 = *(code **)(puVar37 + 0x8844c)" identifier = (pointer_expression "*(code **)(puVar37 + 0x8844c)" * (cast_expression "(code **)(puVar37 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8844c)" ( (binary_expression "puVar37 + 0x8844c" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }" else (compound_statement "{\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }" { (expression_statement "pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);" (assignment_expression "pppppbVar36 = (byte *****)(pbVar30 + (int)local_90)" identifier = (cast_expression "(byte *****)(pbVar30 + (int)local_90)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(pbVar30 + (int)local_90)" ( (binary_expression "pbVar30 + (int)local_90" identifier + (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar23 = *(int *)(puVar37 + 0x8839c);" (assignment_expression "iVar23 = *(int *)(puVar37 + 0x8839c)" identifier = (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) ))))) ;) (if_statement "if ((int)pppppbVar36 < 0) goto LAB_000896fc;" if (parenthesized_expression "((int)pppppbVar36 < 0)" ( (binary_expression "(int)pppppbVar36 < 0" (cast_expression "(int)pppppbVar36" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_000896fc;" goto statement_identifier ;)) (expression_statement "pcVar38 = *(code **)(puVar37 + 0x8844c);" (assignment_expression "pcVar38 = *(code **)(puVar37 + 0x8844c)" identifier = (pointer_expression "*(code **)(puVar37 + 0x8844c)" * (cast_expression "(code **)(puVar37 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8844c)" ( (binary_expression "puVar37 + 0x8844c" identifier + number_literal) ))))) ;) (if_statement "if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }" if (parenthesized_expression "((int)pppppbVar36 < (int)(unaff_s6 + -2))" ( (binary_expression "(int)pppppbVar36 < (int)(unaff_s6 + -2)" (cast_expression "(int)pppppbVar36" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)(unaff_s6 + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(unaff_s6 + -2)" ( (binary_expression "unaff_s6 + -2" identifier + number_literal) )))) )) (compound_statement "{\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }" { (labeled_statement "LAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);" statement_identifier : (expression_statement "iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);" (assignment_expression "iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0)" identifier = (call_expression "FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0)" identifier (argument_list "(pbVar30 + iVar11,iVar21,&local_90,0)" ( (binary_expression "pbVar30 + iVar11" identifier + identifier) , identifier , (pointer_expression "&local_90" & identifier) , number_literal )))) ;)) (expression_statement "ppppbVar13 = local_90;" (assignment_expression "ppppbVar13 = local_90" identifier = identifier) ;) (if_statement "if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;" if (parenthesized_expression "((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))" ( (binary_expression "(iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0)" (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) || (parenthesized_expression "(unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0)" ( (comma_expression "unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0" (assignment_expression "unaff_s6 = (byte *****)local_90" identifier = (cast_expression "(byte *****)local_90" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) , (binary_expression "(byte *****)local_90 == (byte *****)0x0" (cast_expression "(byte *****)local_90" ( (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_0008a304;" goto statement_identifier ;)) (expression_statement "pbVar30 = (byte *)((int)pppppbVar36 + iVar11);" (assignment_expression "pbVar30 = (byte *)((int)pppppbVar36 + iVar11)" identifier = (cast_expression "(byte *)((int)pppppbVar36 + iVar11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar36 + iVar11)" ( (binary_expression "(int)pppppbVar36 + iVar11" (cast_expression "(int)pppppbVar36" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);" (assignment_expression "pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8)" identifier = (cast_expression "(byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[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)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8)" ( (binary_expression "(uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8" (binary_expression "(uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10" (binary_expression "(uint)*pbVar30 << 0x18 | (uint)pbVar30[3]" (binary_expression "(uint)*pbVar30 << 0x18" (binary_expression "(uint)*pbVar30" (parenthesized_expression "(uint)" ( identifier )) * identifier) << number_literal) | (cast_expression "(uint)pbVar30[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar30[3]" identifier [ number_literal ]))) | (binary_expression "(uint)pbVar30[1] << 0x10" (cast_expression "(uint)pbVar30[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar30[1]" identifier [ number_literal ])) << number_literal)) | (binary_expression "(uint)pbVar30[2] << 8" (cast_expression "(uint)pbVar30[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar30[2]" identifier [ number_literal ])) << number_literal)) )))) ;) (expression_statement "iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);" (assignment_expression "iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22)" identifier = (call_expression "(**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22)" (parenthesized_expression "(**(code **)(puVar37 + 0x88ba0))" ( (pointer_expression "**(code **)(puVar37 + 0x88ba0)" * (pointer_expression "*(code **)(puVar37 + 0x88ba0)" * (cast_expression "(code **)(puVar37 + 0x88ba0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88ba0)" ( (binary_expression "puVar37 + 0x88ba0" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) )))) + number_literal) )))) , identifier , identifier , identifier )))) ;) (if_statement "if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }" if (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) (compound_statement "{\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }" { (if_statement "if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }" if (parenthesized_expression "((byte *****)local_b0 != (byte *****)0x0)" ( (binary_expression "(byte *****)local_b0 != (byte *****)0x0" (cast_expression "(byte *****)local_b0" ( (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_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }" { (expression_statement "FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);" (call_expression "FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc)" identifier (argument_list "(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc)" ( (binary_expression "iVar22 + 8" identifier + number_literal) , number_literal , (binary_expression "*(int *)(puVar37 + 0x8839c) + -0x4be4" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , number_literal ))) ;) })) }) (else_clause "else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }" else (compound_statement "{\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }" { (expression_statement "bVar26 = *pbVar18;" (assignment_expression "bVar26 = *pbVar18" identifier = (pointer_expression "*pbVar18" * identifier)) ;) (expression_statement "*pbVar18 = 1;" (assignment_expression "*pbVar18 = 1" (pointer_expression "*pbVar18" * identifier) = number_literal) ;) (if_statement "if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }" if (parenthesized_expression "(bVar26 == 0)" ( (binary_expression "bVar26 == 0" identifier == number_literal) )) (compound_statement "{\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }" { (expression_statement "iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;" (assignment_expression "iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4" identifier = (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x44b4" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                        iVar23 = 0;\n                      }" else (compound_statement "{\n                        iVar23 = 0;\n                      }" { (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" identifier = number_literal) ;) }))) (expression_statement "(**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);" (call_expression "(**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b70))" ( (pointer_expression "**(code **)(puVar37 + 0x88b70)" * (pointer_expression "*(code **)(puVar37 + 0x88b70)" * (cast_expression "(code **)(puVar37 + 0x88b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88b70)" ( (binary_expression "puVar37 + 0x88b70" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) )))) + number_literal) )))) , (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) )))) , number_literal , identifier , identifier , identifier ))) ;) (expression_statement "puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);" (assignment_expression "puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc)" identifier = (cast_expression "(undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar37 + 0x88390))(1,0xc)" (parenthesized_expression "(**(code **)(puVar37 + 0x88390))" ( (pointer_expression "**(code **)(puVar37 + 0x88390)" * (pointer_expression "*(code **)(puVar37 + 0x88390)" * (cast_expression "(code **)(puVar37 + 0x88390)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88390)" ( (binary_expression "puVar37 + 0x88390" identifier + number_literal) ))))) )) (argument_list "(1,0xc)" ( number_literal , number_literal ))))) ;) (expression_statement "uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);" (assignment_expression "uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13)" identifier = (call_expression "(**(code **)(puVar37 + 0x883c0))(ppppbVar13)" (parenthesized_expression "(**(code **)(puVar37 + 0x883c0))" ( (pointer_expression "**(code **)(puVar37 + 0x883c0)" * (pointer_expression "*(code **)(puVar37 + 0x883c0)" * (cast_expression "(code **)(puVar37 + 0x883c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x883c0)" ( (binary_expression "puVar37 + 0x883c0" identifier + number_literal) ))))) )) (argument_list "(ppppbVar13)" ( identifier )))) ;) (expression_statement "uVar24 = *(undefined4 *)(iVar22 + 0x4048);" (assignment_expression "uVar24 = *(undefined4 *)(iVar22 + 0x4048)" identifier = (pointer_expression "*(undefined4 *)(iVar22 + 0x4048)" * (cast_expression "(undefined4 *)(iVar22 + 0x4048)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4048)" ( (binary_expression "iVar22 + 0x4048" identifier + number_literal) ))))) ;) (expression_statement "*puVar19 = uVar12;" (assignment_expression "*puVar19 = uVar12" (pointer_expression "*puVar19" * identifier) = identifier) ;) (expression_statement "puVar19[1] = pppppbVar36;" (assignment_expression "puVar19[1] = pppppbVar36" (subscript_expression "puVar19[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar19[2] = 0;" (assignment_expression "puVar19[2] = 0" (subscript_expression "puVar19[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar20 = (undefined4 *)add234(uVar24,puVar19);" (assignment_expression "puVar20 = (undefined4 *)add234(uVar24,puVar19)" identifier = (cast_expression "(undefined4 *)add234(uVar24,puVar19)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "add234(uVar24,puVar19)" identifier (argument_list "(uVar24,puVar19)" ( identifier , identifier ))))) ;) (if_statement "if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }" if (parenthesized_expression "(puVar19 == puVar20)" ( (binary_expression "puVar19 == puVar20" identifier == identifier) )) (compound_statement "{\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }" { (expression_statement "(**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);" (call_expression "(**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b88))" ( (pointer_expression "**(code **)(puVar37 + 0x88b88)" * (pointer_expression "*(code **)(puVar37 + 0x88b88)" * (cast_expression "(code **)(puVar37 + 0x88b88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88b88)" ( (binary_expression "puVar37 + 0x88b88" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) )))) + number_literal) )))) , identifier ))) ;) (expression_statement "puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);" (assignment_expression "puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10)" identifier = (cast_expression "(undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar37 + 0x88390))(1,0x10)" (parenthesized_expression "(**(code **)(puVar37 + 0x88390))" ( (pointer_expression "**(code **)(puVar37 + 0x88390)" * (pointer_expression "*(code **)(puVar37 + 0x88390)" * (cast_expression "(code **)(puVar37 + 0x88390)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88390)" ( (binary_expression "puVar37 + 0x88390" identifier + number_literal) ))))) )) (argument_list "(1,0x10)" ( number_literal , number_literal ))))) ;) (expression_statement "puVar25 = *(undefined4 **)(iVar22 + 0x4050);" (assignment_expression "puVar25 = *(undefined4 **)(iVar22 + 0x4050)" identifier = (pointer_expression "*(undefined4 **)(iVar22 + 0x4050)" * (cast_expression "(undefined4 **)(iVar22 + 0x4050)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar22 + 0x4050)" ( (binary_expression "iVar22 + 0x4050" identifier + number_literal) ))))) ;) (expression_statement "*puVar20 = 0;" (assignment_expression "*puVar20 = 0" (pointer_expression "*puVar20" * identifier) = number_literal) ;) (if_statement "if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }" if (parenthesized_expression "(puVar25 == (undefined4 *)0x0)" ( (binary_expression "puVar25 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }" { (expression_statement "*(undefined4 **)(iVar22 + 0x404c) = puVar20;" (assignment_expression "*(undefined4 **)(iVar22 + 0x404c) = puVar20" (pointer_expression "*(undefined4 **)(iVar22 + 0x404c)" * (cast_expression "(undefined4 **)(iVar22 + 0x404c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar22 + 0x404c)" ( (binary_expression "iVar22 + 0x404c" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                          *puVar25 = puVar20;\n                        }" else (compound_statement "{\n                          *puVar25 = puVar20;\n                        }" { (expression_statement "*puVar25 = puVar20;" (assignment_expression "*puVar25 = puVar20" (pointer_expression "*puVar25" * identifier) = identifier) ;) }))) (expression_statement "puVar20[3] = puVar19;" (assignment_expression "puVar20[3] = puVar19" (subscript_expression "puVar20[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar20[1] = 0;" (assignment_expression "puVar20[1] = 0" (subscript_expression "puVar20[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar20[2] = local_b0;" (assignment_expression "puVar20[2] = local_b0" (subscript_expression "puVar20[2]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }" else (compound_statement "{\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }" { (expression_statement "(**(code **)(puVar37 + 0x88394))(puVar19);" (call_expression "(**(code **)(puVar37 + 0x88394))(puVar19)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" ( (pointer_expression "**(code **)(puVar37 + 0x88394)" * (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(puVar19)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);" (call_expression "(**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b88))" ( (pointer_expression "**(code **)(puVar37 + 0x88b88)" * (pointer_expression "*(code **)(puVar37 + 0x88b88)" * (cast_expression "(code **)(puVar37 + 0x88b88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88b88)" ( (binary_expression "puVar37 + 0x88b88" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) )))) + number_literal) )))) , identifier ))) ;) }))) }))) (expression_statement "(**(code **)(puVar37 + 0x88394))(ppppbVar13);" (call_expression "(**(code **)(puVar37 + 0x88394))(ppppbVar13)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" ( (pointer_expression "**(code **)(puVar37 + 0x88394)" * (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(ppppbVar13)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" * (cast_expression "(undefined4 *)(iVar22 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = number_literal) ;) (expression_statement "unaff_s6 = (byte *****)ppppbVar13;" (assignment_expression "unaff_s6 = (byte *****)ppppbVar13" identifier = (cast_expression "(byte *****)ppppbVar13" ( (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_000893ac;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);" statement_identifier : (expression_statement "iVar11 = (*pcVar38)(iVar23 + 0x455c);" (assignment_expression "iVar11 = (*pcVar38)(iVar23 + 0x455c)" identifier = (call_expression "(*pcVar38)(iVar23 + 0x455c)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(iVar23 + 0x455c)" ( (binary_expression "iVar23 + 0x455c" identifier + number_literal) )))) ;)) (expression_statement "pppppbVar36 = pppppbVar33;" (assignment_expression "pppppbVar36 = pppppbVar33" identifier = identifier) ;) (goto_statement "goto LAB_00089674;" goto statement_identifier ;) })) (if_statement "if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }" if (parenthesized_expression "(bVar26 != 1)" ( (binary_expression "bVar26 != 1" identifier != number_literal) )) (compound_statement "{\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }" { (labeled_statement "LAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);" statement_identifier : (expression_statement "iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);" (assignment_expression "iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26)" identifier = (call_expression "(**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26)" (parenthesized_expression "(**(code **)(puVar37 + 0x8844c))" ( (pointer_expression "**(code **)(puVar37 + 0x8844c)" * (pointer_expression "*(code **)(puVar37 + 0x8844c)" * (cast_expression "(code **)(puVar37 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8844c)" ( (binary_expression "puVar37 + 0x8844c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26)" ( (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x474c" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) , identifier )))) ;)) (goto_statement "goto LAB_00089674;" goto statement_identifier ;) })) (expression_statement "(**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));" (call_expression "(**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8))" (parenthesized_expression "(**(code **)(**(int **)(iVar22 + 8) + 4))" ( (pointer_expression "**(code **)(**(int **)(iVar22 + 8) + 4)" * (pointer_expression "*(code **)(**(int **)(iVar22 + 8) + 4)" * (cast_expression "(code **)(**(int **)(iVar22 + 8) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar22 + 8) + 4)" ( (binary_expression "**(int **)(iVar22 + 8) + 4" (pointer_expression "**(int **)(iVar22 + 8)" * (pointer_expression "*(int **)(iVar22 + 8)" * (cast_expression "(int **)(iVar22 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar22 + 8)" ( (binary_expression "iVar22 + 8" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(iVar22 + 8))" ( (pointer_expression "*(int **)(iVar22 + 8)" * (cast_expression "(int **)(iVar22 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar22 + 8)" ( (binary_expression "iVar22 + 8" 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 "FUN_000882d0(iVar22);" (call_expression "FUN_000882d0(iVar22)" identifier (argument_list "(iVar22)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" * (cast_expression "(undefined4 *)(iVar22 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000893ac;" goto statement_identifier ;) })) (labeled_statement "LAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }" statement_identifier : (if_statement "if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }" if (parenthesized_expression "((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9))" ( (binary_expression "(bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)" (parenthesized_expression "(bVar26 == 0x62)" ( (binary_expression "bVar26 == 0x62" identifier == number_literal) )) && (parenthesized_expression "(pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)" ( (comma_expression "pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9" (assignment_expression "pppppbVar36 = *(byte ******)(puVar37 + 0x88acc)" identifier = (pointer_expression "*(byte ******)(puVar37 + 0x88acc)" * (cast_expression "(byte ******)(puVar37 + 0x88acc)" ( (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 + 0x88acc)" ( (binary_expression "puVar37 + 0x88acc" identifier + number_literal) ))))) , (binary_expression "3 < (int)unaff_s6 + -9" number_literal < (binary_expression "(int)unaff_s6 + -9" (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal))) ))) )) (compound_statement "{\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }" { (expression_statement "pppppbVar36 = pppppbVar36 + 0x1e70;" (assignment_expression "pppppbVar36 = pppppbVar36 + 0x1e70" identifier = (binary_expression "pppppbVar36 + 0x1e70" identifier + number_literal)) ;) (expression_statement "iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);" (assignment_expression "iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0)" identifier = (call_expression "FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0)" identifier (argument_list "(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0)" ( (binary_expression "iVar22 + 0x29" identifier + number_literal) , (cast_expression "(byte *)((int)unaff_s6 + -9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s6 + -9)" ( (binary_expression "(int)unaff_s6 + -9" (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) , (pointer_expression "&local_90" & identifier) , number_literal )))) ;) (expression_statement "ppppbVar13 = local_90;" (assignment_expression "ppppbVar13 = local_90" identifier = identifier) ;) (if_statement "if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }" if (parenthesized_expression "((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0))" ( (binary_expression "(iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)" (parenthesized_expression "(iVar23 != 0)" ( (binary_expression "iVar23 != 0" identifier != number_literal) )) && (parenthesized_expression "((byte *****)local_90 != (byte *****)0x0)" ( (binary_expression "(byte *****)local_90 != (byte *****)0x0" (cast_expression "(byte *****)local_90" ( (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                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }" { (expression_statement "local_b0 = local_90;" (assignment_expression "local_b0 = local_90" identifier = identifier) ;) (expression_statement "iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);" (assignment_expression "iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c)" identifier = (call_expression "(**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c)" (parenthesized_expression "(**(code **)(puVar37 + 0x8953c))" ( (pointer_expression "**(code **)(puVar37 + 0x8953c)" * (pointer_expression "*(code **)(puVar37 + 0x8953c)" * (cast_expression "(code **)(puVar37 + 0x8953c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8953c)" ( (binary_expression "puVar37 + 0x8953c" identifier + number_literal) ))))) )) (argument_list "(local_90,*(int *)(puVar37 + 0x8839c) + -0x363c)" ( identifier , (binary_expression "*(int *)(puVar37 + 0x8839c) + -0x363c" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }" if (parenthesized_expression "((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   ))" ( (binary_expression "(iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )" (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )" ( (comma_expression "iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0" (assignment_expression "iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14))" identifier = (call_expression "(**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14))" (parenthesized_expression "(**(code **)(puVar37 + 0x888c4))" ( (pointer_expression "**(code **)(puVar37 + 0x888c4)" * (pointer_expression "*(code **)(puVar37 + 0x888c4)" * (cast_expression "(code **)(puVar37 + 0x888c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x888c4)" ( (binary_expression "puVar37 + 0x888c4" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14))" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) )))) + number_literal) )))) )))) , (binary_expression "iVar23 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }" { (expression_statement "uVar12 = *(undefined4 *)(iVar22 + 0x25);" (assignment_expression "uVar12 = *(undefined4 *)(iVar22 + 0x25)" identifier = (pointer_expression "*(undefined4 *)(iVar22 + 0x25)" * (cast_expression "(undefined4 *)(iVar22 + 0x25)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x25)" ( (binary_expression "iVar22 + 0x25" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar37 + 0x88394))(ppppbVar13);" (call_expression "(**(code **)(puVar37 + 0x88394))(ppppbVar13)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" ( (pointer_expression "**(code **)(puVar37 + 0x88394)" * (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(ppppbVar13)" ( identifier ))) ;) (expression_statement "local_88 = uVar12;" (assignment_expression "local_88 = uVar12" identifier = identifier) ;) (expression_statement "puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);" (assignment_expression "puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0)" identifier = (cast_expression "(undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0)" identifier (argument_list "(*(undefined4 *)(iVar22 + 0x403c),&local_90,0)" ( (pointer_expression "*(undefined4 *)(iVar22 + 0x403c)" * (cast_expression "(undefined4 *)(iVar22 + 0x403c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x403c)" ( (binary_expression "iVar22 + 0x403c" identifier + number_literal) )))) , (pointer_expression "&local_90" & identifier) , number_literal ))))) ;) (if_statement "if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }" if (parenthesized_expression "(puVar19 == (undefined4 *)0x0)" ( (binary_expression "puVar19 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }" { (expression_statement "pcVar38 = *(code **)(puVar37 + 0x8844c);" (assignment_expression "pcVar38 = *(code **)(puVar37 + 0x8844c)" identifier = (pointer_expression "*(code **)(puVar37 + 0x8844c)" * (cast_expression "(code **)(puVar37 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8844c)" ( (binary_expression "puVar37 + 0x8844c" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;" (assignment_expression "iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8" identifier = (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x46b8" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal)) ;) (labeled_statement "LAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);" statement_identifier : (expression_statement "uVar12 = (*pcVar38)(iVar11,uVar12);" (assignment_expression "uVar12 = (*pcVar38)(iVar11,uVar12)" identifier = (call_expression "(*pcVar38)(iVar11,uVar12)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(iVar11,uVar12)" ( identifier , identifier )))) ;)) (expression_statement "FUN_000887e0(iVar22,uVar12);" (call_expression "FUN_000887e0(iVar22,uVar12)" identifier (argument_list "(iVar22,uVar12)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar37 + 0x88394))(uVar12);" (call_expression "(**(code **)(puVar37 + 0x88394))(uVar12)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" ( (pointer_expression "**(code **)(puVar37 + 0x88394)" * (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(uVar12)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" * (cast_expression "(undefined4 *)(iVar22 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }" else (compound_statement "{\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }" { (expression_statement "local_68 = (byte ***)*puVar19;" (assignment_expression "local_68 = (byte ***)*puVar19" identifier = (cast_expression "(byte ***)*puVar19" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "*puVar19" * identifier))) ;) (expression_statement "FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);" (call_expression "FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc)" identifier (argument_list "(iVar22 + 8,100,&local_68,4,0,0xc)" ( (binary_expression "iVar22 + 8" identifier + number_literal) , number_literal , (pointer_expression "&local_68" & identifier) , number_literal , number_literal , number_literal ))) ;) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" * (cast_expression "(undefined4 *)(iVar22 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = number_literal) ;) }))) (goto_statement "goto LAB_000893ac;" goto statement_identifier ;) })) (expression_statement "iVar23 = *(int *)(puVar37 + 0x8839c);" (assignment_expression "iVar23 = *(int *)(puVar37 + 0x8839c)" identifier = (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) ))))) ;) (expression_statement "iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);" (assignment_expression "iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0)" identifier = (call_expression "(**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0)" (parenthesized_expression "(**(code **)(puVar37 + 0x8953c))" ( (pointer_expression "**(code **)(puVar37 + 0x8953c)" * (pointer_expression "*(code **)(puVar37 + 0x8953c)" * (cast_expression "(code **)(puVar37 + 0x8953c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8953c)" ( (binary_expression "puVar37 + 0x8953c" identifier + number_literal) ))))) )) (argument_list "(ppppbVar13,iVar23 + -0x36a0)" ( identifier , (binary_expression "iVar23 + -0x36a0" identifier + number_literal) )))) ;) (if_statement "if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }" if (parenthesized_expression "(iVar21 != 0)" ( (binary_expression "iVar21 != 0" identifier != number_literal) )) (compound_statement "{\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }" { (expression_statement "(**(code **)(puVar37 + 0x88394))(ppppbVar13);" (call_expression "(**(code **)(puVar37 + 0x88394))(ppppbVar13)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" ( (pointer_expression "**(code **)(puVar37 + 0x88394)" * (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(ppppbVar13)" ( identifier ))) ;) (expression_statement "local_b0 = ppppbVar13;" (assignment_expression "local_b0 = ppppbVar13" identifier = identifier) ;) (goto_statement "goto LAB_00089cc8;" goto statement_identifier ;) })) (expression_statement "uVar12 = *(undefined4 *)(iVar22 + 0x25);" (assignment_expression "uVar12 = *(undefined4 *)(iVar22 + 0x25)" identifier = (pointer_expression "*(undefined4 *)(iVar22 + 0x25)" * (cast_expression "(undefined4 *)(iVar22 + 0x25)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x25)" ( (binary_expression "iVar22 + 0x25" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar37 + 0x88394))(ppppbVar13);" (call_expression "(**(code **)(puVar37 + 0x88394))(ppppbVar13)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" ( (pointer_expression "**(code **)(puVar37 + 0x88394)" * (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(ppppbVar13)" ( identifier ))) ;) (expression_statement "local_88 = uVar12;" (assignment_expression "local_88 = uVar12" identifier = identifier) ;) (expression_statement "local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);" (assignment_expression "local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0)" identifier = (cast_expression "(byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0)" identifier (argument_list "(*(undefined4 *)(iVar22 + 0x403c),&local_90,0)" ( (pointer_expression "*(undefined4 *)(iVar22 + 0x403c)" * (cast_expression "(undefined4 *)(iVar22 + 0x403c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x403c)" ( (binary_expression "iVar22 + 0x403c" identifier + number_literal) )))) , (pointer_expression "&local_90" & identifier) , number_literal ))))) ;) (if_statement "if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }" if (parenthesized_expression "((byte *****)local_b0 == (byte *****)0x0)" ( (binary_expression "(byte *****)local_b0 == (byte *****)0x0" (cast_expression "(byte *****)local_b0" ( (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 **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }" { (expression_statement "pcVar38 = *(code **)(puVar37 + 0x8844c);" (assignment_expression "pcVar38 = *(code **)(puVar37 + 0x8844c)" identifier = (pointer_expression "*(code **)(puVar37 + 0x8844c)" * (cast_expression "(code **)(puVar37 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8844c)" ( (binary_expression "puVar37 + 0x8844c" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;" (assignment_expression "iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0" identifier = (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x46f0" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal)) ;) (goto_statement "goto LAB_0008a3a0;" goto statement_identifier ;) })) (if_statement "if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }" if (parenthesized_expression "((int)pbVar32 < 0x11)" ( (binary_expression "(int)pbVar32 < 0x11" (cast_expression "(int)pbVar32" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }" { (expression_statement "iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);" (assignment_expression "iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724)" identifier = (call_expression "(**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724)" (parenthesized_expression "(**(code **)(puVar37 + 0x8844c))" ( (pointer_expression "**(code **)(puVar37 + 0x8844c)" * (pointer_expression "*(code **)(puVar37 + 0x8844c)" * (cast_expression "(code **)(puVar37 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8844c)" ( (binary_expression "puVar37 + 0x8844c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x4724)" ( (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x4724" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_00089674;" goto statement_identifier ;) })) (expression_statement "cVar5 = *(char *)(iVar22 + 0x34);" (assignment_expression "cVar5 = *(char *)(iVar22 + 0x34)" identifier = (pointer_expression "*(char *)(iVar22 + 0x34)" * (cast_expression "(char *)(iVar22 + 0x34)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x34)" ( (binary_expression "iVar22 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "pbVar30 = (byte *)((int)unaff_s6 + -0x16);" (assignment_expression "pbVar30 = (byte *)((int)unaff_s6 + -0x16)" identifier = (cast_expression "(byte *)((int)unaff_s6 + -0x16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s6 + -0x16)" ( (binary_expression "(int)unaff_s6 + -0x16" (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "cVar6 = *(char *)(iVar22 + 0x35);" (assignment_expression "cVar6 = *(char *)(iVar22 + 0x35)" identifier = (pointer_expression "*(char *)(iVar22 + 0x35)" * (cast_expression "(char *)(iVar22 + 0x35)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x35)" ( (binary_expression "iVar22 + 0x35" identifier + number_literal) ))))) ;) (if_statement "if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }" if (parenthesized_expression "((int)pbVar30 < 4)" ( (binary_expression "(int)pbVar30 < 4" (cast_expression "(int)pbVar30" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }" { (expression_statement "ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);" (assignment_expression "ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0)" identifier = (cast_expression "(byte ****)(**(code **)(puVar37 + 0x88b90))(0)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(**(code **)(puVar37 + 0x88b90))(0)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b90))" ( (pointer_expression "**(code **)(puVar37 + 0x88b90)" * (pointer_expression "*(code **)(puVar37 + 0x88b90)" * (cast_expression "(code **)(puVar37 + 0x88b90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88b90)" ( (binary_expression "puVar37 + 0x88b90" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal ))))) ;) (expression_statement "(**(code **)(puVar37 + 0x88394))(0);" (call_expression "(**(code **)(puVar37 + 0x88394))(0)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" ( (pointer_expression "**(code **)(puVar37 + 0x88394)" * (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal ))) ;) (labeled_statement "LAB_0008a36c:\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                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }" else (compound_statement "{\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }" { (expression_statement "iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);" (assignment_expression "iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0)" identifier = (call_expression "FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0)" identifier (argument_list "(iVar22 + 0x36,pbVar30,&local_90,0)" ( (binary_expression "iVar22 + 0x36" identifier + number_literal) , identifier , (pointer_expression "&local_90" & identifier) , number_literal )))) ;) (expression_statement "pppppbVar33 = (byte *****)local_90;" (assignment_expression "pppppbVar33 = (byte *****)local_90" identifier = (cast_expression "(byte *****)local_90" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 0" identifier == number_literal) )) (compound_statement "{\n                    pppppbVar33 = (byte *****)0x0;\n                  }" { (expression_statement "pppppbVar33 = (byte *****)0x0;" (assignment_expression "pppppbVar33 = (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 "ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);" (assignment_expression "ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33)" identifier = (cast_expression "(byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(**(code **)(puVar37 + 0x88b90))(pppppbVar33)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b90))" ( (pointer_expression "**(code **)(puVar37 + 0x88b90)" * (pointer_expression "*(code **)(puVar37 + 0x88b90)" * (cast_expression "(code **)(puVar37 + 0x88b90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88b90)" ( (binary_expression "puVar37 + 0x88b90" identifier + number_literal) ))))) )) (argument_list "(pppppbVar33)" ( identifier ))))) ;) (expression_statement "(**(code **)(puVar37 + 0x88394))(pppppbVar33);" (call_expression "(**(code **)(puVar37 + 0x88394))(pppppbVar33)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" ( (pointer_expression "**(code **)(puVar37 + 0x88394)" * (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(pppppbVar33)" ( identifier ))) ;) (expression_statement "iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);" (assignment_expression "iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90)" identifier = (call_expression "FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90)" identifier (argument_list "(iVar22 + 0x36,pbVar30,0,&local_90)" ( (binary_expression "iVar22 + 0x36" identifier + number_literal) , identifier , number_literal , (pointer_expression "&local_90" & identifier) )))) ;) (expression_statement "pppppbVar33 = (byte *****)local_90;" (assignment_expression "pppppbVar33 = (byte *****)local_90" identifier = (cast_expression "(byte *****)local_90" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if (iVar21 == 0) goto LAB_0008a36c;" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0008a36c;" goto statement_identifier ;)) }))) (expression_statement "pbVar30 = (byte *)((int)pppppbVar33 + 0x11);" (assignment_expression "pbVar30 = (byte *)((int)pppppbVar33 + 0x11)" identifier = (cast_expression "(byte *)((int)pppppbVar33 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar33 + 0x11)" ( (binary_expression "(int)pppppbVar33 + 0x11" (cast_expression "(int)pppppbVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar21 = (int)pbVar32 - (int)pbVar30;" (assignment_expression "iVar21 = (int)pbVar32 - (int)pbVar30" identifier = (binary_expression "(int)pbVar32 - (int)pbVar30" (cast_expression "(int)pbVar32" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar30" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "unaff_s6 = (byte *****)0x0;" (assignment_expression "unaff_s6 = (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 (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }" if (parenthesized_expression "(iVar21 < 4)" ( (binary_expression "iVar21 < 4" identifier < number_literal) )) (compound_statement "{\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }" { (labeled_statement "LAB_00089ec4:\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                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }" else (compound_statement "{\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }" { (expression_statement "iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);" (assignment_expression "iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0)" identifier = (call_expression "FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0)" identifier (argument_list "(pbVar30 + iVar11,iVar21,&local_90,0)" ( (binary_expression "pbVar30 + iVar11" identifier + identifier) , identifier , (pointer_expression "&local_90" & identifier) , number_literal )))) ;) (expression_statement "unaff_s6 = (byte *****)local_90;" (assignment_expression "unaff_s6 = (byte *****)local_90" identifier = (cast_expression "(byte *****)local_90" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (compound_statement "{\n                    unaff_s6 = (byte *****)0x0;\n                  }" { (expression_statement "unaff_s6 = (byte *****)0x0;" (assignment_expression "unaff_s6 = (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 "iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);" (assignment_expression "iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90)" identifier = (call_expression "FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90)" identifier (argument_list "(pbVar30 + iVar11,iVar21,0,&local_90)" ( (binary_expression "pbVar30 + iVar11" identifier + identifier) , identifier , number_literal , (pointer_expression "&local_90" & identifier) )))) ;) (expression_statement "pppppbVar33 = (byte *****)local_90;" (assignment_expression "pppppbVar33 = (byte *****)local_90" identifier = (cast_expression "(byte *****)local_90" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if (iVar21 == 0) goto LAB_00089ec4;" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00089ec4;" goto statement_identifier ;)) }))) (if_statement "if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }" if (parenthesized_expression "((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3))" ( (binary_expression "(int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)" (cast_expression "(int)pbVar32" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(pbVar30 + (int)pppppbVar33 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar30 + (int)pppppbVar33 + 3)" ( (binary_expression "pbVar30 + (int)pppppbVar33 + 3" (binary_expression "pbVar30 + (int)pppppbVar33" identifier + (cast_expression "(int)pppppbVar33" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal) )))) )) (compound_statement "{\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }" { (expression_statement "iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);" (assignment_expression "iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724)" identifier = (call_expression "(**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724)" (parenthesized_expression "(**(code **)(puVar37 + 0x8844c))" ( (pointer_expression "**(code **)(puVar37 + 0x8844c)" * (pointer_expression "*(code **)(puVar37 + 0x8844c)" * (cast_expression "(code **)(puVar37 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8844c)" ( (binary_expression "puVar37 + 0x8844c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x4724)" ( (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x4724" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(puVar37 + 0x88394))(unaff_s6);" (call_expression "(**(code **)(puVar37 + 0x88394))(unaff_s6)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" ( (pointer_expression "**(code **)(puVar37 + 0x88394)" * (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(unaff_s6)" ( identifier ))) ;) (goto_statement "goto LAB_00089674;" goto statement_identifier ;) })) (expression_statement "pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;" (assignment_expression "pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11" identifier = (binary_expression "pbVar30 + (int)pppppbVar33 + iVar11" (binary_expression "pbVar30 + (int)pppppbVar33" identifier + (cast_expression "(int)pppppbVar33" ( (type_descriptor "int" primitive_type) ) identifier)) + identifier)) ;) (if_statement "if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }" if (parenthesized_expression "(-1 < (int)ppppbVar13)" ( (binary_expression "-1 < (int)ppppbVar13" number_literal < (cast_expression "(int)ppppbVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }" { (expression_statement "pcVar38 = *(code **)(puVar37 + 0x88b94);" (assignment_expression "pcVar38 = *(code **)(puVar37 + 0x88b94)" identifier = (pointer_expression "*(code **)(puVar37 + 0x88b94)" * (cast_expression "(code **)(puVar37 + 0x88b94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88b94)" ( (binary_expression "puVar37 + 0x88b94" identifier + number_literal) ))))) ;) (expression_statement "bVar26 = *pbVar32;" (assignment_expression "bVar26 = *pbVar32" identifier = (pointer_expression "*pbVar32" * 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 = pbVar32[1];" (assignment_expression "bVar1 = pbVar32[1]" identifier = (subscript_expression "pbVar32[1]" identifier [ number_literal ])) ;) (expression_statement "bVar2 = pbVar32[3];" (assignment_expression "bVar2 = pbVar32[3]" identifier = (subscript_expression "pbVar32[3]" identifier [ number_literal ])) ;) (expression_statement "bVar3 = pbVar32[2];" (assignment_expression "bVar3 = pbVar32[2]" identifier = (subscript_expression "pbVar32[2]" identifier [ number_literal ])) ;) (expression_statement "((byte *****)local_b0)[6] = ppppbVar13;" (assignment_expression "((byte *****)local_b0)[6] = ppppbVar13" (subscript_expression "((byte *****)local_b0)[6]" (parenthesized_expression "((byte *****)local_b0)" ( (cast_expression "(byte *****)local_b0" ( (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 "ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);" (assignment_expression "ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8)" identifier = (cast_expression "(byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(unaff_s6,(byte *****)local_b0 + 8)" ( identifier , (binary_expression "(byte *****)local_b0 + 8" (cast_expression "(byte *****)local_b0" ( (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 **)(puVar37 + 0x88394);" (assignment_expression "pcVar38 = *(code **)(puVar37 + 0x88394)" identifier = (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) ;) (expression_statement "((byte *****)local_b0)[7] = ppppbVar15;" (assignment_expression "((byte *****)local_b0)[7] = ppppbVar15" (subscript_expression "((byte *****)local_b0)[7]" (parenthesized_expression "((byte *****)local_b0)" ( (cast_expression "(byte *****)local_b0" ( (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)(unaff_s6);" (call_expression "(*pcVar38)(unaff_s6)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(unaff_s6)" ( identifier ))) ;) (expression_statement "ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);" (assignment_expression "ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0)" identifier = (cast_expression "(byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b98))" ( (pointer_expression "**(code **)(puVar37 + 0x88b98)" * (pointer_expression "*(code **)(puVar37 + 0x88b98)" * (cast_expression "(code **)(puVar37 + 0x88b98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88b98)" ( (binary_expression "puVar37 + 0x88b98" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) )))) + number_literal) )))) , identifier , identifier , identifier ))))) ;) (expression_statement "((byte *****)local_b0)[5] = ppppbVar13;" (assignment_expression "((byte *****)local_b0)[5] = ppppbVar13" (subscript_expression "((byte *****)local_b0)[5]" (parenthesized_expression "((byte *****)local_b0)" ( (cast_expression "(byte *****)local_b0" ( (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 *****)local_b0)[9] = (byte ****)(uint)bVar10;" (assignment_expression "((byte *****)local_b0)[9] = (byte ****)(uint)bVar10" (subscript_expression "((byte *****)local_b0)[9]" (parenthesized_expression "((byte *****)local_b0)" ( (cast_expression "(byte *****)local_b0" ( (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 "pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);" (assignment_expression "pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3])" identifier = (cast_expression "(byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3])" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (call_expression "(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3])" (parenthesized_expression "(**(code **)(puVar37 + 0x895d8))" ( (pointer_expression "**(code **)(puVar37 + 0x895d8)" * (pointer_expression "*(code **)(puVar37 + 0x895d8)" * (cast_expression "(code **)(puVar37 + 0x895d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x895d8)" ( (binary_expression "puVar37 + 0x895d8" identifier + number_literal) ))))) )) (argument_list "(ppppbVar13[3])" ( (subscript_expression "ppppbVar13[3]" identifier [ number_literal ]) ))))) ;) (expression_statement "unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);" (assignment_expression "unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4])" identifier = (cast_expression "(byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4])" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (call_expression "(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4])" (parenthesized_expression "(**(code **)(puVar37 + 0x895d8))" ( (pointer_expression "**(code **)(puVar37 + 0x895d8)" * (pointer_expression "*(code **)(puVar37 + 0x895d8)" * (cast_expression "(code **)(puVar37 + 0x895d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x895d8)" ( (binary_expression "puVar37 + 0x895d8" identifier + number_literal) ))))) )) (argument_list "(ppppbVar13[4])" ( (subscript_expression "ppppbVar13[4]" identifier [ number_literal ]) ))))) ;) (expression_statement "puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);" (assignment_expression "puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1)" identifier = (cast_expression "(undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1)" (parenthesized_expression "(**(code **)(puVar37 + 0x88390))" ( (pointer_expression "**(code **)(puVar37 + 0x88390)" * (pointer_expression "*(code **)(puVar37 + 0x88390)" * (cast_expression "(code **)(puVar37 + 0x88390)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88390)" ( (binary_expression "puVar37 + 0x88390" identifier + number_literal) ))))) )) (argument_list "((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1)" ( (binary_expression "(byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6" (cast_expression "(byte *)((int)pppppbVar36 + 0x1d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar36 + 0x1d)" ( (binary_expression "(int)pppppbVar36 + 0x1d" (cast_expression "(int)pppppbVar36" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) + (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)) , number_literal ))))) ;) (expression_statement "puVar16[4] = 0;" (assignment_expression "puVar16[4] = 0" (subscript_expression "puVar16[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar16[5] = 0;" (assignment_expression "puVar16[5] = 0" (subscript_expression "puVar16[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar27 = *(uint *)(iVar23 + -0x36a0);" (assignment_expression "uVar27 = *(uint *)(iVar23 + -0x36a0)" identifier = (pointer_expression "*(uint *)(iVar23 + -0x36a0)" * (cast_expression "(uint *)(iVar23 + -0x36a0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + -0x36a0)" ( (binary_expression "iVar23 + -0x36a0" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(undefined1 *)(iVar23 + -0x369c);" (assignment_expression "uVar7 = *(undefined1 *)(iVar23 + -0x369c)" identifier = (pointer_expression "*(undefined1 *)(iVar23 + -0x369c)" * (cast_expression "(undefined1 *)(iVar23 + -0x369c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + -0x369c)" ( (binary_expression "iVar23 + -0x369c" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(undefined1 *)(iVar23 + -0x369b);" (assignment_expression "uVar8 = *(undefined1 *)(iVar23 + -0x369b)" identifier = (pointer_expression "*(undefined1 *)(iVar23 + -0x369b)" * (cast_expression "(undefined1 *)(iVar23 + -0x369b)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + -0x369b)" ( (binary_expression "iVar23 + -0x369b" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = *(undefined1 *)(iVar23 + -0x369a);" (assignment_expression "uVar9 = *(undefined1 *)(iVar23 + -0x369a)" identifier = (pointer_expression "*(undefined1 *)(iVar23 + -0x369a)" * (cast_expression "(undefined1 *)(iVar23 + -0x369a)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + -0x369a)" ( (binary_expression "iVar23 + -0x369a" identifier + number_literal) ))))) ;) (expression_statement "puVar16[3] = (char)uVar12;" (assignment_expression "puVar16[3] = (char)uVar12" (subscript_expression "puVar16[3]" identifier [ number_literal ]) = (cast_expression "(char)uVar12" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*puVar16 = (char)((uint)uVar12 >> 0x18);" (assignment_expression "*puVar16 = (char)((uint)uVar12 >> 0x18)" (pointer_expression "*puVar16" * identifier) = (cast_expression "(char)((uint)uVar12 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar12 >> 0x18)" ( (binary_expression "(uint)uVar12 >> 0x18" (cast_expression "(uint)uVar12" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar16[1] = (char)((uint)uVar12 >> 0x10);" (assignment_expression "puVar16[1] = (char)((uint)uVar12 >> 0x10)" (subscript_expression "puVar16[1]" identifier [ number_literal ]) = (cast_expression "(char)((uint)uVar12 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar12 >> 0x10)" ( (binary_expression "(uint)uVar12 >> 0x10" (cast_expression "(uint)uVar12" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar16[2] = (char)((uint)uVar12 >> 8);" (assignment_expression "puVar16[2] = (char)((uint)uVar12 >> 8)" (subscript_expression "puVar16[2]" identifier [ number_literal ]) = (cast_expression "(char)((uint)uVar12 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar12 >> 8)" ( (binary_expression "(uint)uVar12 >> 8" (cast_expression "(uint)uVar12" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar16[7] = 7;" (assignment_expression "puVar16[7] = 7" (subscript_expression "puVar16[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar16[6] = 0;" (assignment_expression "puVar16[6] = 0" (subscript_expression "puVar16[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar17 = puVar16 + 8;" (assignment_expression "puVar17 = puVar16 + 8" identifier = (binary_expression "puVar16 + 8" identifier + number_literal)) ;) (expression_statement "uVar31 = (uint)puVar17 & 3;" (assignment_expression "uVar31 = (uint)puVar17 & 3" identifier = (binary_expression "(uint)puVar17 & 3" (cast_expression "(uint)puVar17" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "*(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;" (assignment_expression "*(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8" (pointer_expression "*(uint *)(puVar17 + -uVar31)" * (cast_expression "(uint *)(puVar17 + -uVar31)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -uVar31)" ( (binary_expression "puVar17 + -uVar31" identifier + (unary_expression "-uVar31" - identifier)) )))) = (binary_expression "*(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8" (binary_expression "*(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8" (pointer_expression "*(uint *)(puVar17 + -uVar31)" * (cast_expression "(uint *)(puVar17 + -uVar31)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -uVar31)" ( (binary_expression "puVar17 + -uVar31" identifier + (unary_expression "-uVar31" - identifier)) )))) & (binary_expression "-1 << (4 - uVar31) * 8" number_literal << (binary_expression "(4 - uVar31) * 8" (parenthesized_expression "(4 - uVar31)" ( (binary_expression "4 - uVar31" number_literal - identifier) )) * number_literal))) | (binary_expression "uVar27 >> uVar31 * 8" identifier >> (binary_expression "uVar31 * 8" identifier * number_literal)))) ;) (expression_statement "puVar17 = puVar16 + 0xb;" (assignment_expression "puVar17 = puVar16 + 0xb" identifier = (binary_expression "puVar16 + 0xb" identifier + number_literal)) ;) (expression_statement "uVar31 = (uint)puVar17 & 3;" (assignment_expression "uVar31 = (uint)puVar17 & 3" identifier = (binary_expression "(uint)puVar17 & 3" (cast_expression "(uint)puVar17" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "*(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;" (assignment_expression "*(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8" (pointer_expression "*(uint *)(puVar17 + -uVar31)" * (cast_expression "(uint *)(puVar17 + -uVar31)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -uVar31)" ( (binary_expression "puVar17 + -uVar31" identifier + (unary_expression "-uVar31" - identifier)) )))) = (binary_expression "*(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8" (binary_expression "*(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8" (pointer_expression "*(uint *)(puVar17 + -uVar31)" * (cast_expression "(uint *)(puVar17 + -uVar31)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -uVar31)" ( (binary_expression "puVar17 + -uVar31" identifier + (unary_expression "-uVar31" - identifier)) )))) & (binary_expression "0xffffffffU >> (uVar31 + 1) * 8" number_literal >> (binary_expression "(uVar31 + 1) * 8" (parenthesized_expression "(uVar31 + 1)" ( (binary_expression "uVar31 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "uVar27 << (3 - uVar31) * 8" identifier << (binary_expression "(3 - uVar31) * 8" (parenthesized_expression "(3 - uVar31)" ( (binary_expression "3 - uVar31" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "puVar16[0xc] = uVar7;" (assignment_expression "puVar16[0xc] = uVar7" (subscript_expression "puVar16[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar16[0xd] = uVar8;" (assignment_expression "puVar16[0xd] = uVar8" (subscript_expression "puVar16[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar16[0xe] = uVar9;" (assignment_expression "puVar16[0xe] = uVar9" (subscript_expression "puVar16[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar16[0x10] = bVar10;" (assignment_expression "puVar16[0x10] = bVar10" (subscript_expression "puVar16[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);" (assignment_expression "puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18)" (subscript_expression "puVar16[0x11]" identifier [ number_literal ]) = (cast_expression "(char)((uint)pppppbVar36 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)pppppbVar36 >> 0x18)" ( (binary_expression "(uint)pppppbVar36 >> 0x18" (cast_expression "(uint)pppppbVar36" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);" (assignment_expression "puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10)" (subscript_expression "puVar16[0x12]" identifier [ number_literal ]) = (cast_expression "(char)((uint)pppppbVar36 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)pppppbVar36 >> 0x10)" ( (binary_expression "(uint)pppppbVar36 >> 0x10" (cast_expression "(uint)pppppbVar36" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);" (assignment_expression "puVar16[0x13] = (char)((uint)pppppbVar36 >> 8)" (subscript_expression "puVar16[0x13]" identifier [ number_literal ]) = (cast_expression "(char)((uint)pppppbVar36 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)pppppbVar36 >> 8)" ( (binary_expression "(uint)pppppbVar36 >> 8" (cast_expression "(uint)pppppbVar36" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar16[0x14] = (char)pppppbVar36;" (assignment_expression "puVar16[0x14] = (char)pppppbVar36" (subscript_expression "puVar16[0x14]" identifier [ number_literal ]) = (cast_expression "(char)pppppbVar36" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pcVar38 = *(code **)(puVar37 + 0x89610);" (assignment_expression "pcVar38 = *(code **)(puVar37 + 0x89610)" identifier = (pointer_expression "*(code **)(puVar37 + 0x89610)" * (cast_expression "(code **)(puVar37 + 0x89610)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x89610)" ( (binary_expression "puVar37 + 0x89610" identifier + number_literal) ))))) ;) (expression_statement "puVar16[0xf] = cVar5 != '\0';" (assignment_expression "puVar16[0xf] = cVar5 != '\0'" (subscript_expression "puVar16[0xf]" identifier [ number_literal ]) = (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ;) (expression_statement "(*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);" (call_expression "(*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36)" ( (binary_expression "puVar16 + 0x15" identifier + number_literal) , (subscript_expression "((byte *****)local_b0)[5][3]" (subscript_expression "((byte *****)local_b0)[5]" (parenthesized_expression "((byte *****)local_b0)" ( (cast_expression "(byte *****)local_b0" ( (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 "puVar17 = puVar16 + (int)pppppbVar36;" (assignment_expression "puVar17 = puVar16 + (int)pppppbVar36" identifier = (binary_expression "puVar16 + (int)pppppbVar36" identifier + (cast_expression "(int)pppppbVar36" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);" (assignment_expression "puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18)" (subscript_expression "puVar17[0x15]" identifier [ number_literal ]) = (cast_expression "(char)((uint)unaff_s6 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)unaff_s6 >> 0x18)" ( (binary_expression "(uint)unaff_s6 >> 0x18" (cast_expression "(uint)unaff_s6" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);" (assignment_expression "puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10)" (subscript_expression "puVar17[0x16]" identifier [ number_literal ]) = (cast_expression "(char)((uint)unaff_s6 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)unaff_s6 >> 0x10)" ( (binary_expression "(uint)unaff_s6 >> 0x10" (cast_expression "(uint)unaff_s6" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar17[0x17] = (char)((uint)unaff_s6 >> 8);" (assignment_expression "puVar17[0x17] = (char)((uint)unaff_s6 >> 8)" (subscript_expression "puVar17[0x17]" identifier [ number_literal ]) = (cast_expression "(char)((uint)unaff_s6 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)unaff_s6 >> 8)" ( (binary_expression "(uint)unaff_s6 >> 8" (cast_expression "(uint)unaff_s6" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar17[0x18] = (char)unaff_s6;" (assignment_expression "puVar17[0x18] = (char)unaff_s6" (subscript_expression "puVar17[0x18]" identifier [ number_literal ]) = (cast_expression "(char)unaff_s6" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "(**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);" (call_expression "(**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6)" (parenthesized_expression "(**(code **)(puVar37 + 0x89610))" ( (pointer_expression "**(code **)(puVar37 + 0x89610)" * (pointer_expression "*(code **)(puVar37 + 0x89610)" * (cast_expression "(code **)(puVar37 + 0x89610)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x89610)" ( (binary_expression "puVar37 + 0x89610" identifier + number_literal) ))))) )) (argument_list "(puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6)" ( (binary_expression "puVar16 + (int)((int)pppppbVar36 + 0x19)" identifier + (cast_expression "(int)((int)pppppbVar36 + 0x19)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pppppbVar36 + 0x19)" ( (binary_expression "(int)pppppbVar36 + 0x19" (cast_expression "(int)pppppbVar36" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (subscript_expression "((byte *****)local_b0)[5][4]" (subscript_expression "((byte *****)local_b0)[5]" (parenthesized_expression "((byte *****)local_b0)" ( (cast_expression "(byte *****)local_b0" ( (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 "puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);" (assignment_expression "puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6)" identifier = (binary_expression "puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6)" identifier + (cast_expression "(int)((int)pppppbVar36 + (int)unaff_s6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pppppbVar36 + (int)unaff_s6)" ( (binary_expression "(int)pppppbVar36 + (int)unaff_s6" (cast_expression "(int)pppppbVar36" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "puVar17[0x1c] = bVar2;" (assignment_expression "puVar17[0x1c] = bVar2" (subscript_expression "puVar17[0x1c]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[0x19] = bVar26;" (assignment_expression "puVar17[0x19] = bVar26" (subscript_expression "puVar17[0x19]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[0x1a] = bVar1;" (assignment_expression "puVar17[0x1a] = bVar1" (subscript_expression "puVar17[0x1a]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[0x1b] = bVar3;" (assignment_expression "puVar17[0x1b] = bVar3" (subscript_expression "puVar17[0x1b]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);" (call_expression "(**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b70))" ( (pointer_expression "**(code **)(puVar37 + 0x88b70)" * (pointer_expression "*(code **)(puVar37 + 0x88b70)" * (cast_expression "(code **)(puVar37 + 0x88b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88b70)" ( (binary_expression "puVar37 + 0x88b70" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) )))) + number_literal) )))) , (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) )))) , number_literal , identifier , (binary_expression "(byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6" (cast_expression "(byte *)((int)pppppbVar36 + 0x1d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar36 + 0x1d)" ( (binary_expression "(int)pppppbVar36 + 0x1d" (cast_expression "(int)pppppbVar36" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) + (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)) , number_literal ))) ;) (expression_statement "(**(code **)(puVar37 + 0x88394))(puVar16);" (call_expression "(**(code **)(puVar37 + 0x88394))(puVar16)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" ( (pointer_expression "**(code **)(puVar37 + 0x88394)" * (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(puVar16)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" * (cast_expression "(undefined4 *)(iVar22 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000893ac;" goto statement_identifier ;) })) (goto_statement "goto LAB_00089df8;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);" statement_identifier : (expression_statement "(**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);" (call_expression "(**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b70))" ( (pointer_expression "**(code **)(puVar37 + 0x88b70)" * (pointer_expression "*(code **)(puVar37 + 0x88b70)" * (cast_expression "(code **)(puVar37 + 0x88b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88b70)" ( (binary_expression "puVar37 + 0x88b70" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) )))) + number_literal) )))) , (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) )))) , identifier , identifier , identifier , number_literal ))) ;)) (if_statement "if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }" if (parenthesized_expression "((bVar26 == 0x61) && (3 < (int)pbVar32))" ( (binary_expression "(bVar26 == 0x61) && (3 < (int)pbVar32)" (parenthesized_expression "(bVar26 == 0x61)" ( (binary_expression "bVar26 == 0x61" identifier == number_literal) )) && (parenthesized_expression "(3 < (int)pbVar32)" ( (binary_expression "3 < (int)pbVar32" number_literal < (cast_expression "(int)pbVar32" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }" { (expression_statement "local_88 = *(undefined4 *)(iVar22 + 0x25);" (assignment_expression "local_88 = *(undefined4 *)(iVar22 + 0x25)" identifier = (pointer_expression "*(undefined4 *)(iVar22 + 0x25)" * (cast_expression "(undefined4 *)(iVar22 + 0x25)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x25)" ( (binary_expression "iVar22 + 0x25" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);" (assignment_expression "iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0)" identifier = (call_expression "find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0)" identifier (argument_list "(*(undefined4 *)(iVar22 + 0x403c),&local_90,0)" ( (pointer_expression "*(undefined4 *)(iVar22 + 0x403c)" * (cast_expression "(undefined4 *)(iVar22 + 0x403c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x403c)" ( (binary_expression "iVar22 + 0x403c" identifier + number_literal) )))) , (pointer_expression "&local_90" & identifier) , number_literal )))) ;) (if_statement "if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }" { (if_statement "if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }" if (parenthesized_expression "(*(int *)(iVar11 + 0x10) == 2)" ( (binary_expression "*(int *)(iVar11 + 0x10) == 2" (pointer_expression "*(int *)(iVar11 + 0x10)" * (cast_expression "(int *)(iVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }" { (expression_statement "(**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));" (call_expression "(**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4))" (parenthesized_expression "(**(code **)(puVar37 + 0x88b74))" ( (pointer_expression "**(code **)(puVar37 + 0x88b74)" * (pointer_expression "*(code **)(puVar37 + 0x88b74)" * (cast_expression "(code **)(puVar37 + 0x88b74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88b74)" ( (binary_expression "puVar37 + 0x88b74" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4))" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) )))) + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar11 + 4)" * (cast_expression "(undefined4 *)(iVar11 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_00087608(iVar22,iVar11);" (call_expression "FUN_00087608(iVar22,iVar11)" identifier (argument_list "(iVar22,iVar11)" ( identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" * (cast_expression "(undefined4 *)(iVar22 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }" else (compound_statement "{\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }" { (expression_statement "*(undefined4 *)(iVar11 + 0x10) = 1;" (assignment_expression "*(undefined4 *)(iVar11 + 0x10) = 1" (pointer_expression "*(undefined4 *)(iVar11 + 0x10)" * (cast_expression "(undefined4 *)(iVar11 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" * (cast_expression "(undefined4 *)(iVar22 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = number_literal) ;) }))) (goto_statement "goto LAB_000893ac;" goto statement_identifier ;) })) })) }) (else_clause "else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }" else (compound_statement "{\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }" { (if_statement "if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }" if (parenthesized_expression "(bVar26 == 0x5c)" ( (binary_expression "bVar26 == 0x5c" identifier == number_literal) )) (compound_statement "{\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }" { (if_statement "if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }" if (parenthesized_expression "(3 < (int)pbVar32)" ( (binary_expression "3 < (int)pbVar32" number_literal < (cast_expression "(int)pbVar32" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }" { (expression_statement "pppppbVar36 = *(byte ******)(iVar22 + 0x25);" (assignment_expression "pppppbVar36 = *(byte ******)(iVar22 + 0x25)" identifier = (pointer_expression "*(byte ******)(iVar22 + 0x25)" * (cast_expression "(byte ******)(iVar22 + 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 "(iVar22 + 0x25)" ( (binary_expression "iVar22 + 0x25" identifier + number_literal) ))))) ;) (expression_statement "unaff_s6 = &local_90;" (assignment_expression "unaff_s6 = &local_90" identifier = (pointer_expression "&local_90" & identifier)) ;) (expression_statement "local_90 = (byte ****)pppppbVar36;" (assignment_expression "local_90 = (byte ****)pppppbVar36" identifier = (cast_expression "(byte ****)pppppbVar36" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (expression_statement "iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);" (assignment_expression "iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0)" identifier = (call_expression "find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0)" identifier (argument_list "(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0)" ( (pointer_expression "*(undefined4 *)(iVar22 + 0x4034)" * (cast_expression "(undefined4 *)(iVar22 + 0x4034)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4034)" ( (binary_expression "iVar22 + 0x4034" identifier + number_literal) )))) , identifier , number_literal )))) ;) (if_statement "if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }" if (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) (compound_statement "{\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }" { (expression_statement "local_8c = (byte ****)pppppbVar36;" (assignment_expression "local_8c = (byte ****)pppppbVar36" identifier = (cast_expression "(byte ****)pppppbVar36" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (expression_statement "iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);" (assignment_expression "iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0)" identifier = (call_expression "find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0)" identifier (argument_list "(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0)" ( (pointer_expression "*(undefined4 *)(iVar22 + 0x4044)" * (cast_expression "(undefined4 *)(iVar22 + 0x4044)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4044)" ( (binary_expression "iVar22 + 0x4044" identifier + number_literal) )))) , identifier , number_literal )))) ;) (if_statement "if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }" { (expression_statement "iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);" (assignment_expression "iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36)" identifier = (call_expression "(**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36)" (parenthesized_expression "(**(code **)(puVar37 + 0x8844c))" ( (pointer_expression "**(code **)(puVar37 + 0x8844c)" * (pointer_expression "*(code **)(puVar37 + 0x8844c)" * (cast_expression "(code **)(puVar37 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8844c)" ( (binary_expression "puVar37 + 0x8844c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36)" ( (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x4680" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) , identifier )))) ;) (goto_statement "goto LAB_00089674;" goto statement_identifier ;) })) (expression_statement "share_xchannel_failure(iVar22,iVar11);" (call_expression "share_xchannel_failure(iVar22,iVar11)" identifier (argument_list "(iVar22,iVar11)" ( identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" * (cast_expression "(undefined4 *)(iVar22 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }" else (compound_statement "{\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }" { (expression_statement "iVar21 = *(int *)(iVar22 + 0xc);" (assignment_expression "iVar21 = *(int *)(iVar22 + 0xc)" identifier = (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = 0x5c;" (assignment_expression "uVar12 = 0x5c" identifier = number_literal) ;) (labeled_statement "LAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);" statement_identifier : (expression_statement "(**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);" (call_expression "(**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b70))" ( (pointer_expression "**(code **)(puVar37 + 0x88b70)" * (pointer_expression "*(code **)(puVar37 + 0x88b70)" * (cast_expression "(code **)(puVar37 + 0x88b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88b70)" ( (binary_expression "puVar37 + 0x88b70" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0)" ( (pointer_expression "*(undefined4 *)(iVar21 + 0x14)" * (cast_expression "(undefined4 *)(iVar21 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x14)" ( (binary_expression "iVar21 + 0x14" identifier + number_literal) )))) , (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) )))) , identifier , identifier , identifier , number_literal ))) ;)) (expression_statement "del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);" (call_expression "del234(*(undefined4 *)(iVar22 + 0x4034),iVar23)" identifier (argument_list "(*(undefined4 *)(iVar22 + 0x4034),iVar23)" ( (pointer_expression "*(undefined4 *)(iVar22 + 0x4034)" * (cast_expression "(undefined4 *)(iVar22 + 0x4034)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4034)" ( (binary_expression "iVar22 + 0x4034" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "(**(code **)(puVar37 + 0x88394))(iVar23);" (call_expression "(**(code **)(puVar37 + 0x88394))(iVar23)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" ( (pointer_expression "**(code **)(puVar37 + 0x88394)" * (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(iVar23)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" * (cast_expression "(undefined4 *)(iVar22 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = number_literal) ;) }))) (goto_statement "goto LAB_000893ac;" goto statement_identifier ;) })) (expression_statement "iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);" (assignment_expression "iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658)" identifier = (call_expression "(**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658)" (parenthesized_expression "(**(code **)(puVar37 + 0x8844c))" ( (pointer_expression "**(code **)(puVar37 + 0x8844c)" * (pointer_expression "*(code **)(puVar37 + 0x8844c)" * (cast_expression "(code **)(puVar37 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8844c)" ( (binary_expression "puVar37 + 0x8844c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x4658)" ( (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x4658" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_00089674;" goto statement_identifier ;) })) (if_statement "if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }" if (parenthesized_expression "(0x5b < bVar26)" ( (binary_expression "0x5b < bVar26" number_literal < identifier) )) (compound_statement "{\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }" { (if_statement "if (100 < bVar26) goto LAB_0008965c;" if (parenthesized_expression "(100 < bVar26)" ( (binary_expression "100 < bVar26" number_literal < identifier) )) (goto_statement "goto LAB_0008965c;" goto statement_identifier ;)) (goto_statement "goto LAB_00089714;" goto statement_identifier ;) })) (if_statement "if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }" if (parenthesized_expression "((int)pbVar32 < 0x10)" ( (binary_expression "(int)pbVar32 < 0x10" (cast_expression "(int)pbVar32" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }" { (expression_statement "iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);" (assignment_expression "iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac)" identifier = (call_expression "(**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac)" (parenthesized_expression "(**(code **)(puVar37 + 0x8844c))" ( (pointer_expression "**(code **)(puVar37 + 0x8844c)" * (pointer_expression "*(code **)(puVar37 + 0x8844c)" * (cast_expression "(code **)(puVar37 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8844c)" ( (binary_expression "puVar37 + 0x8844c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x45ac)" ( (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x45ac" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_00089674;" goto statement_identifier ;) })) (expression_statement "uVar31 = iVar22 + 0x25U & 3;" (assignment_expression "uVar31 = iVar22 + 0x25U & 3" identifier = (binary_expression "iVar22 + 0x25U & 3" (binary_expression "iVar22 + 0x25U" identifier + number_literal) & number_literal)) ;) (expression_statement "uVar12 = *(undefined4 *)(iVar22 + 0x29);" (assignment_expression "uVar12 = *(undefined4 *)(iVar22 + 0x29)" identifier = (pointer_expression "*(undefined4 *)(iVar22 + 0x29)" * (cast_expression "(undefined4 *)(iVar22 + 0x29)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x29)" ( (binary_expression "iVar22 + 0x29" identifier + number_literal) ))))) ;) (expression_statement "uVar27 = iVar22 + 0x28U & 3;" (assignment_expression "uVar27 = iVar22 + 0x28U & 3" identifier = (binary_expression "iVar22 + 0x28U & 3" (binary_expression "iVar22 + 0x28U" identifier + number_literal) & number_literal)) ;) (expression_statement "pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);" (assignment_expression "pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8)" identifier = (cast_expression "(byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8)" ( (binary_expression "(*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8" (binary_expression "(*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8" (parenthesized_expression "(*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8)" ( (binary_expression "*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8" (binary_expression "*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8" (pointer_expression "*(int *)((iVar22 + 0x25U) - uVar31)" * (cast_expression "(int *)((iVar22 + 0x25U) - uVar31)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar22 + 0x25U) - uVar31)" ( (binary_expression "(iVar22 + 0x25U) - uVar31" (parenthesized_expression "(iVar22 + 0x25U)" ( (binary_expression "iVar22 + 0x25U" identifier + number_literal) )) - identifier) )))) << (binary_expression "uVar31 * 8" identifier * number_literal)) | (binary_expression "(uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8" (cast_expression "(uint)pppppbVar36" ( (type_descriptor "uint" type_identifier) ) identifier) & (binary_expression "0xffffffffU >> (4 - uVar31) * 8" number_literal >> (binary_expression "(4 - uVar31) * 8" (parenthesized_expression "(4 - uVar31)" ( (binary_expression "4 - uVar31" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar27 + 1) * 8" number_literal << (binary_expression "(uVar27 + 1) * 8" (parenthesized_expression "(uVar27 + 1)" ( (binary_expression "uVar27 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "*(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8" (pointer_expression "*(uint *)((iVar22 + 0x28U) - uVar27)" * (cast_expression "(uint *)((iVar22 + 0x28U) - uVar27)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar22 + 0x28U) - uVar27)" ( (binary_expression "(iVar22 + 0x28U) - uVar27" (parenthesized_expression "(iVar22 + 0x28U)" ( (binary_expression "iVar22 + 0x28U" identifier + number_literal) )) - identifier) )))) >> (binary_expression "(3 - uVar27) * 8" (parenthesized_expression "(3 - uVar27)" ( (binary_expression "3 - uVar27" number_literal - identifier) )) * number_literal))) )))) ;) (expression_statement "local_90 = (byte ****)pppppbVar36;" (assignment_expression "local_90 = (byte ****)pppppbVar36" identifier = (cast_expression "(byte ****)pppppbVar36" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (expression_statement "iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);" (assignment_expression "iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90)" identifier = (call_expression "find234(*(undefined4 *)(iVar22 + 0x4034),&local_90)" identifier (argument_list "(*(undefined4 *)(iVar22 + 0x4034),&local_90)" ( (pointer_expression "*(undefined4 *)(iVar22 + 0x4034)" * (cast_expression "(undefined4 *)(iVar22 + 0x4034)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4034)" ( (binary_expression "iVar22 + 0x4034" identifier + number_literal) )))) , (pointer_expression "&local_90" & identifier) )))) ;) (if_statement "if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }" if (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) (compound_statement "{\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }" { (expression_statement "local_8c = (byte ****)pppppbVar36;" (assignment_expression "local_8c = (byte ****)pppppbVar36" identifier = (cast_expression "(byte ****)pppppbVar36" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (expression_statement "unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);" (assignment_expression "unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0)" identifier = (cast_expression "(byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,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 *)(iVar22 + 0x4044),&local_90,0)" identifier (argument_list "(*(undefined4 *)(iVar22 + 0x4044),&local_90,0)" ( (pointer_expression "*(undefined4 *)(iVar22 + 0x4044)" * (cast_expression "(undefined4 *)(iVar22 + 0x4044)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4044)" ( (binary_expression "iVar22 + 0x4044" identifier + number_literal) )))) , (pointer_expression "&local_90" & identifier) , number_literal ))))) ;) (if_statement "if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;" if (parenthesized_expression "(unaff_s6 == (byte *****)0x0)" ( (binary_expression "unaff_s6 == (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_0008a14c;" goto statement_identifier ;)) (expression_statement "ppppbVar13 = *unaff_s6;" (assignment_expression "ppppbVar13 = *unaff_s6" identifier = (pointer_expression "*unaff_s6" * identifier)) ;) }) (else_clause "else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }" else (compound_statement "{\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }" { (expression_statement "unaff_s6 = (byte *****)0x0;" (assignment_expression "unaff_s6 = (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 "ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);" (assignment_expression "ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" identifier = (cast_expression "(byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b8c))" ( (pointer_expression "**(code **)(puVar37 + 0x88b8c)" * (pointer_expression "*(code **)(puVar37 + 0x88b8c)" * (cast_expression "(code **)(puVar37 + 0x88b8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88b8c)" ( (binary_expression "puVar37 + 0x88b8c" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) )))) + number_literal) )))) , identifier ))))) ;) }))) (expression_statement "*(char *)(iVar22 + 0x2c) = (char)ppppbVar13;" (assignment_expression "*(char *)(iVar22 + 0x2c) = (char)ppppbVar13" (pointer_expression "*(char *)(iVar22 + 0x2c)" * (cast_expression "(char *)(iVar22 + 0x2c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x2c)" ( (binary_expression "iVar22 + 0x2c" identifier + number_literal) )))) = (cast_expression "(char)ppppbVar13" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);" (assignment_expression "*(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18)" (pointer_expression "*(char *)(iVar22 + 0x29)" * (cast_expression "(char *)(iVar22 + 0x29)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x29)" ( (binary_expression "iVar22 + 0x29" identifier + number_literal) )))) = (cast_expression "(char)((uint)ppppbVar13 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)ppppbVar13 >> 0x18)" ( (binary_expression "(uint)ppppbVar13 >> 0x18" (cast_expression "(uint)ppppbVar13" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);" (assignment_expression "*(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10)" (pointer_expression "*(char *)(iVar22 + 0x2a)" * (cast_expression "(char *)(iVar22 + 0x2a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x2a)" ( (binary_expression "iVar22 + 0x2a" identifier + number_literal) )))) = (cast_expression "(char)((uint)ppppbVar13 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)ppppbVar13 >> 0x10)" ( (binary_expression "(uint)ppppbVar13 >> 0x10" (cast_expression "(uint)ppppbVar13" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);" (assignment_expression "*(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8)" (pointer_expression "*(char *)(iVar22 + 0x2b)" * (cast_expression "(char *)(iVar22 + 0x2b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x2b)" ( (binary_expression "iVar22 + 0x2b" identifier + number_literal) )))) = (cast_expression "(char)((uint)ppppbVar13 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)ppppbVar13 >> 8)" ( (binary_expression "(uint)ppppbVar13 >> 8" (cast_expression "(uint)ppppbVar13" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar31 = iVar22 + 0x31U & 3;" (assignment_expression "uVar31 = iVar22 + 0x31U & 3" identifier = (binary_expression "iVar22 + 0x31U & 3" (binary_expression "iVar22 + 0x31U" identifier + number_literal) & number_literal)) ;) (expression_statement "uVar27 = iVar22 + 0x34U & 3;" (assignment_expression "uVar27 = iVar22 + 0x34U & 3" identifier = (binary_expression "iVar22 + 0x34U & 3" (binary_expression "iVar22 + 0x34U" identifier + number_literal) & number_literal)) ;) (expression_statement "uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);" (assignment_expression "uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8)" identifier = (call_expression "FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8)" identifier (argument_list "(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8)" ( (binary_expression "iVar22 + 0x4038" identifier + number_literal) , (binary_expression "iVar22 + 0x403c" identifier + number_literal) , identifier , identifier , identifier , number_literal , (binary_expression "(*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8" (binary_expression "(*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8" (parenthesized_expression "(*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8)" ( (binary_expression "*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8" (binary_expression "*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8" (pointer_expression "*(int *)((iVar22 + 0x31U) - uVar31)" * (cast_expression "(int *)((iVar22 + 0x31U) - uVar31)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar22 + 0x31U) - uVar31)" ( (binary_expression "(iVar22 + 0x31U) - uVar31" (parenthesized_expression "(iVar22 + 0x31U)" ( (binary_expression "iVar22 + 0x31U" identifier + number_literal) )) - identifier) )))) << (binary_expression "uVar31 * 8" identifier * number_literal)) | (binary_expression "in_t3 & 0xffffffffU >> (4 - uVar31) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar31) * 8" number_literal >> (binary_expression "(4 - uVar31) * 8" (parenthesized_expression "(4 - uVar31)" ( (binary_expression "4 - uVar31" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar27 + 1) * 8" number_literal << (binary_expression "(uVar27 + 1) * 8" (parenthesized_expression "(uVar27 + 1)" ( (binary_expression "uVar27 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "*(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8" (pointer_expression "*(uint *)((iVar22 + 0x34U) - uVar27)" * (cast_expression "(uint *)((iVar22 + 0x34U) - uVar27)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar22 + 0x34U) - uVar27)" ( (binary_expression "(iVar22 + 0x34U) - uVar27" (parenthesized_expression "(iVar22 + 0x34U)" ( (binary_expression "iVar22 + 0x34U" identifier + number_literal) )) - identifier) )))) >> (binary_expression "(3 - uVar27) * 8" (parenthesized_expression "(3 - uVar27)" ( (binary_expression "3 - uVar27" number_literal - identifier) )) * number_literal))) )))) ;) (if_statement "if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }" if (parenthesized_expression "(iVar23 != 0)" ( (binary_expression "iVar23 != 0" identifier != number_literal) )) (compound_statement "{\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }" { (expression_statement "iVar21 = *(int *)(iVar22 + 0xc);" (assignment_expression "iVar21 = *(int *)(iVar22 + 0xc)" identifier = (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = 0x5b;" (assignment_expression "uVar12 = 0x5b" identifier = number_literal) ;) (goto_statement "goto LAB_000895b4;" goto statement_identifier ;) })) (if_statement "if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }" if (parenthesized_expression "(unaff_s6 != (byte *****)0x0)" ( (binary_expression "unaff_s6 != (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 *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }" { (if_statement "if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }" if (parenthesized_expression "(*(uint *)(iVar22 + 0x2d) < 0x100)" ( (binary_expression "*(uint *)(iVar22 + 0x2d) < 0x100" (pointer_expression "*(uint *)(iVar22 + 0x2d)" * (cast_expression "(uint *)(iVar22 + 0x2d)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x2d)" ( (binary_expression "iVar22 + 0x2d" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }" { (expression_statement "iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));" (assignment_expression "iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d))" identifier = (call_expression "(**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d))" (parenthesized_expression "(**(code **)(puVar37 + 0x8844c))" ( (pointer_expression "**(code **)(puVar37 + 0x8844c)" * (pointer_expression "*(code **)(puVar37 + 0x8844c)" * (cast_expression "(code **)(puVar37 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8844c)" ( (binary_expression "puVar37 + 0x8844c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d))" ( (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x4614" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(uint *)(iVar22 + 0x2d)" * (cast_expression "(uint *)(iVar22 + 0x2d)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x2d)" ( (binary_expression "iVar22 + 0x2d" identifier + number_literal) )))) )))) ;) (goto_statement "goto LAB_00089674;" goto statement_identifier ;) })) (expression_statement "share_xchannel_confirmation(iVar22,unaff_s6,uVar12);" (call_expression "share_xchannel_confirmation(iVar22,unaff_s6,uVar12)" identifier (argument_list "(iVar22,unaff_s6,uVar12)" ( identifier , identifier , identifier ))) ;) (expression_statement "FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);" (call_expression "FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6)" identifier (argument_list "(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6)" ( (pointer_expression "*(undefined4 *)(iVar22 + 0x4040)" * (cast_expression "(undefined4 *)(iVar22 + 0x4040)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4040)" ( (binary_expression "iVar22 + 0x4040" identifier + number_literal) )))) , (binary_expression "iVar22 + 0x4044" identifier + number_literal) , identifier ))) ;) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" * (cast_expression "(undefined4 *)(iVar22 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000893ac;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;" statement_identifier : (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" * (cast_expression "(undefined4 *)(iVar22 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = number_literal) ;)) (goto_statement "goto LAB_000893ac;" goto statement_identifier ;) })) (expression_statement "iVar23 = *(int *)(puVar37 + 0x8839c);" (assignment_expression "iVar23 = *(int *)(puVar37 + 0x8839c)" identifier = (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) ))))) ;) (if_statement "if (3 < (int)pbVar32) {\n          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n          if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);\n          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);\n          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);\n          unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);\n          uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);\n          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);\n          *pbVar18 = (byte)((uint)uVar12 >> 0x10);\n          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);\n          *pbVar30 = (byte)uVar12;\n          (**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }" if (parenthesized_expression "(3 < (int)pbVar32)" ( (binary_expression "3 < (int)pbVar32" number_literal < (cast_expression "(int)pbVar32" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n          if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);\n          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);\n          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);\n          unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);\n          uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);\n          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);\n          *pbVar18 = (byte)((uint)uVar12 >> 0x10);\n          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);\n          *pbVar30 = (byte)uVar12;\n          (**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }" { (expression_statement "iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);" (assignment_expression "iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90)" identifier = (call_expression "FUN_000879c0(iVar11,pbVar32,0,&local_90)" identifier (argument_list "(iVar11,pbVar32,0,&local_90)" ( identifier , identifier , number_literal , (pointer_expression "&local_90" & identifier) )))) ;) (if_statement "if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }" if (parenthesized_expression "(((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90))" ( (binary_expression "((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)" (parenthesized_expression "((iVar23 == 0) || ((int)local_90 < 0))" ( (binary_expression "(iVar23 == 0) || ((int)local_90 < 0)" (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) || (parenthesized_expression "((int)local_90 < 0)" ( (binary_expression "(int)local_90 < 0" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) ))) )) || (parenthesized_expression "(pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)" ( (comma_expression "pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90" (assignment_expression "pppppbVar36 = (byte *****)((int)local_90 + iVar11)" identifier = (cast_expression "(byte *****)((int)local_90 + iVar11)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_90 + iVar11)" ( (binary_expression "(int)local_90 + iVar11" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) , (binary_expression "(int)(unaff_s6 + -4) <= (int)local_90" (cast_expression "(int)(unaff_s6 + -4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(unaff_s6 + -4)" ( (binary_expression "unaff_s6 + -4" identifier + number_literal) ))) <= (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }" { (expression_statement "iVar23 = *(int *)(puVar37 + 0x8839c);" (assignment_expression "iVar23 = *(int *)(puVar37 + 0x8839c)" identifier = (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00089d50;" goto statement_identifier ;) })) (expression_statement "pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);" (assignment_expression "pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26)" identifier = (cast_expression "(byte *)((int)local_90 + iVar22 + 0x26)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + iVar22 + 0x26)" ( (binary_expression "(int)local_90 + iVar22 + 0x26" (binary_expression "(int)local_90 + iVar22" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);" (assignment_expression "local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27)" identifier = (cast_expression "(byte ****)((int)local_90 + iVar22 + 0x27)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)local_90 + iVar22 + 0x27)" ( (binary_expression "(int)local_90 + iVar22 + 0x27" (binary_expression "(int)local_90 + iVar22" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);" (assignment_expression "pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28)" identifier = (cast_expression "(byte *)((int)local_90 + iVar22 + 0x28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + iVar22 + 0x28)" ( (binary_expression "(int)local_90 + iVar22 + 0x28" (binary_expression "(int)local_90 + iVar22" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);" (assignment_expression "unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8)" identifier = (cast_expression "(byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 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 *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8)" ( (binary_expression "(uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8" (binary_expression "(uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30" (binary_expression "(uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10" (binary_expression "(uint)*(byte *)pppppbVar36 << 0x18" (binary_expression "(uint)*(byte *)pppppbVar36" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)pppppbVar36" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) << number_literal) | (binary_expression "(uint)*pbVar18 << 0x10" (binary_expression "(uint)*pbVar18" (parenthesized_expression "(uint)" ( identifier )) * identifier) << number_literal)) | (binary_expression "(uint)*pbVar30" (parenthesized_expression "(uint)" ( identifier )) * identifier)) | (binary_expression "(uint)*(byte *)local_b0 << 8" (binary_expression "(uint)*(byte *)local_b0" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)local_b0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) << number_literal)) )))) ;) (expression_statement "uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);" (assignment_expression "uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" identifier = (call_expression "(**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b8c))" ( (pointer_expression "**(code **)(puVar37 + 0x88b8c)" * (pointer_expression "*(code **)(puVar37 + 0x88b8c)" * (cast_expression "(code **)(puVar37 + 0x88b8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88b8c)" ( (binary_expression "puVar37 + 0x88b8c" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) )))) + number_literal) )))) , identifier )))) ;) (expression_statement "FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);" (call_expression "FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8)" identifier (argument_list "(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8)" ( (binary_expression "iVar22 + 0x4038" identifier + number_literal) , (binary_expression "iVar22 + 0x403c" identifier + number_literal) , identifier , identifier , number_literal , number_literal , (binary_expression "(uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8" (binary_expression "(uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb)" (binary_expression "(uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10" (binary_expression "(uint)*(byte *)(pppppbVar36 + 2) << 0x18" (binary_expression "(uint)*(byte *)(pppppbVar36 + 2)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(pppppbVar36 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppbVar36 + 2)" ( (binary_expression "pppppbVar36 + 2" identifier + number_literal) )))) << number_literal) | (binary_expression "(uint)*(byte *)((int)pppppbVar36 + 9) << 0x10" (binary_expression "(uint)*(byte *)((int)pppppbVar36 + 9)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)pppppbVar36 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar36 + 9)" ( (binary_expression "(int)pppppbVar36 + 9" (cast_expression "(int)pppppbVar36" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) << number_literal)) | (binary_expression "(uint)*(byte *)((int)pppppbVar36 + 0xb)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)pppppbVar36 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar36 + 0xb)" ( (binary_expression "(int)pppppbVar36 + 0xb" (cast_expression "(int)pppppbVar36" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) | (binary_expression "(uint)*(byte *)((int)pppppbVar36 + 10) << 8" (binary_expression "(uint)*(byte *)((int)pppppbVar36 + 10)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)pppppbVar36 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar36 + 10)" ( (binary_expression "(int)pppppbVar36 + 10" (cast_expression "(int)pppppbVar36" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) << number_literal)) ))) ;) (expression_statement "*(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);" (assignment_expression "*(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18)" (pointer_expression "*(byte *)pppppbVar36" * (cast_expression "(byte *)pppppbVar36" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (call_expression "(byte)((uint)uVar12 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)uVar12 >> 0x18)" ( (binary_expression "(uint)uVar12 >> 0x18" (cast_expression "(uint)uVar12" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*pbVar18 = (byte)((uint)uVar12 >> 0x10);" (assignment_expression "*pbVar18 = (byte)((uint)uVar12 >> 0x10)" (pointer_expression "*pbVar18" * identifier) = (call_expression "(byte)((uint)uVar12 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)uVar12 >> 0x10)" ( (binary_expression "(uint)uVar12 >> 0x10" (cast_expression "(uint)uVar12" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(byte *)local_b0 = (byte)((uint)uVar12 >> 8);" (assignment_expression "*(byte *)local_b0 = (byte)((uint)uVar12 >> 8)" (pointer_expression "*(byte *)local_b0" * (cast_expression "(byte *)local_b0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (call_expression "(byte)((uint)uVar12 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)uVar12 >> 8)" ( (binary_expression "(uint)uVar12 >> 8" (cast_expression "(uint)uVar12" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*pbVar30 = (byte)uVar12;" (assignment_expression "*pbVar30 = (byte)uVar12" (pointer_expression "*pbVar30" * identifier) = (cast_expression "(byte)uVar12" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "(**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);" (call_expression "(**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b70))" ( (pointer_expression "**(code **)(puVar37 + 0x88b70)" * (pointer_expression "*(code **)(puVar37 + 0x88b70)" * (cast_expression "(code **)(puVar37 + 0x88b70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88b70)" ( (binary_expression "puVar37 + 0x88b70" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) )))) + number_literal) )))) , (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) )))) , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" * (cast_expression "(undefined4 *)(iVar22 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000893ac;" goto statement_identifier ;) })) (labeled_statement "LAB_00089d50:\n        iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);" statement_identifier : (expression_statement "iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);" (assignment_expression "iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c)" identifier = (call_expression "(**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c)" (parenthesized_expression "(**(code **)(puVar37 + 0x8844c))" ( (pointer_expression "**(code **)(puVar37 + 0x8844c)" * (pointer_expression "*(code **)(puVar37 + 0x8844c)" * (cast_expression "(code **)(puVar37 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8844c)" ( (binary_expression "puVar37 + 0x8844c" identifier + number_literal) ))))) )) (argument_list "(iVar23 + 0x458c)" ( (binary_expression "iVar23 + 0x458c" identifier + number_literal) )))) ;)) (labeled_statement "LAB_00089674:\n        while (iVar11 == 0) {\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }" statement_identifier : (while_statement "while (iVar11 == 0) {\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }" while (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }" { (expression_statement "(**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);" (call_expression "(**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870)" (parenthesized_expression "(**(code **)(puVar37 + 0x88ff4))" ( (pointer_expression "**(code **)(puVar37 + 0x88ff4)" * (pointer_expression "*(code **)(puVar37 + 0x88ff4)" * (cast_expression "(code **)(puVar37 + 0x88ff4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88ff4)" ( (binary_expression "puVar37 + 0x88ff4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870)" ( (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x4768" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x43dc" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x4870" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);" statement_identifier : (expression_statement "iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);" (assignment_expression "iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36)" identifier = (call_expression "(**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36)" (parenthesized_expression "(**(code **)(puVar37 + 0x8844c))" ( (pointer_expression "**(code **)(puVar37 + 0x8844c)" * (pointer_expression "*(code **)(puVar37 + 0x8844c)" * (cast_expression "(code **)(puVar37 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8844c)" ( (binary_expression "puVar37 + 0x8844c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36)" ( (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x45d8" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) , identifier )))) ;)) }))) (expression_statement "FUN_000887e0(iVar22,iVar11);" (call_expression "FUN_000887e0(iVar22,iVar11)" identifier (argument_list "(iVar22,iVar11)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar37 + 0x88394))(iVar11);" (call_expression "(**(code **)(puVar37 + 0x88394))(iVar11)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" ( (pointer_expression "**(code **)(puVar37 + 0x88394)" * (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(iVar11)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" * (cast_expression "(undefined4 *)(iVar22 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000893ac;" goto statement_identifier ;) })) (expression_statement "uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11);" (assignment_expression "uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11)" identifier = (call_expression "(**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11)" (parenthesized_expression "(**(code **)(puVar37 + 0x8844c))" ( (pointer_expression "**(code **)(puVar37 + 0x8844c)" * (pointer_expression "*(code **)(puVar37 + 0x8844c)" * (cast_expression "(code **)(puVar37 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8844c)" ( (binary_expression "puVar37 + 0x8844c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11)" ( (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x4544" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) , identifier )))) ;) (labeled_statement "LAB_000890b4:\n      FUN_000887e0(iVar22,uVar12);" statement_identifier : (expression_statement "FUN_000887e0(iVar22,uVar12);" (call_expression "FUN_000887e0(iVar22,uVar12)" identifier (argument_list "(iVar22,uVar12)" ( identifier , identifier ))) ;)) (expression_statement "(**(code **)(puVar37 + 0x88394))(uVar12);" (call_expression "(**(code **)(puVar37 + 0x88394))(uVar12)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" ( (pointer_expression "**(code **)(puVar37 + 0x88394)" * (pointer_expression "*(code **)(puVar37 + 0x88394)" * (cast_expression "(code **)(puVar37 + 0x88394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88394)" ( (binary_expression "puVar37 + 0x88394" identifier + number_literal) ))))) )) (argument_list "(uVar12)" ( identifier ))) ;) (expression_statement "unaff_s5 = pbVar28;" (assignment_expression "unaff_s5 = pbVar28" identifier = identifier) ;) (labeled_statement "LAB_000890e0:\n      *(undefined4 *)(iVar22 + 0x10) = 0;" statement_identifier : (expression_statement "*(undefined4 *)(iVar22 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x10)" * (cast_expression "(undefined4 *)(iVar22 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x10)" ( (binary_expression "iVar22 + 0x10" identifier + number_literal) )))) = number_literal) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) })) (expression_statement "uVar31 = *(uint *)(iVar22 + 0x4030);" (assignment_expression "uVar31 = *(uint *)(iVar22 + 0x4030)" identifier = (pointer_expression "*(uint *)(iVar22 + 0x4030)" * (cast_expression "(uint *)(iVar22 + 0x4030)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) ))))) ;) (expression_statement "bVar26 = *pbVar28;" (assignment_expression "bVar26 = *pbVar28" identifier = (pointer_expression "*pbVar28" * identifier)) ;) (expression_statement "pbVar34 = pbVar32 + -1;" (assignment_expression "pbVar34 = pbVar32 + -1" identifier = (binary_expression "pbVar32 + -1" identifier + number_literal)) ;) (expression_statement "pbVar30 = pbVar28 + 1;" (assignment_expression "pbVar30 = pbVar28 + 1" identifier = (binary_expression "pbVar28 + 1" identifier + number_literal)) ;) (if_statement "if (bVar26 == 10) {\nLAB_0008942c:\n    pbVar28 = pbVar30;\n    if (0x2d < uVar31) {\n      pppppbVar36 = (byte *****)(iVar22 + 0x20);\n      iVar11 = (**(code **)(puVar37 + 0x894d4))\n                         (pppppbVar36,*(int *)(puVar37 + 0x8839c) + 0x4890,0x2e);\n      if (iVar11 == 0) {\n        if ((0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')) {\n          *(uint *)(iVar22 + 0x4030) = uVar27;\n          uVar31 = uVar27;\n        }\n        (**(code **)(puVar37 + 0x88b68))\n                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36);\n        *(undefined4 *)(iVar22 + 0x18) = 1;\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n    }\n    uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44f4);\n    goto LAB_000890b4;\n  }" if (parenthesized_expression "(bVar26 == 10)" ( (binary_expression "bVar26 == 10" identifier == number_literal) )) (compound_statement "{\nLAB_0008942c:\n    pbVar28 = pbVar30;\n    if (0x2d < uVar31) {\n      pppppbVar36 = (byte *****)(iVar22 + 0x20);\n      iVar11 = (**(code **)(puVar37 + 0x894d4))\n                         (pppppbVar36,*(int *)(puVar37 + 0x8839c) + 0x4890,0x2e);\n      if (iVar11 == 0) {\n        if ((0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')) {\n          *(uint *)(iVar22 + 0x4030) = uVar27;\n          uVar31 = uVar27;\n        }\n        (**(code **)(puVar37 + 0x88b68))\n                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36);\n        *(undefined4 *)(iVar22 + 0x18) = 1;\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n    }\n    uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44f4);\n    goto LAB_000890b4;\n  }" { (labeled_statement "LAB_0008942c:\n    pbVar28 = pbVar30;" statement_identifier : (expression_statement "pbVar28 = pbVar30;" (assignment_expression "pbVar28 = pbVar30" identifier = identifier) ;)) (if_statement "if (0x2d < uVar31) {\n      pppppbVar36 = (byte *****)(iVar22 + 0x20);\n      iVar11 = (**(code **)(puVar37 + 0x894d4))\n                         (pppppbVar36,*(int *)(puVar37 + 0x8839c) + 0x4890,0x2e);\n      if (iVar11 == 0) {\n        if ((0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')) {\n          *(uint *)(iVar22 + 0x4030) = uVar27;\n          uVar31 = uVar27;\n        }\n        (**(code **)(puVar37 + 0x88b68))\n                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36);\n        *(undefined4 *)(iVar22 + 0x18) = 1;\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n    }" if (parenthesized_expression "(0x2d < uVar31)" ( (binary_expression "0x2d < uVar31" number_literal < identifier) )) (compound_statement "{\n      pppppbVar36 = (byte *****)(iVar22 + 0x20);\n      iVar11 = (**(code **)(puVar37 + 0x894d4))\n                         (pppppbVar36,*(int *)(puVar37 + 0x8839c) + 0x4890,0x2e);\n      if (iVar11 == 0) {\n        if ((0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')) {\n          *(uint *)(iVar22 + 0x4030) = uVar27;\n          uVar31 = uVar27;\n        }\n        (**(code **)(puVar37 + 0x88b68))\n                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36);\n        *(undefined4 *)(iVar22 + 0x18) = 1;\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n    }" { (expression_statement "pppppbVar36 = (byte *****)(iVar22 + 0x20);" (assignment_expression "pppppbVar36 = (byte *****)(iVar22 + 0x20)" identifier = (cast_expression "(byte *****)(iVar22 + 0x20)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(iVar22 + 0x20)" ( (binary_expression "iVar22 + 0x20" identifier + number_literal) )))) ;) (expression_statement "iVar11 = (**(code **)(puVar37 + 0x894d4))\n                         (pppppbVar36,*(int *)(puVar37 + 0x8839c) + 0x4890,0x2e);" (assignment_expression "iVar11 = (**(code **)(puVar37 + 0x894d4))\n                         (pppppbVar36,*(int *)(puVar37 + 0x8839c) + 0x4890,0x2e)" identifier = (call_expression "(**(code **)(puVar37 + 0x894d4))\n                         (pppppbVar36,*(int *)(puVar37 + 0x8839c) + 0x4890,0x2e)" (parenthesized_expression "(**(code **)(puVar37 + 0x894d4))" ( (pointer_expression "**(code **)(puVar37 + 0x894d4)" * (pointer_expression "*(code **)(puVar37 + 0x894d4)" * (cast_expression "(code **)(puVar37 + 0x894d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x894d4)" ( (binary_expression "puVar37 + 0x894d4" identifier + number_literal) ))))) )) (argument_list "(pppppbVar36,*(int *)(puVar37 + 0x8839c) + 0x4890,0x2e)" ( identifier , (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x4890" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (if_statement "if (iVar11 == 0) {\n        if ((0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')) {\n          *(uint *)(iVar22 + 0x4030) = uVar27;\n          uVar31 = uVar27;\n        }\n        (**(code **)(puVar37 + 0x88b68))\n                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36);\n        *(undefined4 *)(iVar22 + 0x18) = 1;\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n        if ((0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')) {\n          *(uint *)(iVar22 + 0x4030) = uVar27;\n          uVar31 = uVar27;\n        }\n        (**(code **)(puVar37 + 0x88b68))\n                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36);\n        *(undefined4 *)(iVar22 + 0x18) = 1;\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }" { (if_statement "if ((0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')) {\n          *(uint *)(iVar22 + 0x4030) = uVar27;\n          uVar31 = uVar27;\n        }" if (parenthesized_expression "((0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r'))" ( (binary_expression "(0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')" (parenthesized_expression "(0 < (int)uVar31)" ( (binary_expression "0 < (int)uVar31" number_literal < (cast_expression "(int)uVar31" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')" ( (comma_expression "uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r'" (assignment_expression "uVar27 = uVar31 - 1" identifier = (binary_expression "uVar31 - 1" identifier - number_literal)) , (binary_expression "*(char *)(iVar22 + uVar27 + 0x20) == '\r'" (pointer_expression "*(char *)(iVar22 + uVar27 + 0x20)" * (cast_expression "(char *)(iVar22 + uVar27 + 0x20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + uVar27 + 0x20)" ( (binary_expression "iVar22 + uVar27 + 0x20" (binary_expression "iVar22 + uVar27" identifier + identifier) + number_literal) )))) == (char_literal "'\r'" ' escape_sequence '))) ))) )) (compound_statement "{\n          *(uint *)(iVar22 + 0x4030) = uVar27;\n          uVar31 = uVar27;\n        }" { (expression_statement "*(uint *)(iVar22 + 0x4030) = uVar27;" (assignment_expression "*(uint *)(iVar22 + 0x4030) = uVar27" (pointer_expression "*(uint *)(iVar22 + 0x4030)" * (cast_expression "(uint *)(iVar22 + 0x4030)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar31 = uVar27;" (assignment_expression "uVar31 = uVar27" identifier = identifier) ;) })) (expression_statement "(**(code **)(puVar37 + 0x88b68))\n                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36);" (call_expression "(**(code **)(puVar37 + 0x88b68))\n                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b68))" ( (pointer_expression "**(code **)(puVar37 + 0x88b68)" * (pointer_expression "*(code **)(puVar37 + 0x88b68)" * (cast_expression "(code **)(puVar37 + 0x88b68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x88b68)" ( (binary_expression "puVar37 + 0x88b68" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) )))) + number_literal) )))) , (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) )))) , (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x4524" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) , identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(iVar22 + 0x18) = 1;" (assignment_expression "*(undefined4 *)(iVar22 + 0x18) = 1" (pointer_expression "*(undefined4 *)(iVar22 + 0x18)" * (cast_expression "(undefined4 *)(iVar22 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x18)" ( (binary_expression "iVar22 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" * (cast_expression "(undefined4 *)(iVar22 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000893ac;" goto statement_identifier ;) })) })) (expression_statement "uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44f4);" (assignment_expression "uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44f4)" identifier = (call_expression "(**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44f4)" (parenthesized_expression "(**(code **)(puVar37 + 0x8844c))" ( (pointer_expression "**(code **)(puVar37 + 0x8844c)" * (pointer_expression "*(code **)(puVar37 + 0x8844c)" * (cast_expression "(code **)(puVar37 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8844c)" ( (binary_expression "puVar37 + 0x8844c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x44f4)" ( (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x44f4" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_000890b4;" goto statement_identifier ;) })) (expression_statement "pbVar18 = pbVar32;" (assignment_expression "pbVar18 = pbVar32" identifier = identifier) ;) (if_statement "if (uVar31 < 0x4010) {\n    uVar31 = uVar31 + 1;\n    pbVar29 = pbVar28 + (int)pbVar34;\n    pbVar34 = pbVar32;\n    unaff_s5 = pbVar30;\n    do {\n      *(uint *)(iVar22 + 0x4030) = uVar31;\n      *(byte *)(iVar22 + uVar31 + 0x1f) = bVar26;\n      if (pbVar28 + (int)pbVar32 == unaff_s5) goto LAB_00089094;\n      pbVar34 = pbVar29 + -(int)unaff_s5;\n      pbVar30 = unaff_s5 + 1;\n      bVar26 = *unaff_s5;\n      if (bVar26 == 10) goto LAB_0008942c;\n      uVar31 = uVar31 + 1;\n      pbVar18 = pbVar34;\n      unaff_s5 = pbVar30;\n    } while (uVar31 != 0x4011);\n  }" if (parenthesized_expression "(uVar31 < 0x4010)" ( (binary_expression "uVar31 < 0x4010" identifier < number_literal) )) (compound_statement "{\n    uVar31 = uVar31 + 1;\n    pbVar29 = pbVar28 + (int)pbVar34;\n    pbVar34 = pbVar32;\n    unaff_s5 = pbVar30;\n    do {\n      *(uint *)(iVar22 + 0x4030) = uVar31;\n      *(byte *)(iVar22 + uVar31 + 0x1f) = bVar26;\n      if (pbVar28 + (int)pbVar32 == unaff_s5) goto LAB_00089094;\n      pbVar34 = pbVar29 + -(int)unaff_s5;\n      pbVar30 = unaff_s5 + 1;\n      bVar26 = *unaff_s5;\n      if (bVar26 == 10) goto LAB_0008942c;\n      uVar31 = uVar31 + 1;\n      pbVar18 = pbVar34;\n      unaff_s5 = pbVar30;\n    } while (uVar31 != 0x4011);\n  }" { (expression_statement "uVar31 = uVar31 + 1;" (assignment_expression "uVar31 = uVar31 + 1" identifier = (binary_expression "uVar31 + 1" identifier + number_literal)) ;) (expression_statement "pbVar29 = pbVar28 + (int)pbVar34;" (assignment_expression "pbVar29 = pbVar28 + (int)pbVar34" identifier = (binary_expression "pbVar28 + (int)pbVar34" identifier + (cast_expression "(int)pbVar34" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pbVar34 = pbVar32;" (assignment_expression "pbVar34 = pbVar32" identifier = identifier) ;) (expression_statement "unaff_s5 = pbVar30;" (assignment_expression "unaff_s5 = pbVar30" identifier = identifier) ;) (do_statement "do {\n      *(uint *)(iVar22 + 0x4030) = uVar31;\n      *(byte *)(iVar22 + uVar31 + 0x1f) = bVar26;\n      if (pbVar28 + (int)pbVar32 == unaff_s5) goto LAB_00089094;\n      pbVar34 = pbVar29 + -(int)unaff_s5;\n      pbVar30 = unaff_s5 + 1;\n      bVar26 = *unaff_s5;\n      if (bVar26 == 10) goto LAB_0008942c;\n      uVar31 = uVar31 + 1;\n      pbVar18 = pbVar34;\n      unaff_s5 = pbVar30;\n    } while (uVar31 != 0x4011);" do (compound_statement "{\n      *(uint *)(iVar22 + 0x4030) = uVar31;\n      *(byte *)(iVar22 + uVar31 + 0x1f) = bVar26;\n      if (pbVar28 + (int)pbVar32 == unaff_s5) goto LAB_00089094;\n      pbVar34 = pbVar29 + -(int)unaff_s5;\n      pbVar30 = unaff_s5 + 1;\n      bVar26 = *unaff_s5;\n      if (bVar26 == 10) goto LAB_0008942c;\n      uVar31 = uVar31 + 1;\n      pbVar18 = pbVar34;\n      unaff_s5 = pbVar30;\n    }" { (expression_statement "*(uint *)(iVar22 + 0x4030) = uVar31;" (assignment_expression "*(uint *)(iVar22 + 0x4030) = uVar31" (pointer_expression "*(uint *)(iVar22 + 0x4030)" * (cast_expression "(uint *)(iVar22 + 0x4030)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x4030)" ( (binary_expression "iVar22 + 0x4030" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)(iVar22 + uVar31 + 0x1f) = bVar26;" (assignment_expression "*(byte *)(iVar22 + uVar31 + 0x1f) = bVar26" (pointer_expression "*(byte *)(iVar22 + uVar31 + 0x1f)" * (cast_expression "(byte *)(iVar22 + uVar31 + 0x1f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + uVar31 + 0x1f)" ( (binary_expression "iVar22 + uVar31 + 0x1f" (binary_expression "iVar22 + uVar31" identifier + identifier) + number_literal) )))) = identifier) ;) (if_statement "if (pbVar28 + (int)pbVar32 == unaff_s5) goto LAB_00089094;" if (parenthesized_expression "(pbVar28 + (int)pbVar32 == unaff_s5)" ( (binary_expression "pbVar28 + (int)pbVar32 == unaff_s5" (binary_expression "pbVar28 + (int)pbVar32" identifier + (cast_expression "(int)pbVar32" ( (type_descriptor "int" primitive_type) ) identifier)) == identifier) )) (goto_statement "goto LAB_00089094;" goto statement_identifier ;)) (expression_statement "pbVar34 = pbVar29 + -(int)unaff_s5;" (assignment_expression "pbVar34 = pbVar29 + -(int)unaff_s5" identifier = (binary_expression "pbVar29 + -(int)unaff_s5" identifier + (unary_expression "-(int)unaff_s5" - (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "pbVar30 = unaff_s5 + 1;" (assignment_expression "pbVar30 = unaff_s5 + 1" identifier = (binary_expression "unaff_s5 + 1" identifier + number_literal)) ;) (expression_statement "bVar26 = *unaff_s5;" (assignment_expression "bVar26 = *unaff_s5" identifier = (pointer_expression "*unaff_s5" * identifier)) ;) (if_statement "if (bVar26 == 10) goto LAB_0008942c;" if (parenthesized_expression "(bVar26 == 10)" ( (binary_expression "bVar26 == 10" identifier == number_literal) )) (goto_statement "goto LAB_0008942c;" goto statement_identifier ;)) (expression_statement "uVar31 = uVar31 + 1;" (assignment_expression "uVar31 = uVar31 + 1" identifier = (binary_expression "uVar31 + 1" identifier + number_literal)) ;) (expression_statement "pbVar18 = pbVar34;" (assignment_expression "pbVar18 = pbVar34" identifier = identifier) ;) (expression_statement "unaff_s5 = pbVar30;" (assignment_expression "unaff_s5 = pbVar30" identifier = identifier) ;) }) while (parenthesized_expression "(uVar31 != 0x4011)" ( (binary_expression "uVar31 != 0x4011" identifier != number_literal) )) ;) })) (expression_statement "uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44d4);" (assignment_expression "uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44d4)" identifier = (call_expression "(**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44d4)" (parenthesized_expression "(**(code **)(puVar37 + 0x8844c))" ( (pointer_expression "**(code **)(puVar37 + 0x8844c)" * (pointer_expression "*(code **)(puVar37 + 0x8844c)" * (cast_expression "(code **)(puVar37 + 0x8844c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x8844c)" ( (binary_expression "puVar37 + 0x8844c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x44d4)" ( (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x44d4" (pointer_expression "*(int *)(puVar37 + 0x8839c)" * (cast_expression "(int *)(puVar37 + 0x8839c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x8839c)" ( (binary_expression "puVar37 + 0x8839c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pbVar34 = pbVar18;" (assignment_expression "pbVar34 = pbVar18" identifier = identifier) ;) (expression_statement "pbVar28 = pbVar30;" (assignment_expression "pbVar28 = pbVar30" identifier = identifier) ;) (goto_statement "goto LAB_000890b4;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE 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 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (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 * (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 * (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 * 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 * 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 *)) ) (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 *)) ) IDENT))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (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 = 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 = (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) ;) (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 (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT ))))) ;) (expression_statement (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 (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (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 (parenthesized_expression ( (pointer_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_failure(int param_1,int param_2)\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  undefined4 uVar12;\n  byte ****ppppbVar13;\n  int iVar14;\n  byte ****ppppbVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  byte *pbVar18;\n  undefined4 *puVar19;\n  undefined4 *puVar20;\n  int iVar21;\n  int iVar22;\n  byte bVar26;\n  int iVar23;\n  undefined4 uVar24;\n  undefined4 *puVar25;\n  uint uVar27;\n  byte *pbVar28;\n  byte *pbVar29;\n  uint in_t3;\n  byte *pbVar30;\n  uint uVar31;\n  byte *pbVar32;\n  byte *****pppppbVar33;\n  byte *pbVar34;\n  byte *unaff_s5;\n  byte *****unaff_s6;\n  byte *****pppppbVar35;\n  byte *****pppppbVar36;\n  undefined *puVar37;\n  code *pcVar38;\n  int *piVar39;\n  byte ****local_b0;\n  byte ****local_90;\n  byte ****local_8c;\n  undefined4 local_88;\n  byte ***local_68;\n  int local_64;\n  int local_60;\n  int local_5c;\n  undefined *local_58;\n  undefined4 local_18;\n  int local_14;\n  \n  pppppbVar36 = (byte *****)PTR___stack_chk_guard_00112630;\n  local_18 = *(undefined4 *)(param_2 + 4);\n  pbVar28 = &DAT_00000061;\n  pbVar32 = (byte *)&local_18;\n  local_14 = *(int *)PTR___stack_chk_guard_00112630;\n  (*(code *)PTR_ssh_send_packet_from_downstream_00111acc)\n            (*(undefined4 *)(*(int *)(param_1 + 0xc) + 0x14),*(undefined4 *)(param_1 + 4));\n  *(undefined4 *)(param_2 + 8) = 0;\n  iVar22 = param_1;\n  share_dead_xchannel_respond(param_1,param_2);\n  if ((byte ****)local_14 == *pppppbVar36) {\n    return;\n  }\n  puVar37 = PTR___stack_chk_fail_001122c8;\n  (*(code *)PTR___stack_chk_fail_001122c8)();\n  iVar11 = *(int *)(iVar22 + 0x10);\n  piVar39 = *(int **)(puVar37 + 0x896d4);\n  local_58 = (undefined *)pppppbVar36;\n  local_64 = *piVar39;\n  pbVar34 = pbVar32;\n  local_60 = param_2;\n  local_5c = param_1;\n  if (iVar11 != 0x709) {\n    if (0x709 < iVar11) {\n      if (iVar11 == 0x72e) goto LAB_000893ac;\n      if (iVar11 != 0x73b) goto LAB_000890e0;\n      goto LAB_00088fd4;\n    }\n    if (iVar11 != 0) goto LAB_000890e0;\n    *(undefined4 *)(iVar22 + 0x4030) = 0;\n  }\n  if (pbVar32 == (byte *)0x0) {\nLAB_00089094:\n    *(undefined4 *)(iVar22 + 0x10) = 0x709;\nLAB_000890e4:\n    do {\n      if (local_64 == *piVar39) {\n        return;\n      }\n      (**(code **)(puVar37 + 0x8936c))();\n      pbVar28 = unaff_s5;\nLAB_00089df8:\n      local_68 = *local_b0;\n      FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n      (**(code **)(puVar37 + 0x88394))(unaff_s6);\n      *(undefined4 *)(iVar22 + 0x4030) = 0;\nLAB_000893ac:\n      pbVar32 = pbVar28 + (int)pbVar34;\n      unaff_s5 = pbVar28;\n      do {\n        pbVar34 = pbVar32 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar32) {\n          *(undefined4 *)(iVar22 + 0x10) = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar11 = *(int *)(iVar22 + 0x4030);\n        pbVar28 = unaff_s5 + 1;\n        iVar23 = iVar11 + 1;\n        bVar26 = *unaff_s5;\n        in_t3 = (uint)bVar26;\n        *(int *)(iVar22 + 0x4030) = iVar23;\n        *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n        unaff_s5 = pbVar28;\n      } while (iVar23 < 4);\n      iVar11 = (**(code **)(puVar37 + 0x884fc))(*(int *)(iVar22 + 0x20) + 4);\n      *(int *)(iVar22 + 0x1c) = iVar11;\n      if (iVar11 - 5U < 0x400c) {\n        unaff_s6 = *(byte ******)(iVar22 + 0x4030);\n        while (unaff_s5 = pbVar28, (int)unaff_s6 < iVar11) {\nLAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar11 = *(int *)(iVar22 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar26 = *pbVar28;\n          pbVar28 = pbVar28 + 1;\n          unaff_s6 = (byte *****)(iVar11 + 1);\n          *(byte ******)(iVar22 + 0x4030) = unaff_s6;\n          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n          iVar11 = *(int *)(iVar22 + 0x1c);\n        }\n        bVar26 = *(byte *)(iVar22 + 0x24);\n        iVar11 = iVar22 + 0x25;\n        pbVar32 = (byte *)((int)unaff_s6 + -5);\n        if (bVar26 != 0x5a) {\n          if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\n        iVar23 = *(int *)(puVar37 + 0x8839c);\n        if (3 < (int)pbVar32) {\n          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n          if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);\n          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);\n          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);\n          unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);\n          uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);\n          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);\n          *pbVar18 = (byte)((uint)uVar12 >> 0x10);\n          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);\n          *pbVar30 = (byte)uVar12;\n          (**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);\nLAB_00089674:\n        while (iVar11 == 0) {\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }\n        FUN_000887e0(iVar22,iVar11);\n        (**(code **)(puVar37 + 0x88394))(iVar11);\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n      uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11);\nLAB_000890b4:\n      FUN_000887e0(iVar22,uVar12);\n      (**(code **)(puVar37 + 0x88394))(uVar12);\n      unaff_s5 = pbVar28;\nLAB_000890e0:\n      *(undefined4 *)(iVar22 + 0x10) = 0;\n    } while( true );\n  }\n  uVar31 = *(uint *)(iVar22 + 0x4030);\n  bVar26 = *pbVar28;\n  pbVar34 = pbVar32 + -1;\n  pbVar30 = pbVar28 + 1;\n  if (bVar26 == 10) {\nLAB_0008942c:\n    pbVar28 = pbVar30;\n    if (0x2d < uVar31) {\n      pppppbVar36 = (byte *****)(iVar22 + 0x20);\n      iVar11 = (**(code **)(puVar37 + 0x894d4))\n                         (pppppbVar36,*(int *)(puVar37 + 0x8839c) + 0x4890,0x2e);\n      if (iVar11 == 0) {\n        if ((0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')) {\n          *(uint *)(iVar22 + 0x4030) = uVar27;\n          uVar31 = uVar27;\n        }\n        (**(code **)(puVar37 + 0x88b68))\n                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36);\n        *(undefined4 *)(iVar22 + 0x18) = 1;\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n    }\n    uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44f4);\n    goto LAB_000890b4;\n  }\n  pbVar18 = pbVar32;\n  if (uVar31 < 0x4010) {\n    uVar31 = uVar31 + 1;\n    pbVar29 = pbVar28 + (int)pbVar34;\n    pbVar34 = pbVar32;\n    unaff_s5 = pbVar30;\n    do {\n      *(uint *)(iVar22 + 0x4030) = uVar31;\n      *(byte *)(iVar22 + uVar31 + 0x1f) = bVar26;\n      if (pbVar28 + (int)pbVar32 == unaff_s5) goto LAB_00089094;\n      pbVar34 = pbVar29 + -(int)unaff_s5;\n      pbVar30 = unaff_s5 + 1;\n      bVar26 = *unaff_s5;\n      if (bVar26 == 10) goto LAB_0008942c;\n      uVar31 = uVar31 + 1;\n      pbVar18 = pbVar34;\n      unaff_s5 = pbVar30;\n    } while (uVar31 != 0x4011);\n  }\n  uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44d4);\n  pbVar34 = pbVar18;\n  pbVar28 = pbVar30;\n  goto LAB_000890b4;\n}" (primitive_type "void") (function_declarator "share_xchannel_failure(int param_1,int param_2)" (identifier "share_xchannel_failure") (parameter_list "(int param_1,int param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (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  undefined4 uVar12;\n  byte ****ppppbVar13;\n  int iVar14;\n  byte ****ppppbVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  byte *pbVar18;\n  undefined4 *puVar19;\n  undefined4 *puVar20;\n  int iVar21;\n  int iVar22;\n  byte bVar26;\n  int iVar23;\n  undefined4 uVar24;\n  undefined4 *puVar25;\n  uint uVar27;\n  byte *pbVar28;\n  byte *pbVar29;\n  uint in_t3;\n  byte *pbVar30;\n  uint uVar31;\n  byte *pbVar32;\n  byte *****pppppbVar33;\n  byte *pbVar34;\n  byte *unaff_s5;\n  byte *****unaff_s6;\n  byte *****pppppbVar35;\n  byte *****pppppbVar36;\n  undefined *puVar37;\n  code *pcVar38;\n  int *piVar39;\n  byte ****local_b0;\n  byte ****local_90;\n  byte ****local_8c;\n  undefined4 local_88;\n  byte ***local_68;\n  int local_64;\n  int local_60;\n  int local_5c;\n  undefined *local_58;\n  undefined4 local_18;\n  int local_14;\n  \n  pppppbVar36 = (byte *****)PTR___stack_chk_guard_00112630;\n  local_18 = *(undefined4 *)(param_2 + 4);\n  pbVar28 = &DAT_00000061;\n  pbVar32 = (byte *)&local_18;\n  local_14 = *(int *)PTR___stack_chk_guard_00112630;\n  (*(code *)PTR_ssh_send_packet_from_downstream_00111acc)\n            (*(undefined4 *)(*(int *)(param_1 + 0xc) + 0x14),*(undefined4 *)(param_1 + 4));\n  *(undefined4 *)(param_2 + 8) = 0;\n  iVar22 = param_1;\n  share_dead_xchannel_respond(param_1,param_2);\n  if ((byte ****)local_14 == *pppppbVar36) {\n    return;\n  }\n  puVar37 = PTR___stack_chk_fail_001122c8;\n  (*(code *)PTR___stack_chk_fail_001122c8)();\n  iVar11 = *(int *)(iVar22 + 0x10);\n  piVar39 = *(int **)(puVar37 + 0x896d4);\n  local_58 = (undefined *)pppppbVar36;\n  local_64 = *piVar39;\n  pbVar34 = pbVar32;\n  local_60 = param_2;\n  local_5c = param_1;\n  if (iVar11 != 0x709) {\n    if (0x709 < iVar11) {\n      if (iVar11 == 0x72e) goto LAB_000893ac;\n      if (iVar11 != 0x73b) goto LAB_000890e0;\n      goto LAB_00088fd4;\n    }\n    if (iVar11 != 0) goto LAB_000890e0;\n    *(undefined4 *)(iVar22 + 0x4030) = 0;\n  }\n  if (pbVar32 == (byte *)0x0) {\nLAB_00089094:\n    *(undefined4 *)(iVar22 + 0x10) = 0x709;\nLAB_000890e4:\n    do {\n      if (local_64 == *piVar39) {\n        return;\n      }\n      (**(code **)(puVar37 + 0x8936c))();\n      pbVar28 = unaff_s5;\nLAB_00089df8:\n      local_68 = *local_b0;\n      FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n      (**(code **)(puVar37 + 0x88394))(unaff_s6);\n      *(undefined4 *)(iVar22 + 0x4030) = 0;\nLAB_000893ac:\n      pbVar32 = pbVar28 + (int)pbVar34;\n      unaff_s5 = pbVar28;\n      do {\n        pbVar34 = pbVar32 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar32) {\n          *(undefined4 *)(iVar22 + 0x10) = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar11 = *(int *)(iVar22 + 0x4030);\n        pbVar28 = unaff_s5 + 1;\n        iVar23 = iVar11 + 1;\n        bVar26 = *unaff_s5;\n        in_t3 = (uint)bVar26;\n        *(int *)(iVar22 + 0x4030) = iVar23;\n        *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n        unaff_s5 = pbVar28;\n      } while (iVar23 < 4);\n      iVar11 = (**(code **)(puVar37 + 0x884fc))(*(int *)(iVar22 + 0x20) + 4);\n      *(int *)(iVar22 + 0x1c) = iVar11;\n      if (iVar11 - 5U < 0x400c) {\n        unaff_s6 = *(byte ******)(iVar22 + 0x4030);\n        while (unaff_s5 = pbVar28, (int)unaff_s6 < iVar11) {\nLAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar11 = *(int *)(iVar22 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar26 = *pbVar28;\n          pbVar28 = pbVar28 + 1;\n          unaff_s6 = (byte *****)(iVar11 + 1);\n          *(byte ******)(iVar22 + 0x4030) = unaff_s6;\n          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n          iVar11 = *(int *)(iVar22 + 0x1c);\n        }\n        bVar26 = *(byte *)(iVar22 + 0x24);\n        iVar11 = iVar22 + 0x25;\n        pbVar32 = (byte *)((int)unaff_s6 + -5);\n        if (bVar26 != 0x5a) {\n          if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\n        iVar23 = *(int *)(puVar37 + 0x8839c);\n        if (3 < (int)pbVar32) {\n          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n          if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);\n          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);\n          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);\n          unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);\n          uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);\n          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);\n          *pbVar18 = (byte)((uint)uVar12 >> 0x10);\n          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);\n          *pbVar30 = (byte)uVar12;\n          (**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);\nLAB_00089674:\n        while (iVar11 == 0) {\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }\n        FUN_000887e0(iVar22,iVar11);\n        (**(code **)(puVar37 + 0x88394))(iVar11);\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n      uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11);\nLAB_000890b4:\n      FUN_000887e0(iVar22,uVar12);\n      (**(code **)(puVar37 + 0x88394))(uVar12);\n      unaff_s5 = pbVar28;\nLAB_000890e0:\n      *(undefined4 *)(iVar22 + 0x10) = 0;\n    } while( true );\n  }\n  uVar31 = *(uint *)(iVar22 + 0x4030);\n  bVar26 = *pbVar28;\n  pbVar34 = pbVar32 + -1;\n  pbVar30 = pbVar28 + 1;\n  if (bVar26 == 10) {\nLAB_0008942c:\n    pbVar28 = pbVar30;\n    if (0x2d < uVar31) {\n      pppppbVar36 = (byte *****)(iVar22 + 0x20);\n      iVar11 = (**(code **)(puVar37 + 0x894d4))\n                         (pppppbVar36,*(int *)(puVar37 + 0x8839c) + 0x4890,0x2e);\n      if (iVar11 == 0) {\n        if ((0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')) {\n          *(uint *)(iVar22 + 0x4030) = uVar27;\n          uVar31 = uVar27;\n        }\n        (**(code **)(puVar37 + 0x88b68))\n                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36);\n        *(undefined4 *)(iVar22 + 0x18) = 1;\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n    }\n    uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44f4);\n    goto LAB_000890b4;\n  }\n  pbVar18 = pbVar32;\n  if (uVar31 < 0x4010) {\n    uVar31 = uVar31 + 1;\n    pbVar29 = pbVar28 + (int)pbVar34;\n    pbVar34 = pbVar32;\n    unaff_s5 = pbVar30;\n    do {\n      *(uint *)(iVar22 + 0x4030) = uVar31;\n      *(byte *)(iVar22 + uVar31 + 0x1f) = bVar26;\n      if (pbVar28 + (int)pbVar32 == unaff_s5) goto LAB_00089094;\n      pbVar34 = pbVar29 + -(int)unaff_s5;\n      pbVar30 = unaff_s5 + 1;\n      bVar26 = *unaff_s5;\n      if (bVar26 == 10) goto LAB_0008942c;\n      uVar31 = uVar31 + 1;\n      pbVar18 = pbVar34;\n      unaff_s5 = pbVar30;\n    } while (uVar31 != 0x4011);\n  }\n  uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44d4);\n  pbVar34 = pbVar18;\n  pbVar28 = pbVar30;\n  goto LAB_000890b4;\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 "undefined4 uVar12;" (type_identifier "undefined4") (identifier "uVar12") (; ";")) (declaration "byte ****ppppbVar13;" (type_identifier "byte") (pointer_declarator "****ppppbVar13" (* "*") (pointer_declarator "***ppppbVar13" (* "*") (pointer_declarator "**ppppbVar13" (* "*") (pointer_declarator "*ppppbVar13" (* "*") (identifier "ppppbVar13"))))) (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "byte ****ppppbVar15;" (type_identifier "byte") (pointer_declarator "****ppppbVar15" (* "*") (pointer_declarator "***ppppbVar15" (* "*") (pointer_declarator "**ppppbVar15" (* "*") (pointer_declarator "*ppppbVar15" (* "*") (identifier "ppppbVar15"))))) (; ";")) (declaration "undefined1 *puVar16;" (type_identifier "undefined1") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "undefined1 *puVar17;" (type_identifier "undefined1") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "byte *pbVar18;" (type_identifier "byte") (pointer_declarator "*pbVar18" (* "*") (identifier "pbVar18")) (; ";")) (declaration "undefined4 *puVar19;" (type_identifier "undefined4") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "undefined4 *puVar20;" (type_identifier "undefined4") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "int iVar21;" (primitive_type "int") (identifier "iVar21") (; ";")) (declaration "int iVar22;" (primitive_type "int") (identifier "iVar22") (; ";")) (declaration "byte bVar26;" (type_identifier "byte") (identifier "bVar26") (; ";")) (declaration "int iVar23;" (primitive_type "int") (identifier "iVar23") (; ";")) (declaration "undefined4 uVar24;" (type_identifier "undefined4") (identifier "uVar24") (; ";")) (declaration "undefined4 *puVar25;" (type_identifier "undefined4") (pointer_declarator "*puVar25" (* "*") (identifier "puVar25")) (; ";")) (declaration "uint uVar27;" (type_identifier "uint") (identifier "uVar27") (; ";")) (declaration "byte *pbVar28;" (type_identifier "byte") (pointer_declarator "*pbVar28" (* "*") (identifier "pbVar28")) (; ";")) (declaration "byte *pbVar29;" (type_identifier "byte") (pointer_declarator "*pbVar29" (* "*") (identifier "pbVar29")) (; ";")) (declaration "uint in_t3;" (type_identifier "uint") (identifier "in_t3") (; ";")) (declaration "byte *pbVar30;" (type_identifier "byte") (pointer_declarator "*pbVar30" (* "*") (identifier "pbVar30")) (; ";")) (declaration "uint uVar31;" (type_identifier "uint") (identifier "uVar31") (; ";")) (declaration "byte *pbVar32;" (type_identifier "byte") (pointer_declarator "*pbVar32" (* "*") (identifier "pbVar32")) (; ";")) (declaration "byte *****pppppbVar33;" (type_identifier "byte") (pointer_declarator "*****pppppbVar33" (* "*") (pointer_declarator "****pppppbVar33" (* "*") (pointer_declarator "***pppppbVar33" (* "*") (pointer_declarator "**pppppbVar33" (* "*") (pointer_declarator "*pppppbVar33" (* "*") (identifier "pppppbVar33")))))) (; ";")) (declaration "byte *pbVar34;" (type_identifier "byte") (pointer_declarator "*pbVar34" (* "*") (identifier "pbVar34")) (; ";")) (declaration "byte *unaff_s5;" (type_identifier "byte") (pointer_declarator "*unaff_s5" (* "*") (identifier "unaff_s5")) (; ";")) (declaration "byte *****unaff_s6;" (type_identifier "byte") (pointer_declarator "*****unaff_s6" (* "*") (pointer_declarator "****unaff_s6" (* "*") (pointer_declarator "***unaff_s6" (* "*") (pointer_declarator "**unaff_s6" (* "*") (pointer_declarator "*unaff_s6" (* "*") (identifier "unaff_s6")))))) (; ";")) (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 "byte ****local_b0;" (type_identifier "byte") (pointer_declarator "****local_b0" (* "*") (pointer_declarator "***local_b0" (* "*") (pointer_declarator "**local_b0" (* "*") (pointer_declarator "*local_b0" (* "*") (identifier "local_b0"))))) (; ";")) (declaration "byte ****local_90;" (type_identifier "byte") (pointer_declarator "****local_90" (* "*") (pointer_declarator "***local_90" (* "*") (pointer_declarator "**local_90" (* "*") (pointer_declarator "*local_90" (* "*") (identifier "local_90"))))) (; ";")) (declaration "byte ****local_8c;" (type_identifier "byte") (pointer_declarator "****local_8c" (* "*") (pointer_declarator "***local_8c" (* "*") (pointer_declarator "**local_8c" (* "*") (pointer_declarator "*local_8c" (* "*") (identifier "local_8c"))))) (; ";")) (declaration "undefined4 local_88;" (type_identifier "undefined4") (identifier "local_88") (; ";")) (declaration "byte ***local_68;" (type_identifier "byte") (pointer_declarator "***local_68" (* "*") (pointer_declarator "**local_68" (* "*") (pointer_declarator "*local_68" (* "*") (identifier "local_68")))) (; ";")) (declaration "int local_64;" (primitive_type "int") (identifier "local_64") (; ";")) (declaration "int local_60;" (primitive_type "int") (identifier "local_60") (; ";")) (declaration "int local_5c;" (primitive_type "int") (identifier "local_5c") (; ";")) (declaration "undefined *local_58;" (type_identifier "undefined") (pointer_declarator "*local_58" (* "*") (identifier "local_58")) (; ";")) (declaration "undefined4 local_18;" (type_identifier "undefined4") (identifier "local_18") (; ";")) (declaration "int local_14;" (primitive_type "int") (identifier "local_14") (; ";")) (expression_statement "pppppbVar36 = (byte *****)PTR___stack_chk_guard_00112630;" (assignment_expression "pppppbVar36 = (byte *****)PTR___stack_chk_guard_00112630" (identifier "pppppbVar36") (= "=") (cast_expression "(byte *****)PTR___stack_chk_guard_00112630" (( "(") (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_00112630"))) (; ";")) (expression_statement "local_18 = *(undefined4 *)(param_2 + 4);" (assignment_expression "local_18 = *(undefined4 *)(param_2 + 4)" (identifier "local_18") (= "=") (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 "pbVar28 = &DAT_00000061;" (assignment_expression "pbVar28 = &DAT_00000061" (identifier "pbVar28") (= "=") (pointer_expression "&DAT_00000061" (& "&") (identifier "DAT_00000061"))) (; ";")) (expression_statement "pbVar32 = (byte *)&local_18;" (assignment_expression "pbVar32 = (byte *)&local_18" (identifier "pbVar32") (= "=") (cast_expression "(byte *)&local_18" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_18" (& "&") (identifier "local_18")))) (; ";")) (expression_statement "local_14 = *(int *)PTR___stack_chk_guard_00112630;" (assignment_expression "local_14 = *(int *)PTR___stack_chk_guard_00112630" (identifier "local_14") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_00112630" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_00112630" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_00112630")))) (; ";")) (expression_statement "(*(code *)PTR_ssh_send_packet_from_downstream_00111acc)\n            (*(undefined4 *)(*(int *)(param_1 + 0xc) + 0x14),*(undefined4 *)(param_1 + 4));" (call_expression "(*(code *)PTR_ssh_send_packet_from_downstream_00111acc)\n            (*(undefined4 *)(*(int *)(param_1 + 0xc) + 0x14),*(undefined4 *)(param_1 + 4))" (parenthesized_expression "(*(code *)PTR_ssh_send_packet_from_downstream_00111acc)" (( "(") (pointer_expression "*(code *)PTR_ssh_send_packet_from_downstream_00111acc" (* "*") (cast_expression "(code *)PTR_ssh_send_packet_from_downstream_00111acc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ssh_send_packet_from_downstream_00111acc"))) () ")")) (argument_list "(*(undefined4 *)(*(int *)(param_1 + 0xc) + 0x14),*(undefined4 *)(param_1 + 4))" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 0xc) + 0x14)" (* "*") (cast_expression "(undefined4 *)(*(int *)(param_1 + 0xc) + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (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")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 4)" (* "*") (cast_expression "(undefined4 *)(param_1 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) () ")"))) (; ";")) (expression_statement "*(undefined4 *)(param_2 + 8) = 0;" (assignment_expression "*(undefined4 *)(param_2 + 8) = 0" (pointer_expression "*(undefined4 *)(param_2 + 8)" (* "*") (cast_expression "(undefined4 *)(param_2 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar22 = param_1;" (assignment_expression "iVar22 = param_1" (identifier "iVar22") (= "=") (identifier "param_1")) (; ";")) (expression_statement "share_dead_xchannel_respond(param_1,param_2);" (call_expression "share_dead_xchannel_respond(param_1,param_2)" (identifier "share_dead_xchannel_respond") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")"))) (; ";")) (if_statement "if ((byte ****)local_14 == *pppppbVar36) {\n    return;\n  }" (if "if") (parenthesized_expression "((byte ****)local_14 == *pppppbVar36)" (( "(") (binary_expression "(byte ****)local_14 == *pppppbVar36" (cast_expression "(byte ****)local_14" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "local_14")) (== "==") (pointer_expression "*pppppbVar36" (* "*") (identifier "pppppbVar36"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "puVar37 = PTR___stack_chk_fail_001122c8;" (assignment_expression "puVar37 = PTR___stack_chk_fail_001122c8" (identifier "puVar37") (= "=") (identifier "PTR___stack_chk_fail_001122c8")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_001122c8)();" (call_expression "(*(code *)PTR___stack_chk_fail_001122c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_001122c8)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_001122c8" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_001122c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_001122c8"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar11 = *(int *)(iVar22 + 0x10);" (assignment_expression "iVar11 = *(int *)(iVar22 + 0x10)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(iVar22 + 0x10)" (* "*") (cast_expression "(int *)(iVar22 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x10)" (( "(") (binary_expression "iVar22 + 0x10" (identifier "iVar22") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "piVar39 = *(int **)(puVar37 + 0x896d4);" (assignment_expression "piVar39 = *(int **)(puVar37 + 0x896d4)" (identifier "piVar39") (= "=") (pointer_expression "*(int **)(puVar37 + 0x896d4)" (* "*") (cast_expression "(int **)(puVar37 + 0x896d4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x896d4)" (( "(") (binary_expression "puVar37 + 0x896d4" (identifier "puVar37") (+ "+") (number_literal "0x896d4")) () ")"))))) (; ";")) (expression_statement "local_58 = (undefined *)pppppbVar36;" (assignment_expression "local_58 = (undefined *)pppppbVar36" (identifier "local_58") (= "=") (cast_expression "(undefined *)pppppbVar36" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppppbVar36"))) (; ";")) (expression_statement "local_64 = *piVar39;" (assignment_expression "local_64 = *piVar39" (identifier "local_64") (= "=") (pointer_expression "*piVar39" (* "*") (identifier "piVar39"))) (; ";")) (expression_statement "pbVar34 = pbVar32;" (assignment_expression "pbVar34 = pbVar32" (identifier "pbVar34") (= "=") (identifier "pbVar32")) (; ";")) (expression_statement "local_60 = param_2;" (assignment_expression "local_60 = param_2" (identifier "local_60") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_5c = param_1;" (assignment_expression "local_5c = param_1" (identifier "local_5c") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (iVar11 != 0x709) {\n    if (0x709 < iVar11) {\n      if (iVar11 == 0x72e) goto LAB_000893ac;\n      if (iVar11 != 0x73b) goto LAB_000890e0;\n      goto LAB_00088fd4;\n    }\n    if (iVar11 != 0) goto LAB_000890e0;\n    *(undefined4 *)(iVar22 + 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_000893ac;\n      if (iVar11 != 0x73b) goto LAB_000890e0;\n      goto LAB_00088fd4;\n    }\n    if (iVar11 != 0) goto LAB_000890e0;\n    *(undefined4 *)(iVar22 + 0x4030) = 0;\n  }" ({ "{") (if_statement "if (0x709 < iVar11) {\n      if (iVar11 == 0x72e) goto LAB_000893ac;\n      if (iVar11 != 0x73b) goto LAB_000890e0;\n      goto LAB_00088fd4;\n    }" (if "if") (parenthesized_expression "(0x709 < iVar11)" (( "(") (binary_expression "0x709 < iVar11" (number_literal "0x709") (< "<") (identifier "iVar11")) () ")")) (compound_statement "{\n      if (iVar11 == 0x72e) goto LAB_000893ac;\n      if (iVar11 != 0x73b) goto LAB_000890e0;\n      goto LAB_00088fd4;\n    }" ({ "{") (if_statement "if (iVar11 == 0x72e) goto LAB_000893ac;" (if "if") (parenthesized_expression "(iVar11 == 0x72e)" (( "(") (binary_expression "iVar11 == 0x72e" (identifier "iVar11") (== "==") (number_literal "0x72e")) () ")")) (goto_statement "goto LAB_000893ac;" (goto "goto") (statement_identifier "LAB_000893ac") (; ";"))) (if_statement "if (iVar11 != 0x73b) goto LAB_000890e0;" (if "if") (parenthesized_expression "(iVar11 != 0x73b)" (( "(") (binary_expression "iVar11 != 0x73b" (identifier "iVar11") (!= "!=") (number_literal "0x73b")) () ")")) (goto_statement "goto LAB_000890e0;" (goto "goto") (statement_identifier "LAB_000890e0") (; ";"))) (goto_statement "goto LAB_00088fd4;" (goto "goto") (statement_identifier "LAB_00088fd4") (; ";")) (} "}"))) (if_statement "if (iVar11 != 0) goto LAB_000890e0;" (if "if") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000890e0;" (goto "goto") (statement_identifier "LAB_000890e0") (; ";"))) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x4030)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x4030)" (( "(") (binary_expression "iVar22 + 0x4030" (identifier "iVar22") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (pbVar32 == (byte *)0x0) {\nLAB_00089094:\n    *(undefined4 *)(iVar22 + 0x10) = 0x709;\nLAB_000890e4:\n    do {\n      if (local_64 == *piVar39) {\n        return;\n      }\n      (**(code **)(puVar37 + 0x8936c))();\n      pbVar28 = unaff_s5;\nLAB_00089df8:\n      local_68 = *local_b0;\n      FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n      (**(code **)(puVar37 + 0x88394))(unaff_s6);\n      *(undefined4 *)(iVar22 + 0x4030) = 0;\nLAB_000893ac:\n      pbVar32 = pbVar28 + (int)pbVar34;\n      unaff_s5 = pbVar28;\n      do {\n        pbVar34 = pbVar32 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar32) {\n          *(undefined4 *)(iVar22 + 0x10) = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar11 = *(int *)(iVar22 + 0x4030);\n        pbVar28 = unaff_s5 + 1;\n        iVar23 = iVar11 + 1;\n        bVar26 = *unaff_s5;\n        in_t3 = (uint)bVar26;\n        *(int *)(iVar22 + 0x4030) = iVar23;\n        *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n        unaff_s5 = pbVar28;\n      } while (iVar23 < 4);\n      iVar11 = (**(code **)(puVar37 + 0x884fc))(*(int *)(iVar22 + 0x20) + 4);\n      *(int *)(iVar22 + 0x1c) = iVar11;\n      if (iVar11 - 5U < 0x400c) {\n        unaff_s6 = *(byte ******)(iVar22 + 0x4030);\n        while (unaff_s5 = pbVar28, (int)unaff_s6 < iVar11) {\nLAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar11 = *(int *)(iVar22 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar26 = *pbVar28;\n          pbVar28 = pbVar28 + 1;\n          unaff_s6 = (byte *****)(iVar11 + 1);\n          *(byte ******)(iVar22 + 0x4030) = unaff_s6;\n          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n          iVar11 = *(int *)(iVar22 + 0x1c);\n        }\n        bVar26 = *(byte *)(iVar22 + 0x24);\n        iVar11 = iVar22 + 0x25;\n        pbVar32 = (byte *)((int)unaff_s6 + -5);\n        if (bVar26 != 0x5a) {\n          if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\n        iVar23 = *(int *)(puVar37 + 0x8839c);\n        if (3 < (int)pbVar32) {\n          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n          if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);\n          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);\n          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);\n          unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);\n          uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);\n          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);\n          *pbVar18 = (byte)((uint)uVar12 >> 0x10);\n          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);\n          *pbVar30 = (byte)uVar12;\n          (**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);\nLAB_00089674:\n        while (iVar11 == 0) {\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }\n        FUN_000887e0(iVar22,iVar11);\n        (**(code **)(puVar37 + 0x88394))(iVar11);\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n      uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11);\nLAB_000890b4:\n      FUN_000887e0(iVar22,uVar12);\n      (**(code **)(puVar37 + 0x88394))(uVar12);\n      unaff_s5 = pbVar28;\nLAB_000890e0:\n      *(undefined4 *)(iVar22 + 0x10) = 0;\n    } while( true );\n  }" (if "if") (parenthesized_expression "(pbVar32 == (byte *)0x0)" (( "(") (binary_expression "pbVar32 == (byte *)0x0" (identifier "pbVar32") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00089094:\n    *(undefined4 *)(iVar22 + 0x10) = 0x709;\nLAB_000890e4:\n    do {\n      if (local_64 == *piVar39) {\n        return;\n      }\n      (**(code **)(puVar37 + 0x8936c))();\n      pbVar28 = unaff_s5;\nLAB_00089df8:\n      local_68 = *local_b0;\n      FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n      (**(code **)(puVar37 + 0x88394))(unaff_s6);\n      *(undefined4 *)(iVar22 + 0x4030) = 0;\nLAB_000893ac:\n      pbVar32 = pbVar28 + (int)pbVar34;\n      unaff_s5 = pbVar28;\n      do {\n        pbVar34 = pbVar32 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar32) {\n          *(undefined4 *)(iVar22 + 0x10) = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar11 = *(int *)(iVar22 + 0x4030);\n        pbVar28 = unaff_s5 + 1;\n        iVar23 = iVar11 + 1;\n        bVar26 = *unaff_s5;\n        in_t3 = (uint)bVar26;\n        *(int *)(iVar22 + 0x4030) = iVar23;\n        *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n        unaff_s5 = pbVar28;\n      } while (iVar23 < 4);\n      iVar11 = (**(code **)(puVar37 + 0x884fc))(*(int *)(iVar22 + 0x20) + 4);\n      *(int *)(iVar22 + 0x1c) = iVar11;\n      if (iVar11 - 5U < 0x400c) {\n        unaff_s6 = *(byte ******)(iVar22 + 0x4030);\n        while (unaff_s5 = pbVar28, (int)unaff_s6 < iVar11) {\nLAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar11 = *(int *)(iVar22 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar26 = *pbVar28;\n          pbVar28 = pbVar28 + 1;\n          unaff_s6 = (byte *****)(iVar11 + 1);\n          *(byte ******)(iVar22 + 0x4030) = unaff_s6;\n          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n          iVar11 = *(int *)(iVar22 + 0x1c);\n        }\n        bVar26 = *(byte *)(iVar22 + 0x24);\n        iVar11 = iVar22 + 0x25;\n        pbVar32 = (byte *)((int)unaff_s6 + -5);\n        if (bVar26 != 0x5a) {\n          if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\n        iVar23 = *(int *)(puVar37 + 0x8839c);\n        if (3 < (int)pbVar32) {\n          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n          if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);\n          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);\n          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);\n          unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);\n          uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);\n          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);\n          *pbVar18 = (byte)((uint)uVar12 >> 0x10);\n          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);\n          *pbVar30 = (byte)uVar12;\n          (**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);\nLAB_00089674:\n        while (iVar11 == 0) {\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }\n        FUN_000887e0(iVar22,iVar11);\n        (**(code **)(puVar37 + 0x88394))(iVar11);\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n      uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11);\nLAB_000890b4:\n      FUN_000887e0(iVar22,uVar12);\n      (**(code **)(puVar37 + 0x88394))(uVar12);\n      unaff_s5 = pbVar28;\nLAB_000890e0:\n      *(undefined4 *)(iVar22 + 0x10) = 0;\n    } while( true );\n  }" ({ "{") (labeled_statement "LAB_00089094:\n    *(undefined4 *)(iVar22 + 0x10) = 0x709;" (statement_identifier "LAB_00089094") (: ":") (expression_statement "*(undefined4 *)(iVar22 + 0x10) = 0x709;" (assignment_expression "*(undefined4 *)(iVar22 + 0x10) = 0x709" (pointer_expression "*(undefined4 *)(iVar22 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x10)" (( "(") (binary_expression "iVar22 + 0x10" (identifier "iVar22") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "0x709")) (; ";"))) (labeled_statement "LAB_000890e4:\n    do {\n      if (local_64 == *piVar39) {\n        return;\n      }\n      (**(code **)(puVar37 + 0x8936c))();\n      pbVar28 = unaff_s5;\nLAB_00089df8:\n      local_68 = *local_b0;\n      FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n      (**(code **)(puVar37 + 0x88394))(unaff_s6);\n      *(undefined4 *)(iVar22 + 0x4030) = 0;\nLAB_000893ac:\n      pbVar32 = pbVar28 + (int)pbVar34;\n      unaff_s5 = pbVar28;\n      do {\n        pbVar34 = pbVar32 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar32) {\n          *(undefined4 *)(iVar22 + 0x10) = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar11 = *(int *)(iVar22 + 0x4030);\n        pbVar28 = unaff_s5 + 1;\n        iVar23 = iVar11 + 1;\n        bVar26 = *unaff_s5;\n        in_t3 = (uint)bVar26;\n        *(int *)(iVar22 + 0x4030) = iVar23;\n        *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n        unaff_s5 = pbVar28;\n      } while (iVar23 < 4);\n      iVar11 = (**(code **)(puVar37 + 0x884fc))(*(int *)(iVar22 + 0x20) + 4);\n      *(int *)(iVar22 + 0x1c) = iVar11;\n      if (iVar11 - 5U < 0x400c) {\n        unaff_s6 = *(byte ******)(iVar22 + 0x4030);\n        while (unaff_s5 = pbVar28, (int)unaff_s6 < iVar11) {\nLAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar11 = *(int *)(iVar22 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar26 = *pbVar28;\n          pbVar28 = pbVar28 + 1;\n          unaff_s6 = (byte *****)(iVar11 + 1);\n          *(byte ******)(iVar22 + 0x4030) = unaff_s6;\n          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n          iVar11 = *(int *)(iVar22 + 0x1c);\n        }\n        bVar26 = *(byte *)(iVar22 + 0x24);\n        iVar11 = iVar22 + 0x25;\n        pbVar32 = (byte *)((int)unaff_s6 + -5);\n        if (bVar26 != 0x5a) {\n          if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\n        iVar23 = *(int *)(puVar37 + 0x8839c);\n        if (3 < (int)pbVar32) {\n          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n          if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);\n          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);\n          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);\n          unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);\n          uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);\n          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);\n          *pbVar18 = (byte)((uint)uVar12 >> 0x10);\n          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);\n          *pbVar30 = (byte)uVar12;\n          (**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);\nLAB_00089674:\n        while (iVar11 == 0) {\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }\n        FUN_000887e0(iVar22,iVar11);\n        (**(code **)(puVar37 + 0x88394))(iVar11);\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n      uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11);\nLAB_000890b4:\n      FUN_000887e0(iVar22,uVar12);\n      (**(code **)(puVar37 + 0x88394))(uVar12);\n      unaff_s5 = pbVar28;\nLAB_000890e0:\n      *(undefined4 *)(iVar22 + 0x10) = 0;\n    } while( true );" (statement_identifier "LAB_000890e4") (: ":") (do_statement "do {\n      if (local_64 == *piVar39) {\n        return;\n      }\n      (**(code **)(puVar37 + 0x8936c))();\n      pbVar28 = unaff_s5;\nLAB_00089df8:\n      local_68 = *local_b0;\n      FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n      (**(code **)(puVar37 + 0x88394))(unaff_s6);\n      *(undefined4 *)(iVar22 + 0x4030) = 0;\nLAB_000893ac:\n      pbVar32 = pbVar28 + (int)pbVar34;\n      unaff_s5 = pbVar28;\n      do {\n        pbVar34 = pbVar32 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar32) {\n          *(undefined4 *)(iVar22 + 0x10) = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar11 = *(int *)(iVar22 + 0x4030);\n        pbVar28 = unaff_s5 + 1;\n        iVar23 = iVar11 + 1;\n        bVar26 = *unaff_s5;\n        in_t3 = (uint)bVar26;\n        *(int *)(iVar22 + 0x4030) = iVar23;\n        *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n        unaff_s5 = pbVar28;\n      } while (iVar23 < 4);\n      iVar11 = (**(code **)(puVar37 + 0x884fc))(*(int *)(iVar22 + 0x20) + 4);\n      *(int *)(iVar22 + 0x1c) = iVar11;\n      if (iVar11 - 5U < 0x400c) {\n        unaff_s6 = *(byte ******)(iVar22 + 0x4030);\n        while (unaff_s5 = pbVar28, (int)unaff_s6 < iVar11) {\nLAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar11 = *(int *)(iVar22 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar26 = *pbVar28;\n          pbVar28 = pbVar28 + 1;\n          unaff_s6 = (byte *****)(iVar11 + 1);\n          *(byte ******)(iVar22 + 0x4030) = unaff_s6;\n          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n          iVar11 = *(int *)(iVar22 + 0x1c);\n        }\n        bVar26 = *(byte *)(iVar22 + 0x24);\n        iVar11 = iVar22 + 0x25;\n        pbVar32 = (byte *)((int)unaff_s6 + -5);\n        if (bVar26 != 0x5a) {\n          if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\n        iVar23 = *(int *)(puVar37 + 0x8839c);\n        if (3 < (int)pbVar32) {\n          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n          if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);\n          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);\n          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);\n          unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);\n          uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);\n          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);\n          *pbVar18 = (byte)((uint)uVar12 >> 0x10);\n          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);\n          *pbVar30 = (byte)uVar12;\n          (**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);\nLAB_00089674:\n        while (iVar11 == 0) {\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }\n        FUN_000887e0(iVar22,iVar11);\n        (**(code **)(puVar37 + 0x88394))(iVar11);\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n      uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11);\nLAB_000890b4:\n      FUN_000887e0(iVar22,uVar12);\n      (**(code **)(puVar37 + 0x88394))(uVar12);\n      unaff_s5 = pbVar28;\nLAB_000890e0:\n      *(undefined4 *)(iVar22 + 0x10) = 0;\n    } while( true );" (do "do") (compound_statement "{\n      if (local_64 == *piVar39) {\n        return;\n      }\n      (**(code **)(puVar37 + 0x8936c))();\n      pbVar28 = unaff_s5;\nLAB_00089df8:\n      local_68 = *local_b0;\n      FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n      (**(code **)(puVar37 + 0x88394))(unaff_s6);\n      *(undefined4 *)(iVar22 + 0x4030) = 0;\nLAB_000893ac:\n      pbVar32 = pbVar28 + (int)pbVar34;\n      unaff_s5 = pbVar28;\n      do {\n        pbVar34 = pbVar32 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar32) {\n          *(undefined4 *)(iVar22 + 0x10) = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar11 = *(int *)(iVar22 + 0x4030);\n        pbVar28 = unaff_s5 + 1;\n        iVar23 = iVar11 + 1;\n        bVar26 = *unaff_s5;\n        in_t3 = (uint)bVar26;\n        *(int *)(iVar22 + 0x4030) = iVar23;\n        *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n        unaff_s5 = pbVar28;\n      } while (iVar23 < 4);\n      iVar11 = (**(code **)(puVar37 + 0x884fc))(*(int *)(iVar22 + 0x20) + 4);\n      *(int *)(iVar22 + 0x1c) = iVar11;\n      if (iVar11 - 5U < 0x400c) {\n        unaff_s6 = *(byte ******)(iVar22 + 0x4030);\n        while (unaff_s5 = pbVar28, (int)unaff_s6 < iVar11) {\nLAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar11 = *(int *)(iVar22 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar26 = *pbVar28;\n          pbVar28 = pbVar28 + 1;\n          unaff_s6 = (byte *****)(iVar11 + 1);\n          *(byte ******)(iVar22 + 0x4030) = unaff_s6;\n          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n          iVar11 = *(int *)(iVar22 + 0x1c);\n        }\n        bVar26 = *(byte *)(iVar22 + 0x24);\n        iVar11 = iVar22 + 0x25;\n        pbVar32 = (byte *)((int)unaff_s6 + -5);\n        if (bVar26 != 0x5a) {\n          if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\n        iVar23 = *(int *)(puVar37 + 0x8839c);\n        if (3 < (int)pbVar32) {\n          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n          if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);\n          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);\n          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);\n          unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);\n          uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);\n          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);\n          *pbVar18 = (byte)((uint)uVar12 >> 0x10);\n          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);\n          *pbVar30 = (byte)uVar12;\n          (**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);\nLAB_00089674:\n        while (iVar11 == 0) {\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }\n        FUN_000887e0(iVar22,iVar11);\n        (**(code **)(puVar37 + 0x88394))(iVar11);\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n      uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11);\nLAB_000890b4:\n      FUN_000887e0(iVar22,uVar12);\n      (**(code **)(puVar37 + 0x88394))(uVar12);\n      unaff_s5 = pbVar28;\nLAB_000890e0:\n      *(undefined4 *)(iVar22 + 0x10) = 0;\n    }" ({ "{") (if_statement "if (local_64 == *piVar39) {\n        return;\n      }" (if "if") (parenthesized_expression "(local_64 == *piVar39)" (( "(") (binary_expression "local_64 == *piVar39" (identifier "local_64") (== "==") (pointer_expression "*piVar39" (* "*") (identifier "piVar39"))) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar37 + 0x8936c))();" (call_expression "(**(code **)(puVar37 + 0x8936c))()" (parenthesized_expression "(**(code **)(puVar37 + 0x8936c))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x8936c)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x8936c)" (* "*") (cast_expression "(code **)(puVar37 + 0x8936c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x8936c)" (( "(") (binary_expression "puVar37 + 0x8936c" (identifier "puVar37") (+ "+") (number_literal "0x8936c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pbVar28 = unaff_s5;" (assignment_expression "pbVar28 = unaff_s5" (identifier "pbVar28") (= "=") (identifier "unaff_s5")) (; ";")) (labeled_statement "LAB_00089df8:\n      local_68 = *local_b0;" (statement_identifier "LAB_00089df8") (: ":") (expression_statement "local_68 = *local_b0;" (assignment_expression "local_68 = *local_b0" (identifier "local_68") (= "=") (pointer_expression "*local_b0" (* "*") (identifier "local_b0"))) (; ";"))) (expression_statement "FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);" (call_expression "FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc)" (identifier "FUN_000877b4") (argument_list "(iVar22 + 8,100,&local_68,4,0,0xc)" (( "(") (binary_expression "iVar22 + 8" (identifier "iVar22") (+ "+") (number_literal "8")) (, ",") (number_literal "100") (, ",") (pointer_expression "&local_68" (& "&") (identifier "local_68")) (, ",") (number_literal "4") (, ",") (number_literal "0") (, ",") (number_literal "0xc") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar37 + 0x88394))(unaff_s6);" (call_expression "(**(code **)(puVar37 + 0x88394))(unaff_s6)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88394)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88394)" (* "*") (cast_expression "(code **)(puVar37 + 0x88394)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88394)" (( "(") (binary_expression "puVar37 + 0x88394" (identifier "puVar37") (+ "+") (number_literal "0x88394")) () ")"))))) () ")")) (argument_list "(unaff_s6)" (( "(") (identifier "unaff_s6") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x4030)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x4030)" (( "(") (binary_expression "iVar22 + 0x4030" (identifier "iVar22") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_000893ac:\n      pbVar32 = pbVar28 + (int)pbVar34;" (statement_identifier "LAB_000893ac") (: ":") (expression_statement "pbVar32 = pbVar28 + (int)pbVar34;" (assignment_expression "pbVar32 = pbVar28 + (int)pbVar34" (identifier "pbVar32") (= "=") (binary_expression "pbVar28 + (int)pbVar34" (identifier "pbVar28") (+ "+") (cast_expression "(int)pbVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar34")))) (; ";"))) (expression_statement "unaff_s5 = pbVar28;" (assignment_expression "unaff_s5 = pbVar28" (identifier "unaff_s5") (= "=") (identifier "pbVar28")) (; ";")) (do_statement "do {\n        pbVar34 = pbVar32 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar32) {\n          *(undefined4 *)(iVar22 + 0x10) = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar11 = *(int *)(iVar22 + 0x4030);\n        pbVar28 = unaff_s5 + 1;\n        iVar23 = iVar11 + 1;\n        bVar26 = *unaff_s5;\n        in_t3 = (uint)bVar26;\n        *(int *)(iVar22 + 0x4030) = iVar23;\n        *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n        unaff_s5 = pbVar28;\n      } while (iVar23 < 4);" (do "do") (compound_statement "{\n        pbVar34 = pbVar32 + (-1 - (int)unaff_s5);\n        if (unaff_s5 == pbVar32) {\n          *(undefined4 *)(iVar22 + 0x10) = 0x72e;\n          goto LAB_000890e4;\n        }\n        iVar11 = *(int *)(iVar22 + 0x4030);\n        pbVar28 = unaff_s5 + 1;\n        iVar23 = iVar11 + 1;\n        bVar26 = *unaff_s5;\n        in_t3 = (uint)bVar26;\n        *(int *)(iVar22 + 0x4030) = iVar23;\n        *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n        unaff_s5 = pbVar28;\n      }" ({ "{") (expression_statement "pbVar34 = pbVar32 + (-1 - (int)unaff_s5);" (assignment_expression "pbVar34 = pbVar32 + (-1 - (int)unaff_s5)" (identifier "pbVar34") (= "=") (binary_expression "pbVar32 + (-1 - (int)unaff_s5)" (identifier "pbVar32") (+ "+") (parenthesized_expression "(-1 - (int)unaff_s5)" (( "(") (binary_expression "-1 - (int)unaff_s5" (number_literal "-1") (- "-") (cast_expression "(int)unaff_s5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s5"))) () ")")))) (; ";")) (if_statement "if (unaff_s5 == pbVar32) {\n          *(undefined4 *)(iVar22 + 0x10) = 0x72e;\n          goto LAB_000890e4;\n        }" (if "if") (parenthesized_expression "(unaff_s5 == pbVar32)" (( "(") (binary_expression "unaff_s5 == pbVar32" (identifier "unaff_s5") (== "==") (identifier "pbVar32")) () ")")) (compound_statement "{\n          *(undefined4 *)(iVar22 + 0x10) = 0x72e;\n          goto LAB_000890e4;\n        }" ({ "{") (expression_statement "*(undefined4 *)(iVar22 + 0x10) = 0x72e;" (assignment_expression "*(undefined4 *)(iVar22 + 0x10) = 0x72e" (pointer_expression "*(undefined4 *)(iVar22 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x10)" (( "(") (binary_expression "iVar22 + 0x10" (identifier "iVar22") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "0x72e")) (; ";")) (goto_statement "goto LAB_000890e4;" (goto "goto") (statement_identifier "LAB_000890e4") (; ";")) (} "}"))) (expression_statement "iVar11 = *(int *)(iVar22 + 0x4030);" (assignment_expression "iVar11 = *(int *)(iVar22 + 0x4030)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(iVar22 + 0x4030)" (* "*") (cast_expression "(int *)(iVar22 + 0x4030)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x4030)" (( "(") (binary_expression "iVar22 + 0x4030" (identifier "iVar22") (+ "+") (number_literal "0x4030")) () ")"))))) (; ";")) (expression_statement "pbVar28 = unaff_s5 + 1;" (assignment_expression "pbVar28 = unaff_s5 + 1" (identifier "pbVar28") (= "=") (binary_expression "unaff_s5 + 1" (identifier "unaff_s5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar23 = iVar11 + 1;" (assignment_expression "iVar23 = iVar11 + 1" (identifier "iVar23") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar26 = *unaff_s5;" (assignment_expression "bVar26 = *unaff_s5" (identifier "bVar26") (= "=") (pointer_expression "*unaff_s5" (* "*") (identifier "unaff_s5"))) (; ";")) (expression_statement "in_t3 = (uint)bVar26;" (assignment_expression "in_t3 = (uint)bVar26" (identifier "in_t3") (= "=") (cast_expression "(uint)bVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar26"))) (; ";")) (expression_statement "*(int *)(iVar22 + 0x4030) = iVar23;" (assignment_expression "*(int *)(iVar22 + 0x4030) = iVar23" (pointer_expression "*(int *)(iVar22 + 0x4030)" (* "*") (cast_expression "(int *)(iVar22 + 0x4030)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x4030)" (( "(") (binary_expression "iVar22 + 0x4030" (identifier "iVar22") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (identifier "iVar23")) (; ";")) (expression_statement "*(byte *)(iVar22 + iVar11 + 0x20) = bVar26;" (assignment_expression "*(byte *)(iVar22 + iVar11 + 0x20) = bVar26" (pointer_expression "*(byte *)(iVar22 + iVar11 + 0x20)" (* "*") (cast_expression "(byte *)(iVar22 + iVar11 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + iVar11 + 0x20)" (( "(") (binary_expression "iVar22 + iVar11 + 0x20" (binary_expression "iVar22 + iVar11" (identifier "iVar22") (+ "+") (identifier "iVar11")) (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "bVar26")) (; ";")) (expression_statement "unaff_s5 = pbVar28;" (assignment_expression "unaff_s5 = pbVar28" (identifier "unaff_s5") (= "=") (identifier "pbVar28")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar23 < 4)" (( "(") (binary_expression "iVar23 < 4" (identifier "iVar23") (< "<") (number_literal "4")) () ")")) (; ";")) (expression_statement "iVar11 = (**(code **)(puVar37 + 0x884fc))(*(int *)(iVar22 + 0x20) + 4);" (assignment_expression "iVar11 = (**(code **)(puVar37 + 0x884fc))(*(int *)(iVar22 + 0x20) + 4)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(puVar37 + 0x884fc))(*(int *)(iVar22 + 0x20) + 4)" (parenthesized_expression "(**(code **)(puVar37 + 0x884fc))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x884fc)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x884fc)" (* "*") (cast_expression "(code **)(puVar37 + 0x884fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x884fc)" (( "(") (binary_expression "puVar37 + 0x884fc" (identifier "puVar37") (+ "+") (number_literal "0x884fc")) () ")"))))) () ")")) (argument_list "(*(int *)(iVar22 + 0x20) + 4)" (( "(") (binary_expression "*(int *)(iVar22 + 0x20) + 4" (pointer_expression "*(int *)(iVar22 + 0x20)" (* "*") (cast_expression "(int *)(iVar22 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x20)" (( "(") (binary_expression "iVar22 + 0x20" (identifier "iVar22") (+ "+") (number_literal "0x20")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "*(int *)(iVar22 + 0x1c) = iVar11;" (assignment_expression "*(int *)(iVar22 + 0x1c) = iVar11" (pointer_expression "*(int *)(iVar22 + 0x1c)" (* "*") (cast_expression "(int *)(iVar22 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x1c)" (( "(") (binary_expression "iVar22 + 0x1c" (identifier "iVar22") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "iVar11")) (; ";")) (if_statement "if (iVar11 - 5U < 0x400c) {\n        unaff_s6 = *(byte ******)(iVar22 + 0x4030);\n        while (unaff_s5 = pbVar28, (int)unaff_s6 < iVar11) {\nLAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar11 = *(int *)(iVar22 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar26 = *pbVar28;\n          pbVar28 = pbVar28 + 1;\n          unaff_s6 = (byte *****)(iVar11 + 1);\n          *(byte ******)(iVar22 + 0x4030) = unaff_s6;\n          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n          iVar11 = *(int *)(iVar22 + 0x1c);\n        }\n        bVar26 = *(byte *)(iVar22 + 0x24);\n        iVar11 = iVar22 + 0x25;\n        pbVar32 = (byte *)((int)unaff_s6 + -5);\n        if (bVar26 != 0x5a) {\n          if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\n        iVar23 = *(int *)(puVar37 + 0x8839c);\n        if (3 < (int)pbVar32) {\n          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n          if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);\n          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);\n          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);\n          unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);\n          uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);\n          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);\n          *pbVar18 = (byte)((uint)uVar12 >> 0x10);\n          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);\n          *pbVar30 = (byte)uVar12;\n          (**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);\nLAB_00089674:\n        while (iVar11 == 0) {\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }\n        FUN_000887e0(iVar22,iVar11);\n        (**(code **)(puVar37 + 0x88394))(iVar11);\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }" (if "if") (parenthesized_expression "(iVar11 - 5U < 0x400c)" (( "(") (binary_expression "iVar11 - 5U < 0x400c" (binary_expression "iVar11 - 5U" (identifier "iVar11") (- "-") (number_literal "5U")) (< "<") (number_literal "0x400c")) () ")")) (compound_statement "{\n        unaff_s6 = *(byte ******)(iVar22 + 0x4030);\n        while (unaff_s5 = pbVar28, (int)unaff_s6 < iVar11) {\nLAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar11 = *(int *)(iVar22 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar26 = *pbVar28;\n          pbVar28 = pbVar28 + 1;\n          unaff_s6 = (byte *****)(iVar11 + 1);\n          *(byte ******)(iVar22 + 0x4030) = unaff_s6;\n          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n          iVar11 = *(int *)(iVar22 + 0x1c);\n        }\n        bVar26 = *(byte *)(iVar22 + 0x24);\n        iVar11 = iVar22 + 0x25;\n        pbVar32 = (byte *)((int)unaff_s6 + -5);\n        if (bVar26 != 0x5a) {\n          if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\n        iVar23 = *(int *)(puVar37 + 0x8839c);\n        if (3 < (int)pbVar32) {\n          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n          if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);\n          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);\n          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);\n          unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);\n          uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);\n          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);\n          *pbVar18 = (byte)((uint)uVar12 >> 0x10);\n          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);\n          *pbVar30 = (byte)uVar12;\n          (**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }\nLAB_00089d50:\n        iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);\nLAB_00089674:\n        while (iVar11 == 0) {\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }\n        FUN_000887e0(iVar22,iVar11);\n        (**(code **)(puVar37 + 0x88394))(iVar11);\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }" ({ "{") (expression_statement "unaff_s6 = *(byte ******)(iVar22 + 0x4030);" (assignment_expression "unaff_s6 = *(byte ******)(iVar22 + 0x4030)" (identifier "unaff_s6") (= "=") (pointer_expression "*(byte ******)(iVar22 + 0x4030)" (* "*") (cast_expression "(byte ******)(iVar22 + 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 "(iVar22 + 0x4030)" (( "(") (binary_expression "iVar22 + 0x4030" (identifier "iVar22") (+ "+") (number_literal "0x4030")) () ")"))))) (; ";")) (while_statement "while (unaff_s5 = pbVar28, (int)unaff_s6 < iVar11) {\nLAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar11 = *(int *)(iVar22 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar26 = *pbVar28;\n          pbVar28 = pbVar28 + 1;\n          unaff_s6 = (byte *****)(iVar11 + 1);\n          *(byte ******)(iVar22 + 0x4030) = unaff_s6;\n          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n          iVar11 = *(int *)(iVar22 + 0x1c);\n        }" (while "while") (parenthesized_expression "(unaff_s5 = pbVar28, (int)unaff_s6 < iVar11)" (( "(") (comma_expression "unaff_s5 = pbVar28, (int)unaff_s6 < iVar11" (assignment_expression "unaff_s5 = pbVar28" (identifier "unaff_s5") (= "=") (identifier "pbVar28")) (, ",") (binary_expression "(int)unaff_s6 < iVar11" (cast_expression "(int)unaff_s6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s6")) (< "<") (identifier "iVar11"))) () ")")) (compound_statement "{\nLAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }\n          iVar11 = *(int *)(iVar22 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar26 = *pbVar28;\n          pbVar28 = pbVar28 + 1;\n          unaff_s6 = (byte *****)(iVar11 + 1);\n          *(byte ******)(iVar22 + 0x4030) = unaff_s6;\n          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;\n          iVar11 = *(int *)(iVar22 + 0x1c);\n        }" ({ "{") (labeled_statement "LAB_00088fd4:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }" (statement_identifier "LAB_00088fd4") (: ":") (if_statement "if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\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 *)(iVar22 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_000890e4;\n          }" ({ "{") (expression_statement "*(undefined4 *)(iVar22 + 0x10) = 0x73b;" (assignment_expression "*(undefined4 *)(iVar22 + 0x10) = 0x73b" (pointer_expression "*(undefined4 *)(iVar22 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x10)" (( "(") (binary_expression "iVar22 + 0x10" (identifier "iVar22") (+ "+") (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_000890e4;" (goto "goto") (statement_identifier "LAB_000890e4") (; ";")) (} "}")))) (expression_statement "iVar11 = *(int *)(iVar22 + 0x4030);" (assignment_expression "iVar11 = *(int *)(iVar22 + 0x4030)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(iVar22 + 0x4030)" (* "*") (cast_expression "(int *)(iVar22 + 0x4030)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x4030)" (( "(") (binary_expression "iVar22 + 0x4030" (identifier "iVar22") (+ "+") (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 "bVar26 = *pbVar28;" (assignment_expression "bVar26 = *pbVar28" (identifier "bVar26") (= "=") (pointer_expression "*pbVar28" (* "*") (identifier "pbVar28"))) (; ";")) (expression_statement "pbVar28 = pbVar28 + 1;" (assignment_expression "pbVar28 = pbVar28 + 1" (identifier "pbVar28") (= "=") (binary_expression "pbVar28 + 1" (identifier "pbVar28") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "unaff_s6 = (byte *****)(iVar11 + 1);" (assignment_expression "unaff_s6 = (byte *****)(iVar11 + 1)" (identifier "unaff_s6") (= "=") (cast_expression "(byte *****)(iVar11 + 1)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(iVar11 + 1)" (( "(") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*(byte ******)(iVar22 + 0x4030) = unaff_s6;" (assignment_expression "*(byte ******)(iVar22 + 0x4030) = unaff_s6" (pointer_expression "*(byte ******)(iVar22 + 0x4030)" (* "*") (cast_expression "(byte ******)(iVar22 + 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 "(iVar22 + 0x4030)" (( "(") (binary_expression "iVar22 + 0x4030" (identifier "iVar22") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "*(byte *)(iVar22 + iVar11 + 0x20) = bVar26;" (assignment_expression "*(byte *)(iVar22 + iVar11 + 0x20) = bVar26" (pointer_expression "*(byte *)(iVar22 + iVar11 + 0x20)" (* "*") (cast_expression "(byte *)(iVar22 + iVar11 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + iVar11 + 0x20)" (( "(") (binary_expression "iVar22 + iVar11 + 0x20" (binary_expression "iVar22 + iVar11" (identifier "iVar22") (+ "+") (identifier "iVar11")) (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "bVar26")) (; ";")) (expression_statement "iVar11 = *(int *)(iVar22 + 0x1c);" (assignment_expression "iVar11 = *(int *)(iVar22 + 0x1c)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(iVar22 + 0x1c)" (* "*") (cast_expression "(int *)(iVar22 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x1c)" (( "(") (binary_expression "iVar22 + 0x1c" (identifier "iVar22") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (} "}"))) (expression_statement "bVar26 = *(byte *)(iVar22 + 0x24);" (assignment_expression "bVar26 = *(byte *)(iVar22 + 0x24)" (identifier "bVar26") (= "=") (pointer_expression "*(byte *)(iVar22 + 0x24)" (* "*") (cast_expression "(byte *)(iVar22 + 0x24)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x24)" (( "(") (binary_expression "iVar22 + 0x24" (identifier "iVar22") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "iVar11 = iVar22 + 0x25;" (assignment_expression "iVar11 = iVar22 + 0x25" (identifier "iVar11") (= "=") (binary_expression "iVar22 + 0x25" (identifier "iVar22") (+ "+") (number_literal "0x25"))) (; ";")) (expression_statement "pbVar32 = (byte *)((int)unaff_s6 + -5);" (assignment_expression "pbVar32 = (byte *)((int)unaff_s6 + -5)" (identifier "pbVar32") (= "=") (cast_expression "(byte *)((int)unaff_s6 + -5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s6 + -5)" (( "(") (binary_expression "(int)unaff_s6 + -5" (cast_expression "(int)unaff_s6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s6")) (+ "+") (number_literal "-5")) () ")")))) (; ";")) (if_statement "if (bVar26 != 0x5a) {\n          if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }" (if "if") (parenthesized_expression "(bVar26 != 0x5a)" (( "(") (binary_expression "bVar26 != 0x5a" (identifier "bVar26") (!= "!=") (number_literal "0x5a")) () ")")) (compound_statement "{\n          if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }\nLAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }" ({ "{") (if_statement "if (bVar26 < 0x5b) {\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }\n          else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }" (if "if") (parenthesized_expression "(bVar26 < 0x5b)" (( "(") (binary_expression "bVar26 < 0x5b" (identifier "bVar26") (< "<") (number_literal "0x5b")) () ")")) (compound_statement "{\n            if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\nLAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }\nLAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);\n            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }\n          }" ({ "{") (if_statement "if (bVar26 != 2) {\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }" (if "if") (parenthesized_expression "(bVar26 != 2)" (( "(") (binary_expression "bVar26 != 2" (identifier "bVar26") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n              if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }\n              if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }\n              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));\n              *(undefined4 *)(iVar22 + 8) = 0;\n              FUN_000882d0(iVar22);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }" ({ "{") (if_statement "if (2 < bVar26) {\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }" (if "if") (parenthesized_expression "(2 < bVar26)" (( "(") (binary_expression "2 < bVar26" (number_literal "2") (< "<") (identifier "bVar26")) () ")")) (compound_statement "{\n                if (bVar26 == 4) goto LAB_00089714;\n                if (bVar26 != 0x50) goto LAB_0008965c;\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                pppppbVar33 = pppppbVar36;\n                if ((int)pbVar32 < 4) goto LAB_000896fc;\n                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);\n                ppppbVar13 = local_90;\n                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);\n                if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                pppppbVar36 = (byte *****)local_90;\n                if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;\n                pbVar18 = (byte *)((int)local_90 + iVar11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                local_b0 = (byte ****)(uint)*pbVar18;\n                if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }\nLAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);\n                pppppbVar36 = pppppbVar33;\n                goto LAB_00089674;\n              }" ({ "{") (if_statement "if (bVar26 == 4) goto LAB_00089714;" (if "if") (parenthesized_expression "(bVar26 == 4)" (( "(") (binary_expression "bVar26 == 4" (identifier "bVar26") (== "==") (number_literal "4")) () ")")) (goto_statement "goto LAB_00089714;" (goto "goto") (statement_identifier "LAB_00089714") (; ";"))) (if_statement "if (bVar26 != 0x50) goto LAB_0008965c;" (if "if") (parenthesized_expression "(bVar26 != 0x50)" (( "(") (binary_expression "bVar26 != 0x50" (identifier "bVar26") (!= "!=") (number_literal "0x50")) () ")")) (goto_statement "goto LAB_0008965c;" (goto "goto") (statement_identifier "LAB_0008965c") (; ";"))) (expression_statement "iVar23 = *(int *)(puVar37 + 0x8839c);" (assignment_expression "iVar23 = *(int *)(puVar37 + 0x8839c)" (identifier "iVar23") (= "=") (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")"))))) (; ";")) (expression_statement "pppppbVar33 = pppppbVar36;" (assignment_expression "pppppbVar33 = pppppbVar36" (identifier "pppppbVar33") (= "=") (identifier "pppppbVar36")) (; ";")) (if_statement "if ((int)pbVar32 < 4) goto LAB_000896fc;" (if "if") (parenthesized_expression "((int)pbVar32 < 4)" (( "(") (binary_expression "(int)pbVar32 < 4" (cast_expression "(int)pbVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar32")) (< "<") (number_literal "4")) () ")")) (goto_statement "goto LAB_000896fc;" (goto "goto") (statement_identifier "LAB_000896fc") (; ";"))) (expression_statement "pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);" (assignment_expression "pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0)" (identifier "pppppbVar33") (= "=") (cast_expression "(byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(*(int *)(puVar37 + 0x88acc) + 0x79c0)" (( "(") (binary_expression "*(int *)(puVar37 + 0x88acc) + 0x79c0" (pointer_expression "*(int *)(puVar37 + 0x88acc)" (* "*") (cast_expression "(int *)(puVar37 + 0x88acc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x88acc)" (( "(") (binary_expression "puVar37 + 0x88acc" (identifier "puVar37") (+ "+") (number_literal "0x88acc")) () ")")))) (+ "+") (number_literal "0x79c0")) () ")")))) (; ";")) (expression_statement "iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);" (assignment_expression "iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0)" (identifier "iVar23") (= "=") (call_expression "FUN_000879c0(iVar11,pbVar32,&local_90,0)" (identifier "FUN_000879c0") (argument_list "(iVar11,pbVar32,&local_90,0)" (( "(") (identifier "iVar11") (, ",") (identifier "pbVar32") (, ",") (pointer_expression "&local_90" (& "&") (identifier "local_90")) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "ppppbVar13 = local_90;" (assignment_expression "ppppbVar13 = local_90" (identifier "ppppbVar13") (= "=") (identifier "local_90")) (; ";")) (if_statement "if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;" (if "if") (parenthesized_expression "((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0))" (( "(") (binary_expression "(iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)" (parenthesized_expression "(iVar23 == 0)" (( "(") (binary_expression "iVar23 == 0" (identifier "iVar23") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((byte *****)local_90 == (byte *****)0x0)" (( "(") (binary_expression "(byte *****)local_90 == (byte *****)0x0" (cast_expression "(byte *****)local_90" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_90")) (== "==") (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_000896f8;" (goto "goto") (statement_identifier "LAB_000896f8") (; ";"))) (expression_statement "iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);" (assignment_expression "iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8)" (identifier "iVar23") (= "=") (call_expression "(**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8)" (parenthesized_expression "(**(code **)(puVar37 + 0x8953c))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x8953c)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x8953c)" (* "*") (cast_expression "(code **)(puVar37 + 0x8953c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x8953c)" (( "(") (binary_expression "puVar37 + 0x8953c" (identifier "puVar37") (+ "+") (number_literal "0x8953c")) () ")"))))) () ")")) (argument_list "(local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8)" (( "(") (identifier "local_90") (, ",") (binary_expression "*(int *)(puVar37 + 0x8839c) + -0x30e8" (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")")))) (+ "+") (number_literal "-0x30e8")) () ")")))) (; ";")) (if_statement "if (iVar23 != 0) {\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }" (if "if") (parenthesized_expression "(iVar23 != 0)" (( "(") (binary_expression "iVar23 != 0" (identifier "iVar23") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  pppppbVar36 = pppppbVar33;\n                  if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }\nLAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  goto LAB_000896fc;\n                }" ({ "{") (expression_statement "iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);" (assignment_expression "iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c)" (identifier "iVar23") (= "=") (call_expression "(**(code **)(puVar37 + 0x8953c))\n                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c)" (parenthesized_expression "(**(code **)(puVar37 + 0x8953c))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x8953c)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x8953c)" (* "*") (cast_expression "(code **)(puVar37 + 0x8953c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x8953c)" (( "(") (binary_expression "puVar37 + 0x8953c" (identifier "puVar37") (+ "+") (number_literal "0x8953c")) () ")"))))) () ")")) (argument_list "(ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c)" (( "(") (identifier "ppppbVar13") (, ",") (binary_expression "*(int *)(puVar37 + 0x8839c) + -0x317c" (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")")))) (+ "+") (number_literal "-0x317c")) () ")")))) (; ";")) (expression_statement "pcVar38 = *(code **)(puVar37 + 0x88394);" (assignment_expression "pcVar38 = *(code **)(puVar37 + 0x88394)" (identifier "pcVar38") (= "=") (pointer_expression "*(code **)(puVar37 + 0x88394)" (* "*") (cast_expression "(code **)(puVar37 + 0x88394)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88394)" (( "(") (binary_expression "puVar37 + 0x88394" (identifier "puVar37") (+ "+") (number_literal "0x88394")) () ")"))))) (; ";")) (expression_statement "pppppbVar36 = pppppbVar33;" (assignment_expression "pppppbVar36 = pppppbVar33" (identifier "pppppbVar36") (= "=") (identifier "pppppbVar33")) (; ";")) (if_statement "if (iVar23 == 0) {\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }\n                  else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }" (if "if") (parenthesized_expression "(iVar23 == 0)" (( "(") (binary_expression "iVar23 == 0" (identifier "iVar23") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    (*pcVar38)(ppppbVar13);\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar35 = (byte *****)local_90;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }\n                  }" ({ "{") (expression_statement "(*pcVar38)(ppppbVar13);" (call_expression "(*pcVar38)(ppppbVar13)" (parenthesized_expression "(*pcVar38)" (( "(") (pointer_expression "*pcVar38" (* "*") (identifier "pcVar38")) () ")")) (argument_list "(ppppbVar13)" (( "(") (identifier "ppppbVar13") () ")"))) (; ";")) (expression_statement "iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);" (assignment_expression "iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90)" (identifier "iVar23") (= "=") (call_expression "FUN_000879c0(iVar11,pbVar32,0,&local_90)" (identifier "FUN_000879c0") (argument_list "(iVar11,pbVar32,0,&local_90)" (( "(") (identifier "iVar11") (, ",") (identifier "pbVar32") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_90" (& "&") (identifier "local_90")) () ")")))) (; ";")) (expression_statement "pppppbVar35 = (byte *****)local_90;" (assignment_expression "pppppbVar35 = (byte *****)local_90" (identifier "pppppbVar35") (= "=") (cast_expression "(byte *****)local_90" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_90"))) (; ";")) (if_statement "if (((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }" (if "if") (parenthesized_expression "(((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32))" (( "(") (binary_expression "((iVar23 != 0) && (-1 < (int)local_90)) &&\n                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)" (parenthesized_expression "((iVar23 != 0) && (-1 < (int)local_90))" (( "(") (binary_expression "(iVar23 != 0) && (-1 < (int)local_90)" (parenthesized_expression "(iVar23 != 0)" (( "(") (binary_expression "iVar23 != 0" (identifier "iVar23") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(-1 < (int)local_90)" (( "(") (binary_expression "-1 < (int)local_90" (number_literal "-1") (< "<") (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)" (( "(") (comma_expression "pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32" (assignment_expression "pbVar30 = (byte *)((int)local_90 + 1)" (identifier "pbVar30") (= "=") (cast_expression "(byte *)((int)local_90 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 1)" (( "(") (binary_expression "(int)local_90 + 1" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "1")) () ")")))) (, ",") (binary_expression "(int)local_90 < (int)pbVar32" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (< "<") (cast_expression "(int)pbVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar32")))) () ")"))) () ")")) (compound_statement "{\n                      local_b0 = (byte ****)((int)local_90 + iVar11);\n                      iVar21 = (int)pbVar32 - (int)pbVar30;\n                      bVar26 = *(byte *)local_b0;\n                      if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }\n                      goto LAB_000896fc;\n                    }" ({ "{") (expression_statement "local_b0 = (byte ****)((int)local_90 + iVar11);" (assignment_expression "local_b0 = (byte ****)((int)local_90 + iVar11)" (identifier "local_b0") (= "=") (cast_expression "(byte ****)((int)local_90 + iVar11)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)local_90 + iVar11)" (( "(") (binary_expression "(int)local_90 + iVar11" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (identifier "iVar11")) () ")")))) (; ";")) (expression_statement "iVar21 = (int)pbVar32 - (int)pbVar30;" (assignment_expression "iVar21 = (int)pbVar32 - (int)pbVar30" (identifier "iVar21") (= "=") (binary_expression "(int)pbVar32 - (int)pbVar30" (cast_expression "(int)pbVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar32")) (- "-") (cast_expression "(int)pbVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar30")))) (; ";")) (expression_statement "bVar26 = *(byte *)local_b0;" (assignment_expression "bVar26 = *(byte *)local_b0" (identifier "bVar26") (= "=") (pointer_expression "*(byte *)local_b0" (* "*") (cast_expression "(byte *)local_b0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_b0")))) (; ";")) (if_statement "if ((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))\n                      {\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }\n                      else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }" (if "if") (parenthesized_expression "((iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))" (( "(") (binary_expression "(iVar21 < 4) ||\n                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)" (parenthesized_expression "(iVar21 < 4)" (( "(") (binary_expression "iVar21 < 4" (identifier "iVar21") (< "<") (number_literal "4")) () ")")) (|| "||") (parenthesized_expression "(iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)" (( "(") (comma_expression "iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0" (assignment_expression "iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90)" (identifier "iVar23") (= "=") (call_expression "FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90)" (identifier "FUN_000879c0") (argument_list "(pbVar30 + iVar11,iVar21,0,&local_90)" (( "(") (binary_expression "pbVar30 + iVar11" (identifier "pbVar30") (+ "+") (identifier "iVar11")) (, ",") (identifier "iVar21") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_90" (& "&") (identifier "local_90")) () ")")))) (, ",") (binary_expression "iVar23 == 0" (identifier "iVar23") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }\n                      }" ({ "{") (expression_statement "iVar23 = *(int *)(puVar37 + 0x8839c);" (assignment_expression "iVar23 = *(int *)(puVar37 + 0x8839c)" (identifier "iVar23") (= "=") (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")"))))) (; ";")) (if_statement "if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }" (if "if") (parenthesized_expression "((int)pppppbVar35 < (int)(unaff_s6 + -2))" (( "(") (binary_expression "(int)pppppbVar35 < (int)(unaff_s6 + -2)" (cast_expression "(int)pppppbVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar35")) (< "<") (cast_expression "(int)(unaff_s6 + -2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(unaff_s6 + -2)" (( "(") (binary_expression "unaff_s6 + -2" (identifier "unaff_s6") (+ "+") (number_literal "-2")) () ")")))) () ")")) (compound_statement "{\n                          if (iVar21 >= 4) goto LAB_000892a4;\nLAB_00089eec:\n                          uVar12 = 0x5a7;\n                          goto LAB_00089ef0;\n                        }" ({ "{") (if_statement "if (iVar21 >= 4) goto LAB_000892a4;" (if "if") (parenthesized_expression "(iVar21 >= 4)" (( "(") (binary_expression "iVar21 >= 4" (identifier "iVar21") (>= ">=") (number_literal "4")) () ")")) (goto_statement "goto LAB_000892a4;" (goto "goto") (statement_identifier "LAB_000892a4") (; ";"))) (labeled_statement "LAB_00089eec:\n                          uVar12 = 0x5a7;" (statement_identifier "LAB_00089eec") (: ":") (expression_statement "uVar12 = 0x5a7;" (assignment_expression "uVar12 = 0x5a7" (identifier "uVar12") (= "=") (number_literal "0x5a7")) (; ";"))) (goto_statement "goto LAB_00089ef0;" (goto "goto") (statement_identifier "LAB_00089ef0") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }" (else "else") (compound_statement "{\n                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);\n                        iVar23 = *(int *)(puVar37 + 0x8839c);\n                        if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }\n                      }" ({ "{") (expression_statement "pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);" (assignment_expression "pppppbVar35 = (byte *****)(pbVar30 + (int)local_90)" (identifier "pppppbVar35") (= "=") (cast_expression "(byte *****)(pbVar30 + (int)local_90)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(pbVar30 + (int)local_90)" (( "(") (binary_expression "pbVar30 + (int)local_90" (identifier "pbVar30") (+ "+") (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90"))) () ")")))) (; ";")) (expression_statement "iVar23 = *(int *)(puVar37 + 0x8839c);" (assignment_expression "iVar23 = *(int *)(puVar37 + 0x8839c)" (identifier "iVar23") (= "=") (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")"))))) (; ";")) (if_statement "if (-1 < (int)pppppbVar35) {\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }" (if "if") (parenthesized_expression "(-1 < (int)pppppbVar35)" (( "(") (binary_expression "-1 < (int)pppppbVar35" (number_literal "-1") (< "<") (cast_expression "(int)pppppbVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar35"))) () ")")) (compound_statement "{\n                          pcVar38 = *(code **)(puVar37 + 0x8844c);\n                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;\nLAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                          pppppbVar36 = (byte *****)local_90;\n                          if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;\n                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);\n                          bVar1 = *pbVar30;\n                          bVar2 = pbVar30[1];\n                          bVar3 = pbVar30[3];\n                          bVar4 = pbVar30[2];\n                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);\n                          local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);\n                          unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);\n                          (**(code **)(puVar37 + 0x88394))(local_90);\n                          if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }\n                          (*pcVar38)(pppppbVar36);\n                          goto LAB_000893a4;\n                        }" ({ "{") (expression_statement "pcVar38 = *(code **)(puVar37 + 0x8844c);" (assignment_expression "pcVar38 = *(code **)(puVar37 + 0x8844c)" (identifier "pcVar38") (= "=") (pointer_expression "*(code **)(puVar37 + 0x8844c)" (* "*") (cast_expression "(code **)(puVar37 + 0x8844c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x8844c)" (( "(") (binary_expression "puVar37 + 0x8844c" (identifier "puVar37") (+ "+") (number_literal "0x8844c")) () ")"))))) (; ";")) (if_statement "if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;" (if "if") (parenthesized_expression "((int)(unaff_s6 + -2) <= (int)pppppbVar35)" (( "(") (binary_expression "(int)(unaff_s6 + -2) <= (int)pppppbVar35" (cast_expression "(int)(unaff_s6 + -2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(unaff_s6 + -2)" (( "(") (binary_expression "unaff_s6 + -2" (identifier "unaff_s6") (+ "+") (number_literal "-2")) () ")"))) (<= "<=") (cast_expression "(int)pppppbVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar35"))) () ")")) (goto_statement "goto LAB_00089700;" (goto "goto") (statement_identifier "LAB_00089700") (; ";"))) (labeled_statement "LAB_000892a4:\n                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);" (statement_identifier "LAB_000892a4") (: ":") (expression_statement "iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);" (assignment_expression "iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0)" (identifier "iVar23") (= "=") (call_expression "FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0)" (identifier "FUN_000879c0") (argument_list "(pbVar30 + iVar11,iVar21,&local_90,0)" (( "(") (binary_expression "pbVar30 + iVar11" (identifier "pbVar30") (+ "+") (identifier "iVar11")) (, ",") (identifier "iVar21") (, ",") (pointer_expression "&local_90" (& "&") (identifier "local_90")) (, ",") (number_literal "0") () ")")))) (; ";"))) (expression_statement "pppppbVar36 = (byte *****)local_90;" (assignment_expression "pppppbVar36 = (byte *****)local_90" (identifier "pppppbVar36") (= "=") (cast_expression "(byte *****)local_90" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_90"))) (; ";")) (if_statement "if ((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;" (if "if") (parenthesized_expression "((iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0))" (( "(") (binary_expression "(iVar23 == 0) ||\n                             (pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)" (parenthesized_expression "(iVar23 == 0)" (( "(") (binary_expression "iVar23 == 0" (identifier "iVar23") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0)" (( "(") (comma_expression "pppppbVar33 = (byte *****)local_90,\n                             (byte *****)local_90 == (byte *****)0x0" (assignment_expression "pppppbVar33 = (byte *****)local_90" (identifier "pppppbVar33") (= "=") (cast_expression "(byte *****)local_90" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_90"))) (, ",") (binary_expression "(byte *****)local_90 == (byte *****)0x0" (cast_expression "(byte *****)local_90" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_90")) (== "==") (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_00089eec;" (goto "goto") (statement_identifier "LAB_00089eec") (; ";"))) (expression_statement "pbVar30 = (byte *)((int)pppppbVar35 + iVar11);" (assignment_expression "pbVar30 = (byte *)((int)pppppbVar35 + iVar11)" (identifier "pbVar30") (= "=") (cast_expression "(byte *)((int)pppppbVar35 + iVar11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppbVar35 + iVar11)" (( "(") (binary_expression "(int)pppppbVar35 + iVar11" (cast_expression "(int)pppppbVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar35")) (+ "+") (identifier "iVar11")) () ")")))) (; ";")) (expression_statement "bVar1 = *pbVar30;" (assignment_expression "bVar1 = *pbVar30" (identifier "bVar1") (= "=") (pointer_expression "*pbVar30" (* "*") (identifier "pbVar30"))) (; ";")) (expression_statement "bVar2 = pbVar30[1];" (assignment_expression "bVar2 = pbVar30[1]" (identifier "bVar2") (= "=") (subscript_expression "pbVar30[1]" (identifier "pbVar30") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "bVar3 = pbVar30[3];" (assignment_expression "bVar3 = pbVar30[3]" (identifier "bVar3") (= "=") (subscript_expression "pbVar30[3]" (identifier "pbVar30") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "bVar4 = pbVar30[2];" (assignment_expression "bVar4 = pbVar30[2]" (identifier "bVar4") (= "=") (subscript_expression "pbVar30[2]" (identifier "pbVar30") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);" (assignment_expression "local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90)" (identifier "local_90") (= "=") (cast_expression "(byte ****)(**(code **)(puVar37 + 0x883c0))(local_90)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (call_expression "(**(code **)(puVar37 + 0x883c0))(local_90)" (parenthesized_expression "(**(code **)(puVar37 + 0x883c0))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x883c0)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x883c0)" (* "*") (cast_expression "(code **)(puVar37 + 0x883c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x883c0)" (( "(") (binary_expression "puVar37 + 0x883c0" (identifier "puVar37") (+ "+") (number_literal "0x883c0")) () ")"))))) () ")")) (argument_list "(local_90)" (( "(") (identifier "local_90") () ")"))))) (; ";")) (expression_statement "local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8);" (assignment_expression "local_8c = (byte ****)\n                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                                     (uint)bVar4 << 8)" (identifier "local_8c") (= "=") (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 "unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);" (assignment_expression "unaff_s6 = (byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0)" (identifier "unaff_s6") (= "=") (cast_expression "(byte *****)\n                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,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 *)(iVar22 + 0x4048),&local_90,0)" (identifier "find234") (argument_list "(*(undefined4 *)(iVar22 + 0x4048),&local_90,0)" (( "(") (pointer_expression "*(undefined4 *)(iVar22 + 0x4048)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x4048)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x4048)" (( "(") (binary_expression "iVar22 + 0x4048" (identifier "iVar22") (+ "+") (number_literal "0x4048")) () ")")))) (, ",") (pointer_expression "&local_90" (& "&") (identifier "local_90")) (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "(**(code **)(puVar37 + 0x88394))(local_90);" (call_expression "(**(code **)(puVar37 + 0x88394))(local_90)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88394)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88394)" (* "*") (cast_expression "(code **)(puVar37 + 0x88394)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88394)" (( "(") (binary_expression "puVar37 + 0x88394" (identifier "puVar37") (+ "+") (number_literal "0x88394")) () ")"))))) () ")")) (argument_list "(local_90)" (( "(") (identifier "local_90") () ")"))) (; ";")) (if_statement "if (unaff_s6 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }\n                          else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }" (if "if") (parenthesized_expression "(unaff_s6 == (byte *****)0x0)" (( "(") (binary_expression "unaff_s6 == (byte *****)0x0" (identifier "unaff_s6") (== "==") (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 **)(puVar37 + 0x88394);\n                            if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }\n                          }" ({ "{") (expression_statement "pcVar38 = *(code **)(puVar37 + 0x88394);" (assignment_expression "pcVar38 = *(code **)(puVar37 + 0x88394)" (identifier "pcVar38") (= "=") (pointer_expression "*(code **)(puVar37 + 0x88394)" (* "*") (cast_expression "(code **)(puVar37 + 0x88394)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88394)" (( "(") (binary_expression "puVar37 + 0x88394" (identifier "puVar37") (+ "+") (number_literal "0x88394")) () ")"))))) (; ";")) (if_statement "if (bVar26 != 0) {\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }" (if "if") (parenthesized_expression "(bVar26 != 0)" (( "(") (binary_expression "bVar26 != 0" (identifier "bVar26") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);\n                              goto LAB_00089394;\n                            }" ({ "{") (expression_statement "FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc);" (call_expression "FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc)" (identifier "FUN_000877b4") (argument_list "(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0\n                                           ,0xc)" (( "(") (binary_expression "iVar22 + 8" (identifier "iVar22") (+ "+") (number_literal "8")) (, ",") (number_literal "0x52") (, ",") (binary_expression "*(int *)(puVar37 + 0x8839c) + -0x4be4" (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")")))) (+ "+") (number_literal "-0x4be4")) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0xc") () ")"))) (; ";")) (goto_statement "goto LAB_00089394;" (goto "goto") (statement_identifier "LAB_00089394") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }" (else "else") (compound_statement "{\n                            bVar26 = *(byte *)local_b0;\n                            *(byte *)local_b0 = 1;\n                            if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }\n                            (**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                            (**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\nLAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);\n                          }" ({ "{") (expression_statement "bVar26 = *(byte *)local_b0;" (assignment_expression "bVar26 = *(byte *)local_b0" (identifier "bVar26") (= "=") (pointer_expression "*(byte *)local_b0" (* "*") (cast_expression "(byte *)local_b0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_b0")))) (; ";")) (expression_statement "*(byte *)local_b0 = 1;" (assignment_expression "*(byte *)local_b0 = 1" (pointer_expression "*(byte *)local_b0" (* "*") (cast_expression "(byte *)local_b0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_b0"))) (= "=") (number_literal "1")) (; ";")) (if_statement "if (bVar26 == 0) {\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }\n                            else {\n                              iVar23 = 0;\n                            }" (if "if") (parenthesized_expression "(bVar26 == 0)" (( "(") (binary_expression "bVar26 == 0" (identifier "bVar26") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                            }" ({ "{") (expression_statement "iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;" (assignment_expression "iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4" (identifier "iVar23") (= "=") (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x44b4" (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")")))) (+ "+") (number_literal "0x44b4"))) (; ";")) (} "}")) (else_clause "else {\n                              iVar23 = 0;\n                            }" (else "else") (compound_statement "{\n                              iVar23 = 0;\n                            }" ({ "{") (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" (identifier "iVar23") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "(**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);" (call_expression "(**(code **)(puVar37 + 0x88b70))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b70))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88b70)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88b70)" (* "*") (cast_expression "(code **)(puVar37 + 0x88b70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88b70)" (( "(") (binary_expression "puVar37 + 0x88b70" (identifier "puVar37") (+ "+") (number_literal "0x88b70")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23)" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" (( "(") (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" (* "*") (cast_expression "(int *)(iVar22 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0xc)" (( "(") (binary_expression "iVar22 + 0xc" (identifier "iVar22") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (, ",") (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")) () ")")))) (, ",") (number_literal "0x50") (, ",") (identifier "iVar11") (, ",") (identifier "pbVar32") (, ",") (identifier "iVar23") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);" (call_expression "(**(code **)(puVar37 + 0x88b88))\n                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b88))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88b88)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88b88)" (* "*") (cast_expression "(code **)(puVar37 + 0x88b88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88b88)" (( "(") (binary_expression "puVar37 + 0x88b88" (identifier "puVar37") (+ "+") (number_literal "0x88b88")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" (( "(") (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" (* "*") (cast_expression "(int *)(iVar22 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0xc)" (( "(") (binary_expression "iVar22 + 0xc" (identifier "iVar22") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (, ",") (identifier "iVar22") () ")"))) (; ";")) (labeled_statement "LAB_00089394:\n                            pcVar38 = *(code **)(puVar37 + 0x88394);" (statement_identifier "LAB_00089394") (: ":") (expression_statement "pcVar38 = *(code **)(puVar37 + 0x88394);" (assignment_expression "pcVar38 = *(code **)(puVar37 + 0x88394)" (identifier "pcVar38") (= "=") (pointer_expression "*(code **)(puVar37 + 0x88394)" (* "*") (cast_expression "(code **)(puVar37 + 0x88394)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88394)" (( "(") (binary_expression "puVar37 + 0x88394" (identifier "puVar37") (+ "+") (number_literal "0x88394")) () ")"))))) (; ";"))) (} "}")))) (expression_statement "(*pcVar38)(pppppbVar36);" (call_expression "(*pcVar38)(pppppbVar36)" (parenthesized_expression "(*pcVar38)" (( "(") (pointer_expression "*pcVar38" (* "*") (identifier "pcVar38")) () ")")) (argument_list "(pppppbVar36)" (( "(") (identifier "pppppbVar36") () ")"))) (; ";")) (goto_statement "goto LAB_000893a4;" (goto "goto") (statement_identifier "LAB_000893a4") (; ";")) (} "}"))) (} "}")))) (goto_statement "goto LAB_000896fc;" (goto "goto") (statement_identifier "LAB_000896fc") (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }" (else "else") (compound_statement "{\nLAB_00089f10:\n                    (*pcVar38)();\n                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n                    pppppbVar33 = pppppbVar36;\n                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }\n                  }" ({ "{") (labeled_statement "LAB_00089f10:\n                    (*pcVar38)();" (statement_identifier "LAB_00089f10") (: ":") (expression_statement "(*pcVar38)();" (call_expression "(*pcVar38)()" (parenthesized_expression "(*pcVar38)" (( "(") (pointer_expression "*pcVar38" (* "*") (identifier "pcVar38")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);" (assignment_expression "iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90)" (identifier "iVar23") (= "=") (call_expression "FUN_000879c0(iVar11,pbVar32,0,&local_90)" (identifier "FUN_000879c0") (argument_list "(iVar11,pbVar32,0,&local_90)" (( "(") (identifier "iVar11") (, ",") (identifier "pbVar32") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_90" (& "&") (identifier "local_90")) () ")")))) (; ";")) (expression_statement "pppppbVar33 = pppppbVar36;" (assignment_expression "pppppbVar33 = pppppbVar36" (identifier "pppppbVar33") (= "=") (identifier "pppppbVar36")) (; ";")) (if_statement "if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }" (if "if") (parenthesized_expression "(((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32))" (( "(") (binary_expression "((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)" (parenthesized_expression "((iVar23 != 0) && (-1 < (int)local_90))" (( "(") (binary_expression "(iVar23 != 0) && (-1 < (int)local_90)" (parenthesized_expression "(iVar23 != 0)" (( "(") (binary_expression "iVar23 != 0" (identifier "iVar23") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(-1 < (int)local_90)" (( "(") (binary_expression "-1 < (int)local_90" (number_literal "-1") (< "<") (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((int)local_90 < (int)pbVar32)" (( "(") (binary_expression "(int)local_90 < (int)pbVar32" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (< "<") (cast_expression "(int)pbVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar32"))) () ")"))) () ")")) (compound_statement "{\n                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;\n                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      *(undefined4 *)(iVar22 + 0x4030) = 0;\n                      goto LAB_000893ac;\n                    }" ({ "{") (if_statement "if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;" (if "if") (parenthesized_expression "(*(byte *)((int)local_90 + iVar11) == 0)" (( "(") (binary_expression "*(byte *)((int)local_90 + iVar11) == 0" (pointer_expression "*(byte *)((int)local_90 + iVar11)" (* "*") (cast_expression "(byte *)((int)local_90 + iVar11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + iVar11)" (( "(") (binary_expression "(int)local_90 + iVar11" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (identifier "iVar11")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000893a4;" (goto "goto") (statement_identifier "LAB_000893a4") (; ";"))) (expression_statement "FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);" (call_expression "FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc)" (identifier "FUN_000877b4") (argument_list "(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc)" (( "(") (binary_expression "iVar22 + 8" (identifier "iVar22") (+ "+") (number_literal "8")) (, ",") (number_literal "0x52") (, ",") (binary_expression "*(int *)(puVar37 + 0x8839c) + -0x4be4" (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")")))) (+ "+") (number_literal "-0x4be4")) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0xc") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x4030)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x4030)" (( "(") (binary_expression "iVar22 + 0x4030" (identifier "iVar22") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_000893ac;" (goto "goto") (statement_identifier "LAB_000893ac") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_000896f8:\n                  iVar23 = *(int *)(puVar37 + 0x8839c);" (statement_identifier "LAB_000896f8") (: ":") (expression_statement "iVar23 = *(int *)(puVar37 + 0x8839c);" (assignment_expression "iVar23 = *(int *)(puVar37 + 0x8839c)" (identifier "iVar23") (= "=") (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")"))))) (; ";"))) (goto_statement "goto LAB_000896fc;" (goto "goto") (statement_identifier "LAB_000896fc") (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar37 + 0x88394))(ppppbVar13);" (call_expression "(**(code **)(puVar37 + 0x88394))(ppppbVar13)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88394)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88394)" (* "*") (cast_expression "(code **)(puVar37 + 0x88394)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88394)" (( "(") (binary_expression "puVar37 + 0x88394" (identifier "puVar37") (+ "+") (number_literal "0x88394")) () ")"))))) () ")")) (argument_list "(ppppbVar13)" (( "(") (identifier "ppppbVar13") () ")"))) (; ";")) (expression_statement "iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);" (assignment_expression "iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90)" (identifier "iVar23") (= "=") (call_expression "FUN_000879c0(iVar11,pbVar32,0,&local_90)" (identifier "FUN_000879c0") (argument_list "(iVar11,pbVar32,0,&local_90)" (( "(") (identifier "iVar11") (, ",") (identifier "pbVar32") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_90" (& "&") (identifier "local_90")) () ")")))) (; ";")) (expression_statement "pppppbVar36 = (byte *****)local_90;" (assignment_expression "pppppbVar36 = (byte *****)local_90" (identifier "pppppbVar36") (= "=") (cast_expression "(byte *****)local_90" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_90"))) (; ";")) (if_statement "if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))\n                goto LAB_000896f8;" (if "if") (parenthesized_expression "(((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))" (( "(") (binary_expression "((iVar23 == 0) || ((int)local_90 < 0)) ||\n                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90)" (parenthesized_expression "((iVar23 == 0) || ((int)local_90 < 0))" (( "(") (binary_expression "(iVar23 == 0) || ((int)local_90 < 0)" (parenthesized_expression "(iVar23 == 0)" (( "(") (binary_expression "iVar23 == 0" (identifier "iVar23") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((int)local_90 < 0)" (( "(") (binary_expression "(int)local_90 < 0" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (< "<") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90)" (( "(") (comma_expression "pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90" (assignment_expression "pbVar30 = (byte *)((int)local_90 + 1)" (identifier "pbVar30") (= "=") (cast_expression "(byte *)((int)local_90 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + 1)" (( "(") (binary_expression "(int)local_90 + 1" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "1")) () ")")))) (, ",") (binary_expression "(int)pbVar32 <= (int)local_90" (cast_expression "(int)pbVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar32")) (<= "<=") (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")))) () ")"))) () ")")) (goto_statement "goto LAB_000896f8;" (goto "goto") (statement_identifier "LAB_000896f8") (; ";"))) (expression_statement "pbVar18 = (byte *)((int)local_90 + iVar11);" (assignment_expression "pbVar18 = (byte *)((int)local_90 + iVar11)" (identifier "pbVar18") (= "=") (cast_expression "(byte *)((int)local_90 + iVar11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + iVar11)" (( "(") (binary_expression "(int)local_90 + iVar11" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (identifier "iVar11")) () ")")))) (; ";")) (expression_statement "iVar21 = (int)pbVar32 - (int)pbVar30;" (assignment_expression "iVar21 = (int)pbVar32 - (int)pbVar30" (identifier "iVar21") (= "=") (binary_expression "(int)pbVar32 - (int)pbVar30" (cast_expression "(int)pbVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar32")) (- "-") (cast_expression "(int)pbVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar30")))) (; ";")) (expression_statement "local_b0 = (byte ****)(uint)*pbVar18;" (assignment_expression "local_b0 = (byte ****)(uint)*pbVar18" (identifier "local_b0") (= "=") (binary_expression "(byte ****)(uint)*pbVar18" (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 "pbVar18"))) (; ";")) (if_statement "if ((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }\n                else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }" (if "if") (parenthesized_expression "((iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))" (( "(") (binary_expression "(iVar21 < 4) ||\n                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)" (parenthesized_expression "(iVar21 < 4)" (( "(") (binary_expression "iVar21 < 4" (identifier "iVar21") (< "<") (number_literal "4")) () ")")) (|| "||") (parenthesized_expression "(iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)" (( "(") (comma_expression "iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0" (assignment_expression "iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90)" (identifier "iVar23") (= "=") (call_expression "FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90)" (identifier "FUN_000879c0") (argument_list "(pbVar30 + iVar11,iVar21,0,&local_90)" (( "(") (binary_expression "pbVar30 + iVar11" (identifier "pbVar30") (+ "+") (identifier "iVar11")) (, ",") (identifier "iVar21") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_90" (& "&") (identifier "local_90")) () ")")))) (, ",") (binary_expression "iVar23 == 0" (identifier "iVar23") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }\nLAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                }" ({ "{") (expression_statement "iVar23 = *(int *)(puVar37 + 0x8839c);" (assignment_expression "iVar23 = *(int *)(puVar37 + 0x8839c)" (identifier "iVar23") (= "=") (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")"))))) (; ";")) (if_statement "if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }" (if "if") (parenthesized_expression "((int)pppppbVar36 < (int)(unaff_s6 + -2))" (( "(") (binary_expression "(int)pppppbVar36 < (int)(unaff_s6 + -2)" (cast_expression "(int)pppppbVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar36")) (< "<") (cast_expression "(int)(unaff_s6 + -2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(unaff_s6 + -2)" (( "(") (binary_expression "unaff_s6 + -2" (identifier "unaff_s6") (+ "+") (number_literal "-2")) () ")")))) () ")")) (compound_statement "{\n                    if (iVar21 >= 4) goto LAB_0008a05c;\nLAB_0008a304:\n                    uVar12 = 0x55e;\nLAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);\n                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);\n                    pppppbVar36 = pppppbVar33;\n                    goto LAB_00089f10;\n                  }" ({ "{") (if_statement "if (iVar21 >= 4) goto LAB_0008a05c;" (if "if") (parenthesized_expression "(iVar21 >= 4)" (( "(") (binary_expression "iVar21 >= 4" (identifier "iVar21") (>= ">=") (number_literal "4")) () ")")) (goto_statement "goto LAB_0008a05c;" (goto "goto") (statement_identifier "LAB_0008a05c") (; ";"))) (labeled_statement "LAB_0008a304:\n                    uVar12 = 0x55e;" (statement_identifier "LAB_0008a304") (: ":") (expression_statement "uVar12 = 0x55e;" (assignment_expression "uVar12 = 0x55e" (identifier "uVar12") (= "=") (number_literal "0x55e")) (; ";"))) (labeled_statement "LAB_00089ef0:\n                    pcVar38 = *(code **)(puVar37 + 0x88ff4);" (statement_identifier "LAB_00089ef0") (: ":") (expression_statement "pcVar38 = *(code **)(puVar37 + 0x88ff4);" (assignment_expression "pcVar38 = *(code **)(puVar37 + 0x88ff4)" (identifier "pcVar38") (= "=") (pointer_expression "*(code **)(puVar37 + 0x88ff4)" (* "*") (cast_expression "(code **)(puVar37 + 0x88ff4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88ff4)" (( "(") (binary_expression "puVar37 + 0x88ff4" (identifier "puVar37") (+ "+") (number_literal "0x88ff4")) () ")"))))) (; ";"))) (expression_statement "(*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870);" (call_expression "(*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870)" (parenthesized_expression "(*pcVar38)" (( "(") (pointer_expression "*pcVar38" (* "*") (identifier "pcVar38")) () ")")) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x457c,\n                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,\n                               *(int *)(puVar37 + 0x8839c) + 0x4870)" (( "(") (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x457c" (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")")))) (+ "+") (number_literal "0x457c")) (, ",") (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x43dc" (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")")))) (+ "+") (number_literal "0x43dc")) (, ",") (identifier "uVar12") (, ",") (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x4870" (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")")))) (+ "+") (number_literal "0x4870")) () ")"))) (; ";")) (expression_statement "pppppbVar36 = pppppbVar33;" (assignment_expression "pppppbVar36 = pppppbVar33" (identifier "pppppbVar36") (= "=") (identifier "pppppbVar33")) (; ";")) (goto_statement "goto LAB_00089f10;" (goto "goto") (statement_identifier "LAB_00089f10") (; ";")) (} "}"))) (labeled_statement "LAB_000896fc:\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);" (statement_identifier "LAB_000896fc") (: ":") (expression_statement "pcVar38 = *(code **)(puVar37 + 0x8844c);" (assignment_expression "pcVar38 = *(code **)(puVar37 + 0x8844c)" (identifier "pcVar38") (= "=") (pointer_expression "*(code **)(puVar37 + 0x8844c)" (* "*") (cast_expression "(code **)(puVar37 + 0x8844c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x8844c)" (( "(") (binary_expression "puVar37 + 0x8844c" (identifier "puVar37") (+ "+") (number_literal "0x8844c")) () ")"))))) (; ";"))) (} "}")) (else_clause "else {\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }" (else "else") (compound_statement "{\n                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);\n                  iVar23 = *(int *)(puVar37 + 0x8839c);\n                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }\n                }" ({ "{") (expression_statement "pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);" (assignment_expression "pppppbVar36 = (byte *****)(pbVar30 + (int)local_90)" (identifier "pppppbVar36") (= "=") (cast_expression "(byte *****)(pbVar30 + (int)local_90)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(pbVar30 + (int)local_90)" (( "(") (binary_expression "pbVar30 + (int)local_90" (identifier "pbVar30") (+ "+") (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90"))) () ")")))) (; ";")) (expression_statement "iVar23 = *(int *)(puVar37 + 0x8839c);" (assignment_expression "iVar23 = *(int *)(puVar37 + 0x8839c)" (identifier "iVar23") (= "=") (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")"))))) (; ";")) (if_statement "if ((int)pppppbVar36 < 0) goto LAB_000896fc;" (if "if") (parenthesized_expression "((int)pppppbVar36 < 0)" (( "(") (binary_expression "(int)pppppbVar36 < 0" (cast_expression "(int)pppppbVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar36")) (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_000896fc;" (goto "goto") (statement_identifier "LAB_000896fc") (; ";"))) (expression_statement "pcVar38 = *(code **)(puVar37 + 0x8844c);" (assignment_expression "pcVar38 = *(code **)(puVar37 + 0x8844c)" (identifier "pcVar38") (= "=") (pointer_expression "*(code **)(puVar37 + 0x8844c)" (* "*") (cast_expression "(code **)(puVar37 + 0x8844c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x8844c)" (( "(") (binary_expression "puVar37 + 0x8844c" (identifier "puVar37") (+ "+") (number_literal "0x8844c")) () ")"))))) (; ";")) (if_statement "if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }" (if "if") (parenthesized_expression "((int)pppppbVar36 < (int)(unaff_s6 + -2))" (( "(") (binary_expression "(int)pppppbVar36 < (int)(unaff_s6 + -2)" (cast_expression "(int)pppppbVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar36")) (< "<") (cast_expression "(int)(unaff_s6 + -2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(unaff_s6 + -2)" (( "(") (binary_expression "unaff_s6 + -2" (identifier "unaff_s6") (+ "+") (number_literal "-2")) () ")")))) () ")")) (compound_statement "{\nLAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                    ppppbVar13 = local_90;\n                    if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;\n                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);\n                    pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);\n                    iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);\n                    if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }\n                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                    unaff_s6 = (byte *****)ppppbVar13;\n                    goto LAB_000893ac;\n                  }" ({ "{") (labeled_statement "LAB_0008a05c:\n                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);" (statement_identifier "LAB_0008a05c") (: ":") (expression_statement "iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);" (assignment_expression "iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0)" (identifier "iVar23") (= "=") (call_expression "FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0)" (identifier "FUN_000879c0") (argument_list "(pbVar30 + iVar11,iVar21,&local_90,0)" (( "(") (binary_expression "pbVar30 + iVar11" (identifier "pbVar30") (+ "+") (identifier "iVar11")) (, ",") (identifier "iVar21") (, ",") (pointer_expression "&local_90" (& "&") (identifier "local_90")) (, ",") (number_literal "0") () ")")))) (; ";"))) (expression_statement "ppppbVar13 = local_90;" (assignment_expression "ppppbVar13 = local_90" (identifier "ppppbVar13") (= "=") (identifier "local_90")) (; ";")) (if_statement "if ((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))\n                    goto LAB_0008a304;" (if "if") (parenthesized_expression "((iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))" (( "(") (binary_expression "(iVar23 == 0) ||\n                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0)" (parenthesized_expression "(iVar23 == 0)" (( "(") (binary_expression "iVar23 == 0" (identifier "iVar23") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0)" (( "(") (comma_expression "unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0" (assignment_expression "unaff_s6 = (byte *****)local_90" (identifier "unaff_s6") (= "=") (cast_expression "(byte *****)local_90" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_90"))) (, ",") (binary_expression "(byte *****)local_90 == (byte *****)0x0" (cast_expression "(byte *****)local_90" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_90")) (== "==") (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_0008a304;" (goto "goto") (statement_identifier "LAB_0008a304") (; ";"))) (expression_statement "pbVar30 = (byte *)((int)pppppbVar36 + iVar11);" (assignment_expression "pbVar30 = (byte *)((int)pppppbVar36 + iVar11)" (identifier "pbVar30") (= "=") (cast_expression "(byte *)((int)pppppbVar36 + iVar11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppbVar36 + iVar11)" (( "(") (binary_expression "(int)pppppbVar36 + iVar11" (cast_expression "(int)pppppbVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar36")) (+ "+") (identifier "iVar11")) () ")")))) (; ";")) (expression_statement "pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);" (assignment_expression "pppppbVar36 = (byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8)" (identifier "pppppbVar36") (= "=") (cast_expression "(byte *****)\n                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[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)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8)" (( "(") (binary_expression "(uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8" (binary_expression "(uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |\n                                   (uint)pbVar30[1] << 0x10" (binary_expression "(uint)*pbVar30 << 0x18 | (uint)pbVar30[3]" (binary_expression "(uint)*pbVar30 << 0x18" (binary_expression "(uint)*pbVar30" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar30")) (<< "<<") (number_literal "0x18")) (| "|") (cast_expression "(uint)pbVar30[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar30[3]" (identifier "pbVar30") ([ "[") (number_literal "3") (] "]")))) (| "|") (binary_expression "(uint)pbVar30[1] << 0x10" (cast_expression "(uint)pbVar30[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar30[1]" (identifier "pbVar30") ([ "[") (number_literal "1") (] "]"))) (<< "<<") (number_literal "0x10"))) (| "|") (binary_expression "(uint)pbVar30[2] << 8" (cast_expression "(uint)pbVar30[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar30[2]" (identifier "pbVar30") ([ "[") (number_literal "2") (] "]"))) (<< "<<") (number_literal "8"))) () ")")))) (; ";")) (expression_statement "iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22);" (assignment_expression "iVar23 = (**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22)" (identifier "iVar23") (= "=") (call_expression "(**(code **)(puVar37 + 0x88ba0))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22)" (parenthesized_expression "(**(code **)(puVar37 + 0x88ba0))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88ba0)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88ba0)" (* "*") (cast_expression "(code **)(puVar37 + 0x88ba0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88ba0)" (( "(") (binary_expression "puVar37 + 0x88ba0" (identifier "puVar37") (+ "+") (number_literal "0x88ba0")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,\n                                        pppppbVar36,iVar22)" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" (( "(") (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" (* "*") (cast_expression "(int *)(iVar22 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0xc)" (( "(") (binary_expression "iVar22 + 0xc" (identifier "iVar22") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (, ",") (identifier "local_90") (, ",") (identifier "pppppbVar36") (, ",") (identifier "iVar22") () ")")))) (; ";")) (if_statement "if (iVar23 == 0) {\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }" (if "if") (parenthesized_expression "(iVar23 == 0)" (( "(") (binary_expression "iVar23 == 0" (identifier "iVar23") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                      if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }\n                    }" ({ "{") (if_statement "if ((byte *****)local_b0 != (byte *****)0x0) {\n                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }" (if "if") (parenthesized_expression "((byte *****)local_b0 != (byte *****)0x0)" (( "(") (binary_expression "(byte *****)local_b0 != (byte *****)0x0" (cast_expression "(byte *****)local_b0" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_b0")) (!= "!=") (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_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);\n                      }" ({ "{") (expression_statement "FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);" (call_expression "FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc)" (identifier "FUN_000877b4") (argument_list "(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc)" (( "(") (binary_expression "iVar22 + 8" (identifier "iVar22") (+ "+") (number_literal "8")) (, ",") (number_literal "0x52") (, ",") (binary_expression "*(int *)(puVar37 + 0x8839c) + -0x4be4" (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")")))) (+ "+") (number_literal "-0x4be4")) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0xc") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }" (else "else") (compound_statement "{\n                      bVar26 = *pbVar18;\n                      *pbVar18 = 1;\n                      if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }\n                      (**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);\n                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);\n                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);\n                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);\n                      *puVar19 = uVar12;\n                      puVar19[1] = pppppbVar36;\n                      puVar19[2] = 0;\n                      puVar20 = (undefined4 *)add234(uVar24,puVar19);\n                      if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }\n                    }" ({ "{") (expression_statement "bVar26 = *pbVar18;" (assignment_expression "bVar26 = *pbVar18" (identifier "bVar26") (= "=") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18"))) (; ";")) (expression_statement "*pbVar18 = 1;" (assignment_expression "*pbVar18 = 1" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (= "=") (number_literal "1")) (; ";")) (if_statement "if (bVar26 == 0) {\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }\n                      else {\n                        iVar23 = 0;\n                      }" (if "if") (parenthesized_expression "(bVar26 == 0)" (( "(") (binary_expression "bVar26 == 0" (identifier "bVar26") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;\n                      }" ({ "{") (expression_statement "iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;" (assignment_expression "iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4" (identifier "iVar23") (= "=") (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x44b4" (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")")))) (+ "+") (number_literal "0x44b4"))) (; ";")) (} "}")) (else_clause "else {\n                        iVar23 = 0;\n                      }" (else "else") (compound_statement "{\n                        iVar23 = 0;\n                      }" ({ "{") (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" (identifier "iVar23") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "(**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);" (call_expression "(**(code **)(puVar37 + 0x88b70))\n                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b70))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88b70)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88b70)" (* "*") (cast_expression "(code **)(puVar37 + 0x88b70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88b70)" (( "(") (binary_expression "puVar37 + 0x88b70" (identifier "puVar37") (+ "+") (number_literal "0x88b70")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23)" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" (( "(") (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" (* "*") (cast_expression "(int *)(iVar22 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0xc)" (( "(") (binary_expression "iVar22 + 0xc" (identifier "iVar22") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (, ",") (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")) () ")")))) (, ",") (number_literal "0x50") (, ",") (identifier "iVar11") (, ",") (identifier "pbVar32") (, ",") (identifier "iVar23") () ")"))) (; ";")) (expression_statement "puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);" (assignment_expression "puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc)" (identifier "puVar19") (= "=") (cast_expression "(undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar37 + 0x88390))(1,0xc)" (parenthesized_expression "(**(code **)(puVar37 + 0x88390))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88390)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88390)" (* "*") (cast_expression "(code **)(puVar37 + 0x88390)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88390)" (( "(") (binary_expression "puVar37 + 0x88390" (identifier "puVar37") (+ "+") (number_literal "0x88390")) () ")"))))) () ")")) (argument_list "(1,0xc)" (( "(") (number_literal "1") (, ",") (number_literal "0xc") () ")"))))) (; ";")) (expression_statement "uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);" (assignment_expression "uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13)" (identifier "uVar12") (= "=") (call_expression "(**(code **)(puVar37 + 0x883c0))(ppppbVar13)" (parenthesized_expression "(**(code **)(puVar37 + 0x883c0))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x883c0)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x883c0)" (* "*") (cast_expression "(code **)(puVar37 + 0x883c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x883c0)" (( "(") (binary_expression "puVar37 + 0x883c0" (identifier "puVar37") (+ "+") (number_literal "0x883c0")) () ")"))))) () ")")) (argument_list "(ppppbVar13)" (( "(") (identifier "ppppbVar13") () ")")))) (; ";")) (expression_statement "uVar24 = *(undefined4 *)(iVar22 + 0x4048);" (assignment_expression "uVar24 = *(undefined4 *)(iVar22 + 0x4048)" (identifier "uVar24") (= "=") (pointer_expression "*(undefined4 *)(iVar22 + 0x4048)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x4048)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x4048)" (( "(") (binary_expression "iVar22 + 0x4048" (identifier "iVar22") (+ "+") (number_literal "0x4048")) () ")"))))) (; ";")) (expression_statement "*puVar19 = uVar12;" (assignment_expression "*puVar19 = uVar12" (pointer_expression "*puVar19" (* "*") (identifier "puVar19")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "puVar19[1] = pppppbVar36;" (assignment_expression "puVar19[1] = pppppbVar36" (subscript_expression "puVar19[1]" (identifier "puVar19") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "pppppbVar36")) (; ";")) (expression_statement "puVar19[2] = 0;" (assignment_expression "puVar19[2] = 0" (subscript_expression "puVar19[2]" (identifier "puVar19") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar20 = (undefined4 *)add234(uVar24,puVar19);" (assignment_expression "puVar20 = (undefined4 *)add234(uVar24,puVar19)" (identifier "puVar20") (= "=") (cast_expression "(undefined4 *)add234(uVar24,puVar19)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "add234(uVar24,puVar19)" (identifier "add234") (argument_list "(uVar24,puVar19)" (( "(") (identifier "uVar24") (, ",") (identifier "puVar19") () ")"))))) (; ";")) (if_statement "if (puVar19 == puVar20) {\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }\n                      else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }" (if "if") (parenthesized_expression "(puVar19 == puVar20)" (( "(") (binary_expression "puVar19 == puVar20" (identifier "puVar19") (== "==") (identifier "puVar20")) () ")")) (compound_statement "{\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);\n                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);\n                        *puVar20 = 0;\n                        if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }\n                        puVar20[3] = puVar19;\n                        puVar20[1] = 0;\n                        puVar20[2] = local_b0;\n                      }" ({ "{") (expression_statement "(**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);" (call_expression "(**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b88))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88b88)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88b88)" (* "*") (cast_expression "(code **)(puVar37 + 0x88b88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88b88)" (( "(") (binary_expression "puVar37 + 0x88b88" (identifier "puVar37") (+ "+") (number_literal "0x88b88")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" (( "(") (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" (* "*") (cast_expression "(int *)(iVar22 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0xc)" (( "(") (binary_expression "iVar22 + 0xc" (identifier "iVar22") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (, ",") (identifier "iVar22") () ")"))) (; ";")) (expression_statement "puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);" (assignment_expression "puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10)" (identifier "puVar20") (= "=") (cast_expression "(undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar37 + 0x88390))(1,0x10)" (parenthesized_expression "(**(code **)(puVar37 + 0x88390))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88390)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88390)" (* "*") (cast_expression "(code **)(puVar37 + 0x88390)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88390)" (( "(") (binary_expression "puVar37 + 0x88390" (identifier "puVar37") (+ "+") (number_literal "0x88390")) () ")"))))) () ")")) (argument_list "(1,0x10)" (( "(") (number_literal "1") (, ",") (number_literal "0x10") () ")"))))) (; ";")) (expression_statement "puVar25 = *(undefined4 **)(iVar22 + 0x4050);" (assignment_expression "puVar25 = *(undefined4 **)(iVar22 + 0x4050)" (identifier "puVar25") (= "=") (pointer_expression "*(undefined4 **)(iVar22 + 0x4050)" (* "*") (cast_expression "(undefined4 **)(iVar22 + 0x4050)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar22 + 0x4050)" (( "(") (binary_expression "iVar22 + 0x4050" (identifier "iVar22") (+ "+") (number_literal "0x4050")) () ")"))))) (; ";")) (expression_statement "*puVar20 = 0;" (assignment_expression "*puVar20 = 0" (pointer_expression "*puVar20" (* "*") (identifier "puVar20")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (puVar25 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }\n                        else {\n                          *puVar25 = puVar20;\n                        }" (if "if") (parenthesized_expression "(puVar25 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar25 == (undefined4 *)0x0" (identifier "puVar25") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;\n                        }" ({ "{") (expression_statement "*(undefined4 **)(iVar22 + 0x404c) = puVar20;" (assignment_expression "*(undefined4 **)(iVar22 + 0x404c) = puVar20" (pointer_expression "*(undefined4 **)(iVar22 + 0x404c)" (* "*") (cast_expression "(undefined4 **)(iVar22 + 0x404c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar22 + 0x404c)" (( "(") (binary_expression "iVar22 + 0x404c" (identifier "iVar22") (+ "+") (number_literal "0x404c")) () ")")))) (= "=") (identifier "puVar20")) (; ";")) (} "}")) (else_clause "else {\n                          *puVar25 = puVar20;\n                        }" (else "else") (compound_statement "{\n                          *puVar25 = puVar20;\n                        }" ({ "{") (expression_statement "*puVar25 = puVar20;" (assignment_expression "*puVar25 = puVar20" (pointer_expression "*puVar25" (* "*") (identifier "puVar25")) (= "=") (identifier "puVar20")) (; ";")) (} "}")))) (expression_statement "puVar20[3] = puVar19;" (assignment_expression "puVar20[3] = puVar19" (subscript_expression "puVar20[3]" (identifier "puVar20") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "puVar19")) (; ";")) (expression_statement "puVar20[1] = 0;" (assignment_expression "puVar20[1] = 0" (subscript_expression "puVar20[1]" (identifier "puVar20") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar20[2] = local_b0;" (assignment_expression "puVar20[2] = local_b0" (subscript_expression "puVar20[2]" (identifier "puVar20") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_b0")) (; ";")) (} "}")) (else_clause "else {\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }" (else "else") (compound_statement "{\n                        (**(code **)(puVar37 + 0x88394))(puVar19);\n                        (**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n                      }" ({ "{") (expression_statement "(**(code **)(puVar37 + 0x88394))(puVar19);" (call_expression "(**(code **)(puVar37 + 0x88394))(puVar19)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88394)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88394)" (* "*") (cast_expression "(code **)(puVar37 + 0x88394)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88394)" (( "(") (binary_expression "puVar37 + 0x88394" (identifier "puVar37") (+ "+") (number_literal "0x88394")) () ")"))))) () ")")) (argument_list "(puVar19)" (( "(") (identifier "puVar19") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);" (call_expression "(**(code **)(puVar37 + 0x88b88))\n                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b88))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88b88)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88b88)" (* "*") (cast_expression "(code **)(puVar37 + 0x88b88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88b88)" (( "(") (binary_expression "puVar37 + 0x88b88" (identifier "puVar37") (+ "+") (number_literal "0x88b88")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" (( "(") (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" (* "*") (cast_expression "(int *)(iVar22 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0xc)" (( "(") (binary_expression "iVar22 + 0xc" (identifier "iVar22") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (, ",") (identifier "iVar22") () ")"))) (; ";")) (} "}")))) (} "}")))) (expression_statement "(**(code **)(puVar37 + 0x88394))(ppppbVar13);" (call_expression "(**(code **)(puVar37 + 0x88394))(ppppbVar13)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88394)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88394)" (* "*") (cast_expression "(code **)(puVar37 + 0x88394)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88394)" (( "(") (binary_expression "puVar37 + 0x88394" (identifier "puVar37") (+ "+") (number_literal "0x88394")) () ")"))))) () ")")) (argument_list "(ppppbVar13)" (( "(") (identifier "ppppbVar13") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x4030)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x4030)" (( "(") (binary_expression "iVar22 + 0x4030" (identifier "iVar22") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "unaff_s6 = (byte *****)ppppbVar13;" (assignment_expression "unaff_s6 = (byte *****)ppppbVar13" (identifier "unaff_s6") (= "=") (cast_expression "(byte *****)ppppbVar13" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppbVar13"))) (; ";")) (goto_statement "goto LAB_000893ac;" (goto "goto") (statement_identifier "LAB_000893ac") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_00089700:\n                iVar11 = (*pcVar38)(iVar23 + 0x455c);" (statement_identifier "LAB_00089700") (: ":") (expression_statement "iVar11 = (*pcVar38)(iVar23 + 0x455c);" (assignment_expression "iVar11 = (*pcVar38)(iVar23 + 0x455c)" (identifier "iVar11") (= "=") (call_expression "(*pcVar38)(iVar23 + 0x455c)" (parenthesized_expression "(*pcVar38)" (( "(") (pointer_expression "*pcVar38" (* "*") (identifier "pcVar38")) () ")")) (argument_list "(iVar23 + 0x455c)" (( "(") (binary_expression "iVar23 + 0x455c" (identifier "iVar23") (+ "+") (number_literal "0x455c")) () ")")))) (; ";"))) (expression_statement "pppppbVar36 = pppppbVar33;" (assignment_expression "pppppbVar36 = pppppbVar33" (identifier "pppppbVar36") (= "=") (identifier "pppppbVar33")) (; ";")) (goto_statement "goto LAB_00089674;" (goto "goto") (statement_identifier "LAB_00089674") (; ";")) (} "}"))) (if_statement "if (bVar26 != 1) {\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }" (if "if") (parenthesized_expression "(bVar26 != 1)" (( "(") (binary_expression "bVar26 != 1" (identifier "bVar26") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\nLAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);\n                goto LAB_00089674;\n              }" ({ "{") (labeled_statement "LAB_0008965c:\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);" (statement_identifier "LAB_0008965c") (: ":") (expression_statement "iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);" (assignment_expression "iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26)" (parenthesized_expression "(**(code **)(puVar37 + 0x8844c))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x8844c)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x8844c)" (* "*") (cast_expression "(code **)(puVar37 + 0x8844c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x8844c)" (( "(") (binary_expression "puVar37 + 0x8844c" (identifier "puVar37") (+ "+") (number_literal "0x8844c")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26)" (( "(") (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x474c" (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")")))) (+ "+") (number_literal "0x474c")) (, ",") (identifier "bVar26") () ")")))) (; ";"))) (goto_statement "goto LAB_00089674;" (goto "goto") (statement_identifier "LAB_00089674") (; ";")) (} "}"))) (expression_statement "(**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));" (call_expression "(**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8))" (parenthesized_expression "(**(code **)(**(int **)(iVar22 + 8) + 4))" (( "(") (pointer_expression "**(code **)(**(int **)(iVar22 + 8) + 4)" (* "*") (pointer_expression "*(code **)(**(int **)(iVar22 + 8) + 4)" (* "*") (cast_expression "(code **)(**(int **)(iVar22 + 8) + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar22 + 8) + 4)" (( "(") (binary_expression "**(int **)(iVar22 + 8) + 4" (pointer_expression "**(int **)(iVar22 + 8)" (* "*") (pointer_expression "*(int **)(iVar22 + 8)" (* "*") (cast_expression "(int **)(iVar22 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar22 + 8)" (( "(") (binary_expression "iVar22 + 8" (identifier "iVar22") (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "4")) () ")"))))) () ")")) (argument_list "(*(int **)(iVar22 + 8))" (( "(") (pointer_expression "*(int **)(iVar22 + 8)" (* "*") (cast_expression "(int **)(iVar22 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar22 + 8)" (( "(") (binary_expression "iVar22 + 8" (identifier "iVar22") (+ "+") (number_literal "8")) () ")")))) () ")"))) (; ";")) (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 "FUN_000882d0(iVar22);" (call_expression "FUN_000882d0(iVar22)" (identifier "FUN_000882d0") (argument_list "(iVar22)" (( "(") (identifier "iVar22") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x4030)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x4030)" (( "(") (binary_expression "iVar22 + 0x4030" (identifier "iVar22") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_000893ac;" (goto "goto") (statement_identifier "LAB_000893ac") (; ";")) (} "}"))) (labeled_statement "LAB_00089714:\n            if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }" (statement_identifier "LAB_00089714") (: ":") (if_statement "if ((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }" (if "if") (parenthesized_expression "((bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9))" (( "(") (binary_expression "(bVar26 == 0x62) &&\n               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)" (parenthesized_expression "(bVar26 == 0x62)" (( "(") (binary_expression "bVar26 == 0x62" (identifier "bVar26") (== "==") (number_literal "0x62")) () ")")) (&& "&&") (parenthesized_expression "(pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)" (( "(") (comma_expression "pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9" (assignment_expression "pppppbVar36 = *(byte ******)(puVar37 + 0x88acc)" (identifier "pppppbVar36") (= "=") (pointer_expression "*(byte ******)(puVar37 + 0x88acc)" (* "*") (cast_expression "(byte ******)(puVar37 + 0x88acc)" (( "(") (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 + 0x88acc)" (( "(") (binary_expression "puVar37 + 0x88acc" (identifier "puVar37") (+ "+") (number_literal "0x88acc")) () ")"))))) (, ",") (binary_expression "3 < (int)unaff_s6 + -9" (number_literal "3") (< "<") (binary_expression "(int)unaff_s6 + -9" (cast_expression "(int)unaff_s6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s6")) (+ "+") (number_literal "-9")))) () ")"))) () ")")) (compound_statement "{\n              pppppbVar36 = pppppbVar36 + 0x1e70;\n              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);\n              ppppbVar13 = local_90;\n              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }\n            }" ({ "{") (expression_statement "pppppbVar36 = pppppbVar36 + 0x1e70;" (assignment_expression "pppppbVar36 = pppppbVar36 + 0x1e70" (identifier "pppppbVar36") (= "=") (binary_expression "pppppbVar36 + 0x1e70" (identifier "pppppbVar36") (+ "+") (number_literal "0x1e70"))) (; ";")) (expression_statement "iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);" (assignment_expression "iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0)" (identifier "iVar23") (= "=") (call_expression "FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0)" (identifier "FUN_000879c0") (argument_list "(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0)" (( "(") (binary_expression "iVar22 + 0x29" (identifier "iVar22") (+ "+") (number_literal "0x29")) (, ",") (cast_expression "(byte *)((int)unaff_s6 + -9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s6 + -9)" (( "(") (binary_expression "(int)unaff_s6 + -9" (cast_expression "(int)unaff_s6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s6")) (+ "+") (number_literal "-9")) () ")"))) (, ",") (pointer_expression "&local_90" (& "&") (identifier "local_90")) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "ppppbVar13 = local_90;" (assignment_expression "ppppbVar13 = local_90" (identifier "ppppbVar13") (= "=") (identifier "local_90")) (; ";")) (if_statement "if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {\n                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }" (if "if") (parenthesized_expression "((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0))" (( "(") (binary_expression "(iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)" (parenthesized_expression "(iVar23 != 0)" (( "(") (binary_expression "iVar23 != 0" (identifier "iVar23") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((byte *****)local_90 != (byte *****)0x0)" (( "(") (binary_expression "(byte *****)local_90 != (byte *****)0x0" (cast_expression "(byte *****)local_90" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_90")) (!= "!=") (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                local_b0 = local_90;\n                iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);\n                if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }\n                iVar23 = *(int *)(puVar37 + 0x8839c);\n                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);\n                if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }\n                uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                local_88 = uVar12;\n                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }\n                if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }\n                cVar5 = *(char *)(iVar22 + 0x34);\n                pbVar30 = (byte *)((int)unaff_s6 + -0x16);\n                cVar6 = *(char *)(iVar22 + 0x35);\n                if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }\n                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);\n                iVar21 = (int)pbVar32 - (int)pbVar30;\n                unaff_s6 = (byte *****)0x0;\n                if (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }\n                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }\n                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;\n                if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }\n                goto LAB_00089df8;\n              }" ({ "{") (expression_statement "local_b0 = local_90;" (assignment_expression "local_b0 = local_90" (identifier "local_b0") (= "=") (identifier "local_90")) (; ";")) (expression_statement "iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);" (assignment_expression "iVar23 = (**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c)" (identifier "iVar23") (= "=") (call_expression "(**(code **)(puVar37 + 0x8953c))\n                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c)" (parenthesized_expression "(**(code **)(puVar37 + 0x8953c))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x8953c)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x8953c)" (* "*") (cast_expression "(code **)(puVar37 + 0x8953c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x8953c)" (( "(") (binary_expression "puVar37 + 0x8953c" (identifier "puVar37") (+ "+") (number_literal "0x8953c")) () ")"))))) () ")")) (argument_list "(local_90,*(int *)(puVar37 + 0x8839c) + -0x363c)" (( "(") (identifier "local_90") (, ",") (binary_expression "*(int *)(puVar37 + 0x8839c) + -0x363c" (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")")))) (+ "+") (number_literal "-0x363c")) () ")")))) (; ";")) (if_statement "if ((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )) {\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }" (if "if") (parenthesized_expression "((iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   ))" (( "(") (binary_expression "(iVar23 == 0) &&\n                   (iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )" (parenthesized_expression "(iVar23 == 0)" (( "(") (binary_expression "iVar23 == 0" (identifier "iVar23") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0\n                   )" (( "(") (comma_expression "iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0" (assignment_expression "iVar23 = (**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14))" (identifier "iVar23") (= "=") (call_expression "(**(code **)(puVar37 + 0x888c4))\n                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14))" (parenthesized_expression "(**(code **)(puVar37 + 0x888c4))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x888c4)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x888c4)" (* "*") (cast_expression "(code **)(puVar37 + 0x888c4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x888c4)" (( "(") (binary_expression "puVar37 + 0x888c4" (identifier "puVar37") (+ "+") (number_literal "0x888c4")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14))" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" (( "(") (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" (* "*") (cast_expression "(int *)(iVar22 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0xc)" (( "(") (binary_expression "iVar22 + 0xc" (identifier "iVar22") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) () ")")))) (, ",") (binary_expression "iVar23 == 0" (identifier "iVar23") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                  uVar12 = *(undefined4 *)(iVar22 + 0x25);\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_88 = uVar12;\n                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n                  if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  goto LAB_000893ac;\n                }" ({ "{") (expression_statement "uVar12 = *(undefined4 *)(iVar22 + 0x25);" (assignment_expression "uVar12 = *(undefined4 *)(iVar22 + 0x25)" (identifier "uVar12") (= "=") (pointer_expression "*(undefined4 *)(iVar22 + 0x25)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x25)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x25)" (( "(") (binary_expression "iVar22 + 0x25" (identifier "iVar22") (+ "+") (number_literal "0x25")) () ")"))))) (; ";")) (expression_statement "(**(code **)(puVar37 + 0x88394))(ppppbVar13);" (call_expression "(**(code **)(puVar37 + 0x88394))(ppppbVar13)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88394)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88394)" (* "*") (cast_expression "(code **)(puVar37 + 0x88394)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88394)" (( "(") (binary_expression "puVar37 + 0x88394" (identifier "puVar37") (+ "+") (number_literal "0x88394")) () ")"))))) () ")")) (argument_list "(ppppbVar13)" (( "(") (identifier "ppppbVar13") () ")"))) (; ";")) (expression_statement "local_88 = uVar12;" (assignment_expression "local_88 = uVar12" (identifier "local_88") (= "=") (identifier "uVar12")) (; ";")) (expression_statement "puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);" (assignment_expression "puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0)" (identifier "puVar19") (= "=") (cast_expression "(undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0)" (identifier "find234") (argument_list "(*(undefined4 *)(iVar22 + 0x403c),&local_90,0)" (( "(") (pointer_expression "*(undefined4 *)(iVar22 + 0x403c)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x403c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x403c)" (( "(") (binary_expression "iVar22 + 0x403c" (identifier "iVar22") (+ "+") (number_literal "0x403c")) () ")")))) (, ",") (pointer_expression "&local_90" (& "&") (identifier "local_90")) (, ",") (number_literal "0") () ")"))))) (; ";")) (if_statement "if (puVar19 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }\n                  else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }" (if "if") (parenthesized_expression "(puVar19 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar19 == (undefined4 *)0x0" (identifier "puVar19") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    pcVar38 = *(code **)(puVar37 + 0x8844c);\n                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;\nLAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);\n                    FUN_000887e0(iVar22,uVar12);\n                    (**(code **)(puVar37 + 0x88394))(uVar12);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }" ({ "{") (expression_statement "pcVar38 = *(code **)(puVar37 + 0x8844c);" (assignment_expression "pcVar38 = *(code **)(puVar37 + 0x8844c)" (identifier "pcVar38") (= "=") (pointer_expression "*(code **)(puVar37 + 0x8844c)" (* "*") (cast_expression "(code **)(puVar37 + 0x8844c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x8844c)" (( "(") (binary_expression "puVar37 + 0x8844c" (identifier "puVar37") (+ "+") (number_literal "0x8844c")) () ")"))))) (; ";")) (expression_statement "iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;" (assignment_expression "iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8" (identifier "iVar11") (= "=") (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x46b8" (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")")))) (+ "+") (number_literal "0x46b8"))) (; ";")) (labeled_statement "LAB_0008a3a0:\n                    uVar12 = (*pcVar38)(iVar11,uVar12);" (statement_identifier "LAB_0008a3a0") (: ":") (expression_statement "uVar12 = (*pcVar38)(iVar11,uVar12);" (assignment_expression "uVar12 = (*pcVar38)(iVar11,uVar12)" (identifier "uVar12") (= "=") (call_expression "(*pcVar38)(iVar11,uVar12)" (parenthesized_expression "(*pcVar38)" (( "(") (pointer_expression "*pcVar38" (* "*") (identifier "pcVar38")) () ")")) (argument_list "(iVar11,uVar12)" (( "(") (identifier "iVar11") (, ",") (identifier "uVar12") () ")")))) (; ";"))) (expression_statement "FUN_000887e0(iVar22,uVar12);" (call_expression "FUN_000887e0(iVar22,uVar12)" (identifier "FUN_000887e0") (argument_list "(iVar22,uVar12)" (( "(") (identifier "iVar22") (, ",") (identifier "uVar12") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar37 + 0x88394))(uVar12);" (call_expression "(**(code **)(puVar37 + 0x88394))(uVar12)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88394)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88394)" (* "*") (cast_expression "(code **)(puVar37 + 0x88394)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88394)" (( "(") (binary_expression "puVar37 + 0x88394" (identifier "puVar37") (+ "+") (number_literal "0x88394")) () ")"))))) () ")")) (argument_list "(uVar12)" (( "(") (identifier "uVar12") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x4030)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x4030)" (( "(") (binary_expression "iVar22 + 0x4030" (identifier "iVar22") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }" (else "else") (compound_statement "{\n                    local_68 = (byte ***)*puVar19;\n                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);\n                    *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  }" ({ "{") (expression_statement "local_68 = (byte ***)*puVar19;" (assignment_expression "local_68 = (byte ***)*puVar19" (identifier "local_68") (= "=") (cast_expression "(byte ***)*puVar19" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (pointer_expression "*puVar19" (* "*") (identifier "puVar19")))) (; ";")) (expression_statement "FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);" (call_expression "FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc)" (identifier "FUN_000877b4") (argument_list "(iVar22 + 8,100,&local_68,4,0,0xc)" (( "(") (binary_expression "iVar22 + 8" (identifier "iVar22") (+ "+") (number_literal "8")) (, ",") (number_literal "100") (, ",") (pointer_expression "&local_68" (& "&") (identifier "local_68")) (, ",") (number_literal "4") (, ",") (number_literal "0") (, ",") (number_literal "0xc") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x4030)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x4030)" (( "(") (binary_expression "iVar22 + 0x4030" (identifier "iVar22") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")))) (goto_statement "goto LAB_000893ac;" (goto "goto") (statement_identifier "LAB_000893ac") (; ";")) (} "}"))) (expression_statement "iVar23 = *(int *)(puVar37 + 0x8839c);" (assignment_expression "iVar23 = *(int *)(puVar37 + 0x8839c)" (identifier "iVar23") (= "=") (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")"))))) (; ";")) (expression_statement "iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);" (assignment_expression "iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0)" (identifier "iVar21") (= "=") (call_expression "(**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0)" (parenthesized_expression "(**(code **)(puVar37 + 0x8953c))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x8953c)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x8953c)" (* "*") (cast_expression "(code **)(puVar37 + 0x8953c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x8953c)" (( "(") (binary_expression "puVar37 + 0x8953c" (identifier "puVar37") (+ "+") (number_literal "0x8953c")) () ")"))))) () ")")) (argument_list "(ppppbVar13,iVar23 + -0x36a0)" (( "(") (identifier "ppppbVar13") (, ",") (binary_expression "iVar23 + -0x36a0" (identifier "iVar23") (+ "+") (number_literal "-0x36a0")) () ")")))) (; ";")) (if_statement "if (iVar21 != 0) {\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }" (if "if") (parenthesized_expression "(iVar21 != 0)" (( "(") (binary_expression "iVar21 != 0" (identifier "iVar21") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);\n                  local_b0 = ppppbVar13;\n                  goto LAB_00089cc8;\n                }" ({ "{") (expression_statement "(**(code **)(puVar37 + 0x88394))(ppppbVar13);" (call_expression "(**(code **)(puVar37 + 0x88394))(ppppbVar13)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88394)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88394)" (* "*") (cast_expression "(code **)(puVar37 + 0x88394)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88394)" (( "(") (binary_expression "puVar37 + 0x88394" (identifier "puVar37") (+ "+") (number_literal "0x88394")) () ")"))))) () ")")) (argument_list "(ppppbVar13)" (( "(") (identifier "ppppbVar13") () ")"))) (; ";")) (expression_statement "local_b0 = ppppbVar13;" (assignment_expression "local_b0 = ppppbVar13" (identifier "local_b0") (= "=") (identifier "ppppbVar13")) (; ";")) (goto_statement "goto LAB_00089cc8;" (goto "goto") (statement_identifier "LAB_00089cc8") (; ";")) (} "}"))) (expression_statement "uVar12 = *(undefined4 *)(iVar22 + 0x25);" (assignment_expression "uVar12 = *(undefined4 *)(iVar22 + 0x25)" (identifier "uVar12") (= "=") (pointer_expression "*(undefined4 *)(iVar22 + 0x25)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x25)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x25)" (( "(") (binary_expression "iVar22 + 0x25" (identifier "iVar22") (+ "+") (number_literal "0x25")) () ")"))))) (; ";")) (expression_statement "(**(code **)(puVar37 + 0x88394))(ppppbVar13);" (call_expression "(**(code **)(puVar37 + 0x88394))(ppppbVar13)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88394)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88394)" (* "*") (cast_expression "(code **)(puVar37 + 0x88394)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88394)" (( "(") (binary_expression "puVar37 + 0x88394" (identifier "puVar37") (+ "+") (number_literal "0x88394")) () ")"))))) () ")")) (argument_list "(ppppbVar13)" (( "(") (identifier "ppppbVar13") () ")"))) (; ";")) (expression_statement "local_88 = uVar12;" (assignment_expression "local_88 = uVar12" (identifier "local_88") (= "=") (identifier "uVar12")) (; ";")) (expression_statement "local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);" (assignment_expression "local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0)" (identifier "local_b0") (= "=") (cast_expression "(byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (call_expression "find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0)" (identifier "find234") (argument_list "(*(undefined4 *)(iVar22 + 0x403c),&local_90,0)" (( "(") (pointer_expression "*(undefined4 *)(iVar22 + 0x403c)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x403c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x403c)" (( "(") (binary_expression "iVar22 + 0x403c" (identifier "iVar22") (+ "+") (number_literal "0x403c")) () ")")))) (, ",") (pointer_expression "&local_90" (& "&") (identifier "local_90")) (, ",") (number_literal "0") () ")"))))) (; ";")) (if_statement "if ((byte *****)local_b0 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }" (if "if") (parenthesized_expression "((byte *****)local_b0 == (byte *****)0x0)" (( "(") (binary_expression "(byte *****)local_b0 == (byte *****)0x0" (cast_expression "(byte *****)local_b0" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_b0")) (== "==") (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 **)(puVar37 + 0x8844c);\n                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;\n                  goto LAB_0008a3a0;\n                }" ({ "{") (expression_statement "pcVar38 = *(code **)(puVar37 + 0x8844c);" (assignment_expression "pcVar38 = *(code **)(puVar37 + 0x8844c)" (identifier "pcVar38") (= "=") (pointer_expression "*(code **)(puVar37 + 0x8844c)" (* "*") (cast_expression "(code **)(puVar37 + 0x8844c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x8844c)" (( "(") (binary_expression "puVar37 + 0x8844c" (identifier "puVar37") (+ "+") (number_literal "0x8844c")) () ")"))))) (; ";")) (expression_statement "iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;" (assignment_expression "iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0" (identifier "iVar11") (= "=") (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x46f0" (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")")))) (+ "+") (number_literal "0x46f0"))) (; ";")) (goto_statement "goto LAB_0008a3a0;" (goto "goto") (statement_identifier "LAB_0008a3a0") (; ";")) (} "}"))) (if_statement "if ((int)pbVar32 < 0x11) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }" (if "if") (parenthesized_expression "((int)pbVar32 < 0x11)" (( "(") (binary_expression "(int)pbVar32 < 0x11" (cast_expression "(int)pbVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar32")) (< "<") (number_literal "0x11")) () ")")) (compound_statement "{\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  goto LAB_00089674;\n                }" ({ "{") (expression_statement "iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);" (assignment_expression "iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724)" (parenthesized_expression "(**(code **)(puVar37 + 0x8844c))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x8844c)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x8844c)" (* "*") (cast_expression "(code **)(puVar37 + 0x8844c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x8844c)" (( "(") (binary_expression "puVar37 + 0x8844c" (identifier "puVar37") (+ "+") (number_literal "0x8844c")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x4724)" (( "(") (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x4724" (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")")))) (+ "+") (number_literal "0x4724")) () ")")))) (; ";")) (goto_statement "goto LAB_00089674;" (goto "goto") (statement_identifier "LAB_00089674") (; ";")) (} "}"))) (expression_statement "cVar5 = *(char *)(iVar22 + 0x34);" (assignment_expression "cVar5 = *(char *)(iVar22 + 0x34)" (identifier "cVar5") (= "=") (pointer_expression "*(char *)(iVar22 + 0x34)" (* "*") (cast_expression "(char *)(iVar22 + 0x34)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x34)" (( "(") (binary_expression "iVar22 + 0x34" (identifier "iVar22") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "pbVar30 = (byte *)((int)unaff_s6 + -0x16);" (assignment_expression "pbVar30 = (byte *)((int)unaff_s6 + -0x16)" (identifier "pbVar30") (= "=") (cast_expression "(byte *)((int)unaff_s6 + -0x16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s6 + -0x16)" (( "(") (binary_expression "(int)unaff_s6 + -0x16" (cast_expression "(int)unaff_s6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s6")) (+ "+") (number_literal "-0x16")) () ")")))) (; ";")) (expression_statement "cVar6 = *(char *)(iVar22 + 0x35);" (assignment_expression "cVar6 = *(char *)(iVar22 + 0x35)" (identifier "cVar6") (= "=") (pointer_expression "*(char *)(iVar22 + 0x35)" (* "*") (cast_expression "(char *)(iVar22 + 0x35)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x35)" (( "(") (binary_expression "iVar22 + 0x35" (identifier "iVar22") (+ "+") (number_literal "0x35")) () ")"))))) (; ";")) (if_statement "if ((int)pbVar30 < 4) {\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }" (if "if") (parenthesized_expression "((int)pbVar30 < 4)" (( "(") (binary_expression "(int)pbVar30 < 4" (cast_expression "(int)pbVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar30")) (< "<") (number_literal "4")) () ")")) (compound_statement "{\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);\n                  (**(code **)(puVar37 + 0x88394))(0);\nLAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }" ({ "{") (expression_statement "ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);" (assignment_expression "ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0)" (identifier "ppppbVar13") (= "=") (cast_expression "(byte ****)(**(code **)(puVar37 + 0x88b90))(0)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (call_expression "(**(code **)(puVar37 + 0x88b90))(0)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b90))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88b90)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88b90)" (* "*") (cast_expression "(code **)(puVar37 + 0x88b90)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88b90)" (( "(") (binary_expression "puVar37 + 0x88b90" (identifier "puVar37") (+ "+") (number_literal "0x88b90")) () ")"))))) () ")")) (argument_list "(0)" (( "(") (number_literal "0") () ")"))))) (; ";")) (expression_statement "(**(code **)(puVar37 + 0x88394))(0);" (call_expression "(**(code **)(puVar37 + 0x88394))(0)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88394)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88394)" (* "*") (cast_expression "(code **)(puVar37 + 0x88394)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88394)" (( "(") (binary_expression "puVar37 + 0x88394" (identifier "puVar37") (+ "+") (number_literal "0x88394")) () ")"))))) () ")")) (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (labeled_statement "LAB_0008a36c:\n                  pppppbVar33 = (byte *****)0xffffffff;" (statement_identifier "LAB_0008a36c") (: ":") (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                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }" (else "else") (compound_statement "{\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }\n                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);\n                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);\n                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_0008a36c;\n                }" ({ "{") (expression_statement "iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);" (assignment_expression "iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0)" (identifier "iVar21") (= "=") (call_expression "FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0)" (identifier "FUN_000879c0") (argument_list "(iVar22 + 0x36,pbVar30,&local_90,0)" (( "(") (binary_expression "iVar22 + 0x36" (identifier "iVar22") (+ "+") (number_literal "0x36")) (, ",") (identifier "pbVar30") (, ",") (pointer_expression "&local_90" (& "&") (identifier "local_90")) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "pppppbVar33 = (byte *****)local_90;" (assignment_expression "pppppbVar33 = (byte *****)local_90" (identifier "pppppbVar33") (= "=") (cast_expression "(byte *****)local_90" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_90"))) (; ";")) (if_statement "if (iVar21 == 0) {\n                    pppppbVar33 = (byte *****)0x0;\n                  }" (if "if") (parenthesized_expression "(iVar21 == 0)" (( "(") (binary_expression "iVar21 == 0" (identifier "iVar21") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    pppppbVar33 = (byte *****)0x0;\n                  }" ({ "{") (expression_statement "pppppbVar33 = (byte *****)0x0;" (assignment_expression "pppppbVar33 = (byte *****)0x0" (identifier "pppppbVar33") (= "=") (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 "ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);" (assignment_expression "ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33)" (identifier "ppppbVar13") (= "=") (cast_expression "(byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (call_expression "(**(code **)(puVar37 + 0x88b90))(pppppbVar33)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b90))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88b90)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88b90)" (* "*") (cast_expression "(code **)(puVar37 + 0x88b90)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88b90)" (( "(") (binary_expression "puVar37 + 0x88b90" (identifier "puVar37") (+ "+") (number_literal "0x88b90")) () ")"))))) () ")")) (argument_list "(pppppbVar33)" (( "(") (identifier "pppppbVar33") () ")"))))) (; ";")) (expression_statement "(**(code **)(puVar37 + 0x88394))(pppppbVar33);" (call_expression "(**(code **)(puVar37 + 0x88394))(pppppbVar33)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88394)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88394)" (* "*") (cast_expression "(code **)(puVar37 + 0x88394)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88394)" (( "(") (binary_expression "puVar37 + 0x88394" (identifier "puVar37") (+ "+") (number_literal "0x88394")) () ")"))))) () ")")) (argument_list "(pppppbVar33)" (( "(") (identifier "pppppbVar33") () ")"))) (; ";")) (expression_statement "iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);" (assignment_expression "iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90)" (identifier "iVar21") (= "=") (call_expression "FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90)" (identifier "FUN_000879c0") (argument_list "(iVar22 + 0x36,pbVar30,0,&local_90)" (( "(") (binary_expression "iVar22 + 0x36" (identifier "iVar22") (+ "+") (number_literal "0x36")) (, ",") (identifier "pbVar30") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_90" (& "&") (identifier "local_90")) () ")")))) (; ";")) (expression_statement "pppppbVar33 = (byte *****)local_90;" (assignment_expression "pppppbVar33 = (byte *****)local_90" (identifier "pppppbVar33") (= "=") (cast_expression "(byte *****)local_90" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_90"))) (; ";")) (if_statement "if (iVar21 == 0) goto LAB_0008a36c;" (if "if") (parenthesized_expression "(iVar21 == 0)" (( "(") (binary_expression "iVar21 == 0" (identifier "iVar21") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0008a36c;" (goto "goto") (statement_identifier "LAB_0008a36c") (; ";"))) (} "}")))) (expression_statement "pbVar30 = (byte *)((int)pppppbVar33 + 0x11);" (assignment_expression "pbVar30 = (byte *)((int)pppppbVar33 + 0x11)" (identifier "pbVar30") (= "=") (cast_expression "(byte *)((int)pppppbVar33 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppbVar33 + 0x11)" (( "(") (binary_expression "(int)pppppbVar33 + 0x11" (cast_expression "(int)pppppbVar33" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar33")) (+ "+") (number_literal "0x11")) () ")")))) (; ";")) (expression_statement "iVar21 = (int)pbVar32 - (int)pbVar30;" (assignment_expression "iVar21 = (int)pbVar32 - (int)pbVar30" (identifier "iVar21") (= "=") (binary_expression "(int)pbVar32 - (int)pbVar30" (cast_expression "(int)pbVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar32")) (- "-") (cast_expression "(int)pbVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar30")))) (; ";")) (expression_statement "unaff_s6 = (byte *****)0x0;" (assignment_expression "unaff_s6 = (byte *****)0x0" (identifier "unaff_s6") (= "=") (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 (iVar21 < 4) {\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }" (if "if") (parenthesized_expression "(iVar21 < 4)" (( "(") (binary_expression "iVar21 < 4" (identifier "iVar21") (< "<") (number_literal "4")) () ")")) (compound_statement "{\nLAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }" ({ "{") (labeled_statement "LAB_00089ec4:\n                  pppppbVar33 = (byte *****)0xffffffff;" (statement_identifier "LAB_00089ec4") (: ":") (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                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }" (else "else") (compound_statement "{\n                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);\n                  unaff_s6 = (byte *****)local_90;\n                  if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }\n                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);\n                  pppppbVar33 = (byte *****)local_90;\n                  if (iVar21 == 0) goto LAB_00089ec4;\n                }" ({ "{") (expression_statement "iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);" (assignment_expression "iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0)" (identifier "iVar14") (= "=") (call_expression "FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0)" (identifier "FUN_000879c0") (argument_list "(pbVar30 + iVar11,iVar21,&local_90,0)" (( "(") (binary_expression "pbVar30 + iVar11" (identifier "pbVar30") (+ "+") (identifier "iVar11")) (, ",") (identifier "iVar21") (, ",") (pointer_expression "&local_90" (& "&") (identifier "local_90")) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "unaff_s6 = (byte *****)local_90;" (assignment_expression "unaff_s6 = (byte *****)local_90" (identifier "unaff_s6") (= "=") (cast_expression "(byte *****)local_90" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_90"))) (; ";")) (if_statement "if (iVar14 == 0) {\n                    unaff_s6 = (byte *****)0x0;\n                  }" (if "if") (parenthesized_expression "(iVar14 == 0)" (( "(") (binary_expression "iVar14 == 0" (identifier "iVar14") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    unaff_s6 = (byte *****)0x0;\n                  }" ({ "{") (expression_statement "unaff_s6 = (byte *****)0x0;" (assignment_expression "unaff_s6 = (byte *****)0x0" (identifier "unaff_s6") (= "=") (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 "iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);" (assignment_expression "iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90)" (identifier "iVar21") (= "=") (call_expression "FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90)" (identifier "FUN_000879c0") (argument_list "(pbVar30 + iVar11,iVar21,0,&local_90)" (( "(") (binary_expression "pbVar30 + iVar11" (identifier "pbVar30") (+ "+") (identifier "iVar11")) (, ",") (identifier "iVar21") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_90" (& "&") (identifier "local_90")) () ")")))) (; ";")) (expression_statement "pppppbVar33 = (byte *****)local_90;" (assignment_expression "pppppbVar33 = (byte *****)local_90" (identifier "pppppbVar33") (= "=") (cast_expression "(byte *****)local_90" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_90"))) (; ";")) (if_statement "if (iVar21 == 0) goto LAB_00089ec4;" (if "if") (parenthesized_expression "(iVar21 == 0)" (( "(") (binary_expression "iVar21 == 0" (identifier "iVar21") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00089ec4;" (goto "goto") (statement_identifier "LAB_00089ec4") (; ";"))) (} "}")))) (if_statement "if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }" (if "if") (parenthesized_expression "((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3))" (( "(") (binary_expression "(int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)" (cast_expression "(int)pbVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar32")) (<= "<=") (cast_expression "(int)(pbVar30 + (int)pppppbVar33 + 3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar30 + (int)pppppbVar33 + 3)" (( "(") (binary_expression "pbVar30 + (int)pppppbVar33 + 3" (binary_expression "pbVar30 + (int)pppppbVar33" (identifier "pbVar30") (+ "+") (cast_expression "(int)pppppbVar33" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar33"))) (+ "+") (number_literal "3")) () ")")))) () ")")) (compound_statement "{\n                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);\n                  (**(code **)(puVar37 + 0x88394))(unaff_s6);\n                  goto LAB_00089674;\n                }" ({ "{") (expression_statement "iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);" (assignment_expression "iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724)" (parenthesized_expression "(**(code **)(puVar37 + 0x8844c))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x8844c)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x8844c)" (* "*") (cast_expression "(code **)(puVar37 + 0x8844c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x8844c)" (( "(") (binary_expression "puVar37 + 0x8844c" (identifier "puVar37") (+ "+") (number_literal "0x8844c")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x4724)" (( "(") (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x4724" (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")")))) (+ "+") (number_literal "0x4724")) () ")")))) (; ";")) (expression_statement "(**(code **)(puVar37 + 0x88394))(unaff_s6);" (call_expression "(**(code **)(puVar37 + 0x88394))(unaff_s6)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88394)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88394)" (* "*") (cast_expression "(code **)(puVar37 + 0x88394)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88394)" (( "(") (binary_expression "puVar37 + 0x88394" (identifier "puVar37") (+ "+") (number_literal "0x88394")) () ")"))))) () ")")) (argument_list "(unaff_s6)" (( "(") (identifier "unaff_s6") () ")"))) (; ";")) (goto_statement "goto LAB_00089674;" (goto "goto") (statement_identifier "LAB_00089674") (; ";")) (} "}"))) (expression_statement "pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;" (assignment_expression "pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11" (identifier "pbVar32") (= "=") (binary_expression "pbVar30 + (int)pppppbVar33 + iVar11" (binary_expression "pbVar30 + (int)pppppbVar33" (identifier "pbVar30") (+ "+") (cast_expression "(int)pppppbVar33" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar33"))) (+ "+") (identifier "iVar11"))) (; ";")) (if_statement "if (-1 < (int)ppppbVar13) {\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }" (if "if") (parenthesized_expression "(-1 < (int)ppppbVar13)" (( "(") (binary_expression "-1 < (int)ppppbVar13" (number_literal "-1") (< "<") (cast_expression "(int)ppppbVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbVar13"))) () ")")) (compound_statement "{\n                  pcVar38 = *(code **)(puVar37 + 0x88b94);\n                  bVar26 = *pbVar32;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar32[1];\n                  bVar2 = pbVar32[3];\n                  bVar3 = pbVar32[2];\n                  ((byte *****)local_b0)[6] = ppppbVar13;\n                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);\n                  pcVar38 = *(code **)(puVar37 + 0x88394);\n                  ((byte *****)local_b0)[7] = ppppbVar15;\n                  (*pcVar38)(unaff_s6);\n                  ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);\n                  ((byte *****)local_b0)[5] = ppppbVar13;\n                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);\n                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);\n                  puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);\n                  puVar16[4] = 0;\n                  puVar16[5] = 0;\n                  uVar27 = *(uint *)(iVar23 + -0x36a0);\n                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);\n                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);\n                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);\n                  puVar16[3] = (char)uVar12;\n                  *puVar16 = (char)((uint)uVar12 >> 0x18);\n                  puVar16[1] = (char)((uint)uVar12 >> 0x10);\n                  puVar16[2] = (char)((uint)uVar12 >> 8);\n                  puVar16[7] = 7;\n                  puVar16[6] = 0;\n                  puVar17 = puVar16 + 8;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;\n                  puVar17 = puVar16 + 0xb;\n                  uVar31 = (uint)puVar17 & 3;\n                  *(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;\n                  puVar16[0xc] = uVar7;\n                  puVar16[0xd] = uVar8;\n                  puVar16[0xe] = uVar9;\n                  puVar16[0x10] = bVar10;\n                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);\n                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);\n                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);\n                  puVar16[0x14] = (char)pppppbVar36;\n                  pcVar38 = *(code **)(puVar37 + 0x89610);\n                  puVar16[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);\n                  puVar17 = puVar16 + (int)pppppbVar36;\n                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);\n                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);\n                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);\n                  puVar17[0x18] = (char)unaff_s6;\n                  (**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);\n                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);\n                  puVar17[0x1c] = bVar2;\n                  puVar17[0x19] = bVar26;\n                  puVar17[0x1a] = bVar1;\n                  puVar17[0x1b] = bVar3;\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);\n                  (**(code **)(puVar37 + 0x88394))(puVar16);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                  goto LAB_000893ac;\n                }" ({ "{") (expression_statement "pcVar38 = *(code **)(puVar37 + 0x88b94);" (assignment_expression "pcVar38 = *(code **)(puVar37 + 0x88b94)" (identifier "pcVar38") (= "=") (pointer_expression "*(code **)(puVar37 + 0x88b94)" (* "*") (cast_expression "(code **)(puVar37 + 0x88b94)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88b94)" (( "(") (binary_expression "puVar37 + 0x88b94" (identifier "puVar37") (+ "+") (number_literal "0x88b94")) () ")"))))) (; ";")) (expression_statement "bVar26 = *pbVar32;" (assignment_expression "bVar26 = *pbVar32" (identifier "bVar26") (= "=") (pointer_expression "*pbVar32" (* "*") (identifier "pbVar32"))) (; ";")) (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 = pbVar32[1];" (assignment_expression "bVar1 = pbVar32[1]" (identifier "bVar1") (= "=") (subscript_expression "pbVar32[1]" (identifier "pbVar32") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "bVar2 = pbVar32[3];" (assignment_expression "bVar2 = pbVar32[3]" (identifier "bVar2") (= "=") (subscript_expression "pbVar32[3]" (identifier "pbVar32") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "bVar3 = pbVar32[2];" (assignment_expression "bVar3 = pbVar32[2]" (identifier "bVar3") (= "=") (subscript_expression "pbVar32[2]" (identifier "pbVar32") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "((byte *****)local_b0)[6] = ppppbVar13;" (assignment_expression "((byte *****)local_b0)[6] = ppppbVar13" (subscript_expression "((byte *****)local_b0)[6]" (parenthesized_expression "((byte *****)local_b0)" (( "(") (cast_expression "(byte *****)local_b0" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_b0")) () ")")) ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "ppppbVar13")) (; ";")) (expression_statement "ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);" (assignment_expression "ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8)" (identifier "ppppbVar15") (= "=") (cast_expression "(byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (call_expression "(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8)" (parenthesized_expression "(*pcVar38)" (( "(") (pointer_expression "*pcVar38" (* "*") (identifier "pcVar38")) () ")")) (argument_list "(unaff_s6,(byte *****)local_b0 + 8)" (( "(") (identifier "unaff_s6") (, ",") (binary_expression "(byte *****)local_b0 + 8" (cast_expression "(byte *****)local_b0" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_b0")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "pcVar38 = *(code **)(puVar37 + 0x88394);" (assignment_expression "pcVar38 = *(code **)(puVar37 + 0x88394)" (identifier "pcVar38") (= "=") (pointer_expression "*(code **)(puVar37 + 0x88394)" (* "*") (cast_expression "(code **)(puVar37 + 0x88394)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88394)" (( "(") (binary_expression "puVar37 + 0x88394" (identifier "puVar37") (+ "+") (number_literal "0x88394")) () ")"))))) (; ";")) (expression_statement "((byte *****)local_b0)[7] = ppppbVar15;" (assignment_expression "((byte *****)local_b0)[7] = ppppbVar15" (subscript_expression "((byte *****)local_b0)[7]" (parenthesized_expression "((byte *****)local_b0)" (( "(") (cast_expression "(byte *****)local_b0" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_b0")) () ")")) ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "ppppbVar15")) (; ";")) (expression_statement "(*pcVar38)(unaff_s6);" (call_expression "(*pcVar38)(unaff_s6)" (parenthesized_expression "(*pcVar38)" (( "(") (pointer_expression "*pcVar38" (* "*") (identifier "pcVar38")) () ")")) (argument_list "(unaff_s6)" (( "(") (identifier "unaff_s6") () ")"))) (; ";")) (expression_statement "ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0);" (assignment_expression "ppppbVar13 = (byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0)" (identifier "ppppbVar13") (= "=") (cast_expression "(byte ****)\n                               (**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (call_expression "(**(code **)(puVar37 + 0x88b98))\n                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b98))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88b98)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88b98)" (* "*") (cast_expression "(code **)(puVar37 + 0x88b98)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88b98)" (( "(") (binary_expression "puVar37 + 0x88b98" (identifier "puVar37") (+ "+") (number_literal "0x88b98")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,\n                                          iVar22,local_b0)" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" (( "(") (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" (* "*") (cast_expression "(int *)(iVar22 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0xc)" (( "(") (binary_expression "iVar22 + 0xc" (identifier "iVar22") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (, ",") (identifier "ppppbVar13") (, ",") (identifier "iVar22") (, ",") (identifier "local_b0") () ")"))))) (; ";")) (expression_statement "((byte *****)local_b0)[5] = ppppbVar13;" (assignment_expression "((byte *****)local_b0)[5] = ppppbVar13" (subscript_expression "((byte *****)local_b0)[5]" (parenthesized_expression "((byte *****)local_b0)" (( "(") (cast_expression "(byte *****)local_b0" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_b0")) () ")")) ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "ppppbVar13")) (; ";")) (expression_statement "((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;" (assignment_expression "((byte *****)local_b0)[9] = (byte ****)(uint)bVar10" (subscript_expression "((byte *****)local_b0)[9]" (parenthesized_expression "((byte *****)local_b0)" (( "(") (cast_expression "(byte *****)local_b0" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_b0")) () ")")) ([ "[") (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 "pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);" (assignment_expression "pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3])" (identifier "pppppbVar36") (= "=") (cast_expression "(byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[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 **)(puVar37 + 0x895d8))(ppppbVar13[3])" (parenthesized_expression "(**(code **)(puVar37 + 0x895d8))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x895d8)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x895d8)" (* "*") (cast_expression "(code **)(puVar37 + 0x895d8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x895d8)" (( "(") (binary_expression "puVar37 + 0x895d8" (identifier "puVar37") (+ "+") (number_literal "0x895d8")) () ")"))))) () ")")) (argument_list "(ppppbVar13[3])" (( "(") (subscript_expression "ppppbVar13[3]" (identifier "ppppbVar13") ([ "[") (number_literal "3") (] "]")) () ")"))))) (; ";")) (expression_statement "unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);" (assignment_expression "unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4])" (identifier "unaff_s6") (= "=") (cast_expression "(byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[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 **)(puVar37 + 0x895d8))(ppppbVar13[4])" (parenthesized_expression "(**(code **)(puVar37 + 0x895d8))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x895d8)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x895d8)" (* "*") (cast_expression "(code **)(puVar37 + 0x895d8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x895d8)" (( "(") (binary_expression "puVar37 + 0x895d8" (identifier "puVar37") (+ "+") (number_literal "0x895d8")) () ")"))))) () ")")) (argument_list "(ppppbVar13[4])" (( "(") (subscript_expression "ppppbVar13[4]" (identifier "ppppbVar13") ([ "[") (number_literal "4") (] "]")) () ")"))))) (; ";")) (expression_statement "puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);" (assignment_expression "puVar16 = (undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1)" (identifier "puVar16") (= "=") (cast_expression "(undefined1 *)\n                            (**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar37 + 0x88390))\n                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1)" (parenthesized_expression "(**(code **)(puVar37 + 0x88390))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88390)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88390)" (* "*") (cast_expression "(code **)(puVar37 + 0x88390)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88390)" (( "(") (binary_expression "puVar37 + 0x88390" (identifier "puVar37") (+ "+") (number_literal "0x88390")) () ")"))))) () ")")) (argument_list "((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1)" (( "(") (binary_expression "(byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6" (cast_expression "(byte *)((int)pppppbVar36 + 0x1d)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppbVar36 + 0x1d)" (( "(") (binary_expression "(int)pppppbVar36 + 0x1d" (cast_expression "(int)pppppbVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar36")) (+ "+") (number_literal "0x1d")) () ")"))) (+ "+") (cast_expression "(int)unaff_s6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s6"))) (, ",") (number_literal "1") () ")"))))) (; ";")) (expression_statement "puVar16[4] = 0;" (assignment_expression "puVar16[4] = 0" (subscript_expression "puVar16[4]" (identifier "puVar16") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar16[5] = 0;" (assignment_expression "puVar16[5] = 0" (subscript_expression "puVar16[5]" (identifier "puVar16") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar27 = *(uint *)(iVar23 + -0x36a0);" (assignment_expression "uVar27 = *(uint *)(iVar23 + -0x36a0)" (identifier "uVar27") (= "=") (pointer_expression "*(uint *)(iVar23 + -0x36a0)" (* "*") (cast_expression "(uint *)(iVar23 + -0x36a0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + -0x36a0)" (( "(") (binary_expression "iVar23 + -0x36a0" (identifier "iVar23") (+ "+") (number_literal "-0x36a0")) () ")"))))) (; ";")) (expression_statement "uVar7 = *(undefined1 *)(iVar23 + -0x369c);" (assignment_expression "uVar7 = *(undefined1 *)(iVar23 + -0x369c)" (identifier "uVar7") (= "=") (pointer_expression "*(undefined1 *)(iVar23 + -0x369c)" (* "*") (cast_expression "(undefined1 *)(iVar23 + -0x369c)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + -0x369c)" (( "(") (binary_expression "iVar23 + -0x369c" (identifier "iVar23") (+ "+") (number_literal "-0x369c")) () ")"))))) (; ";")) (expression_statement "uVar8 = *(undefined1 *)(iVar23 + -0x369b);" (assignment_expression "uVar8 = *(undefined1 *)(iVar23 + -0x369b)" (identifier "uVar8") (= "=") (pointer_expression "*(undefined1 *)(iVar23 + -0x369b)" (* "*") (cast_expression "(undefined1 *)(iVar23 + -0x369b)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + -0x369b)" (( "(") (binary_expression "iVar23 + -0x369b" (identifier "iVar23") (+ "+") (number_literal "-0x369b")) () ")"))))) (; ";")) (expression_statement "uVar9 = *(undefined1 *)(iVar23 + -0x369a);" (assignment_expression "uVar9 = *(undefined1 *)(iVar23 + -0x369a)" (identifier "uVar9") (= "=") (pointer_expression "*(undefined1 *)(iVar23 + -0x369a)" (* "*") (cast_expression "(undefined1 *)(iVar23 + -0x369a)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + -0x369a)" (( "(") (binary_expression "iVar23 + -0x369a" (identifier "iVar23") (+ "+") (number_literal "-0x369a")) () ")"))))) (; ";")) (expression_statement "puVar16[3] = (char)uVar12;" (assignment_expression "puVar16[3] = (char)uVar12" (subscript_expression "puVar16[3]" (identifier "puVar16") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(char)uVar12" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar12"))) (; ";")) (expression_statement "*puVar16 = (char)((uint)uVar12 >> 0x18);" (assignment_expression "*puVar16 = (char)((uint)uVar12 >> 0x18)" (pointer_expression "*puVar16" (* "*") (identifier "puVar16")) (= "=") (cast_expression "(char)((uint)uVar12 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar12 >> 0x18)" (( "(") (binary_expression "(uint)uVar12 >> 0x18" (cast_expression "(uint)uVar12" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar12")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "puVar16[1] = (char)((uint)uVar12 >> 0x10);" (assignment_expression "puVar16[1] = (char)((uint)uVar12 >> 0x10)" (subscript_expression "puVar16[1]" (identifier "puVar16") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)uVar12 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar12 >> 0x10)" (( "(") (binary_expression "(uint)uVar12 >> 0x10" (cast_expression "(uint)uVar12" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar12")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "puVar16[2] = (char)((uint)uVar12 >> 8);" (assignment_expression "puVar16[2] = (char)((uint)uVar12 >> 8)" (subscript_expression "puVar16[2]" (identifier "puVar16") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)((uint)uVar12 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar12 >> 8)" (( "(") (binary_expression "(uint)uVar12 >> 8" (cast_expression "(uint)uVar12" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar12")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "puVar16[7] = 7;" (assignment_expression "puVar16[7] = 7" (subscript_expression "puVar16[7]" (identifier "puVar16") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "7")) (; ";")) (expression_statement "puVar16[6] = 0;" (assignment_expression "puVar16[6] = 0" (subscript_expression "puVar16[6]" (identifier "puVar16") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar17 = puVar16 + 8;" (assignment_expression "puVar17 = puVar16 + 8" (identifier "puVar17") (= "=") (binary_expression "puVar16 + 8" (identifier "puVar16") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "uVar31 = (uint)puVar17 & 3;" (assignment_expression "uVar31 = (uint)puVar17 & 3" (identifier "uVar31") (= "=") (binary_expression "(uint)puVar17 & 3" (cast_expression "(uint)puVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar17")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "*(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;" (assignment_expression "*(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8" (pointer_expression "*(uint *)(puVar17 + -uVar31)" (* "*") (cast_expression "(uint *)(puVar17 + -uVar31)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -uVar31)" (( "(") (binary_expression "puVar17 + -uVar31" (identifier "puVar17") (+ "+") (unary_expression "-uVar31" (- "-") (identifier "uVar31"))) () ")")))) (= "=") (binary_expression "*(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8" (binary_expression "*(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8" (pointer_expression "*(uint *)(puVar17 + -uVar31)" (* "*") (cast_expression "(uint *)(puVar17 + -uVar31)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -uVar31)" (( "(") (binary_expression "puVar17 + -uVar31" (identifier "puVar17") (+ "+") (unary_expression "-uVar31" (- "-") (identifier "uVar31"))) () ")")))) (& "&") (binary_expression "-1 << (4 - uVar31) * 8" (number_literal "-1") (<< "<<") (binary_expression "(4 - uVar31) * 8" (parenthesized_expression "(4 - uVar31)" (( "(") (binary_expression "4 - uVar31" (number_literal "4") (- "-") (identifier "uVar31")) () ")")) (* "*") (number_literal "8")))) (| "|") (binary_expression "uVar27 >> uVar31 * 8" (identifier "uVar27") (>> ">>") (binary_expression "uVar31 * 8" (identifier "uVar31") (* "*") (number_literal "8"))))) (; ";")) (expression_statement "puVar17 = puVar16 + 0xb;" (assignment_expression "puVar17 = puVar16 + 0xb" (identifier "puVar17") (= "=") (binary_expression "puVar16 + 0xb" (identifier "puVar16") (+ "+") (number_literal "0xb"))) (; ";")) (expression_statement "uVar31 = (uint)puVar17 & 3;" (assignment_expression "uVar31 = (uint)puVar17 & 3" (identifier "uVar31") (= "=") (binary_expression "(uint)puVar17 & 3" (cast_expression "(uint)puVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar17")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "*(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8;" (assignment_expression "*(uint *)(puVar17 + -uVar31) =\n                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8" (pointer_expression "*(uint *)(puVar17 + -uVar31)" (* "*") (cast_expression "(uint *)(puVar17 + -uVar31)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -uVar31)" (( "(") (binary_expression "puVar17 + -uVar31" (identifier "puVar17") (+ "+") (unary_expression "-uVar31" (- "-") (identifier "uVar31"))) () ")")))) (= "=") (binary_expression "*(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |\n                       uVar27 << (3 - uVar31) * 8" (binary_expression "*(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8" (pointer_expression "*(uint *)(puVar17 + -uVar31)" (* "*") (cast_expression "(uint *)(puVar17 + -uVar31)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -uVar31)" (( "(") (binary_expression "puVar17 + -uVar31" (identifier "puVar17") (+ "+") (unary_expression "-uVar31" (- "-") (identifier "uVar31"))) () ")")))) (& "&") (binary_expression "0xffffffffU >> (uVar31 + 1) * 8" (number_literal "0xffffffffU") (>> ">>") (binary_expression "(uVar31 + 1) * 8" (parenthesized_expression "(uVar31 + 1)" (( "(") (binary_expression "uVar31 + 1" (identifier "uVar31") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "8")))) (| "|") (binary_expression "uVar27 << (3 - uVar31) * 8" (identifier "uVar27") (<< "<<") (binary_expression "(3 - uVar31) * 8" (parenthesized_expression "(3 - uVar31)" (( "(") (binary_expression "3 - uVar31" (number_literal "3") (- "-") (identifier "uVar31")) () ")")) (* "*") (number_literal "8"))))) (; ";")) (expression_statement "puVar16[0xc] = uVar7;" (assignment_expression "puVar16[0xc] = uVar7" (subscript_expression "puVar16[0xc]" (identifier "puVar16") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "puVar16[0xd] = uVar8;" (assignment_expression "puVar16[0xd] = uVar8" (subscript_expression "puVar16[0xd]" (identifier "puVar16") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "puVar16[0xe] = uVar9;" (assignment_expression "puVar16[0xe] = uVar9" (subscript_expression "puVar16[0xe]" (identifier "puVar16") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "puVar16[0x10] = bVar10;" (assignment_expression "puVar16[0x10] = bVar10" (subscript_expression "puVar16[0x10]" (identifier "puVar16") ([ "[") (number_literal "0x10") (] "]")) (= "=") (identifier "bVar10")) (; ";")) (expression_statement "puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);" (assignment_expression "puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18)" (subscript_expression "puVar16[0x11]" (identifier "puVar16") ([ "[") (number_literal "0x11") (] "]")) (= "=") (cast_expression "(char)((uint)pppppbVar36 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)pppppbVar36 >> 0x18)" (( "(") (binary_expression "(uint)pppppbVar36 >> 0x18" (cast_expression "(uint)pppppbVar36" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppbVar36")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);" (assignment_expression "puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10)" (subscript_expression "puVar16[0x12]" (identifier "puVar16") ([ "[") (number_literal "0x12") (] "]")) (= "=") (cast_expression "(char)((uint)pppppbVar36 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)pppppbVar36 >> 0x10)" (( "(") (binary_expression "(uint)pppppbVar36 >> 0x10" (cast_expression "(uint)pppppbVar36" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppbVar36")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);" (assignment_expression "puVar16[0x13] = (char)((uint)pppppbVar36 >> 8)" (subscript_expression "puVar16[0x13]" (identifier "puVar16") ([ "[") (number_literal "0x13") (] "]")) (= "=") (cast_expression "(char)((uint)pppppbVar36 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)pppppbVar36 >> 8)" (( "(") (binary_expression "(uint)pppppbVar36 >> 8" (cast_expression "(uint)pppppbVar36" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppbVar36")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "puVar16[0x14] = (char)pppppbVar36;" (assignment_expression "puVar16[0x14] = (char)pppppbVar36" (subscript_expression "puVar16[0x14]" (identifier "puVar16") ([ "[") (number_literal "0x14") (] "]")) (= "=") (cast_expression "(char)pppppbVar36" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "pppppbVar36"))) (; ";")) (expression_statement "pcVar38 = *(code **)(puVar37 + 0x89610);" (assignment_expression "pcVar38 = *(code **)(puVar37 + 0x89610)" (identifier "pcVar38") (= "=") (pointer_expression "*(code **)(puVar37 + 0x89610)" (* "*") (cast_expression "(code **)(puVar37 + 0x89610)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x89610)" (( "(") (binary_expression "puVar37 + 0x89610" (identifier "puVar37") (+ "+") (number_literal "0x89610")) () ")"))))) (; ";")) (expression_statement "puVar16[0xf] = cVar5 != '\0';" (assignment_expression "puVar16[0xf] = cVar5 != '\0'" (subscript_expression "puVar16[0xf]" (identifier "puVar16") ([ "[") (number_literal "0xf") (] "]")) (= "=") (binary_expression "cVar5 != '\0'" (identifier "cVar5") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) (; ";")) (expression_statement "(*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);" (call_expression "(*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36)" (parenthesized_expression "(*pcVar38)" (( "(") (pointer_expression "*pcVar38" (* "*") (identifier "pcVar38")) () ")")) (argument_list "(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36)" (( "(") (binary_expression "puVar16 + 0x15" (identifier "puVar16") (+ "+") (number_literal "0x15")) (, ",") (subscript_expression "((byte *****)local_b0)[5][3]" (subscript_expression "((byte *****)local_b0)[5]" (parenthesized_expression "((byte *****)local_b0)" (( "(") (cast_expression "(byte *****)local_b0" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_b0")) () ")")) ([ "[") (number_literal "5") (] "]")) ([ "[") (number_literal "3") (] "]")) (, ",") (identifier "pppppbVar36") () ")"))) (; ";")) (expression_statement "puVar17 = puVar16 + (int)pppppbVar36;" (assignment_expression "puVar17 = puVar16 + (int)pppppbVar36" (identifier "puVar17") (= "=") (binary_expression "puVar16 + (int)pppppbVar36" (identifier "puVar16") (+ "+") (cast_expression "(int)pppppbVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar36")))) (; ";")) (expression_statement "puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);" (assignment_expression "puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18)" (subscript_expression "puVar17[0x15]" (identifier "puVar17") ([ "[") (number_literal "0x15") (] "]")) (= "=") (cast_expression "(char)((uint)unaff_s6 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)unaff_s6 >> 0x18)" (( "(") (binary_expression "(uint)unaff_s6 >> 0x18" (cast_expression "(uint)unaff_s6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "unaff_s6")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);" (assignment_expression "puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10)" (subscript_expression "puVar17[0x16]" (identifier "puVar17") ([ "[") (number_literal "0x16") (] "]")) (= "=") (cast_expression "(char)((uint)unaff_s6 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)unaff_s6 >> 0x10)" (( "(") (binary_expression "(uint)unaff_s6 >> 0x10" (cast_expression "(uint)unaff_s6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "unaff_s6")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "puVar17[0x17] = (char)((uint)unaff_s6 >> 8);" (assignment_expression "puVar17[0x17] = (char)((uint)unaff_s6 >> 8)" (subscript_expression "puVar17[0x17]" (identifier "puVar17") ([ "[") (number_literal "0x17") (] "]")) (= "=") (cast_expression "(char)((uint)unaff_s6 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)unaff_s6 >> 8)" (( "(") (binary_expression "(uint)unaff_s6 >> 8" (cast_expression "(uint)unaff_s6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "unaff_s6")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "puVar17[0x18] = (char)unaff_s6;" (assignment_expression "puVar17[0x18] = (char)unaff_s6" (subscript_expression "puVar17[0x18]" (identifier "puVar17") ([ "[") (number_literal "0x18") (] "]")) (= "=") (cast_expression "(char)unaff_s6" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "unaff_s6"))) (; ";")) (expression_statement "(**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6);" (call_expression "(**(code **)(puVar37 + 0x89610))\n                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6)" (parenthesized_expression "(**(code **)(puVar37 + 0x89610))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x89610)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x89610)" (* "*") (cast_expression "(code **)(puVar37 + 0x89610)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x89610)" (( "(") (binary_expression "puVar37 + 0x89610" (identifier "puVar37") (+ "+") (number_literal "0x89610")) () ")"))))) () ")")) (argument_list "(puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],\n                             unaff_s6)" (( "(") (binary_expression "puVar16 + (int)((int)pppppbVar36 + 0x19)" (identifier "puVar16") (+ "+") (cast_expression "(int)((int)pppppbVar36 + 0x19)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)pppppbVar36 + 0x19)" (( "(") (binary_expression "(int)pppppbVar36 + 0x19" (cast_expression "(int)pppppbVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar36")) (+ "+") (number_literal "0x19")) () ")")))) (, ",") (subscript_expression "((byte *****)local_b0)[5][4]" (subscript_expression "((byte *****)local_b0)[5]" (parenthesized_expression "((byte *****)local_b0)" (( "(") (cast_expression "(byte *****)local_b0" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_b0")) () ")")) ([ "[") (number_literal "5") (] "]")) ([ "[") (number_literal "4") (] "]")) (, ",") (identifier "unaff_s6") () ")"))) (; ";")) (expression_statement "puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);" (assignment_expression "puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6)" (identifier "puVar17") (= "=") (binary_expression "puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6)" (identifier "puVar16") (+ "+") (cast_expression "(int)((int)pppppbVar36 + (int)unaff_s6)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)pppppbVar36 + (int)unaff_s6)" (( "(") (binary_expression "(int)pppppbVar36 + (int)unaff_s6" (cast_expression "(int)pppppbVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar36")) (+ "+") (cast_expression "(int)unaff_s6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s6"))) () ")"))))) (; ";")) (expression_statement "puVar17[0x1c] = bVar2;" (assignment_expression "puVar17[0x1c] = bVar2" (subscript_expression "puVar17[0x1c]" (identifier "puVar17") ([ "[") (number_literal "0x1c") (] "]")) (= "=") (identifier "bVar2")) (; ";")) (expression_statement "puVar17[0x19] = bVar26;" (assignment_expression "puVar17[0x19] = bVar26" (subscript_expression "puVar17[0x19]" (identifier "puVar17") ([ "[") (number_literal "0x19") (] "]")) (= "=") (identifier "bVar26")) (; ";")) (expression_statement "puVar17[0x1a] = bVar1;" (assignment_expression "puVar17[0x1a] = bVar1" (subscript_expression "puVar17[0x1a]" (identifier "puVar17") ([ "[") (number_literal "0x1a") (] "]")) (= "=") (identifier "bVar1")) (; ";")) (expression_statement "puVar17[0x1b] = bVar3;" (assignment_expression "puVar17[0x1b] = bVar3" (subscript_expression "puVar17[0x1b]" (identifier "puVar17") ([ "[") (number_literal "0x1b") (] "]")) (= "=") (identifier "bVar3")) (; ";")) (expression_statement "(**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);" (call_expression "(**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b70))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88b70)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88b70)" (* "*") (cast_expression "(code **)(puVar37 + 0x88b70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88b70)" (( "(") (binary_expression "puVar37 + 0x88b70" (identifier "puVar37") (+ "+") (number_literal "0x88b70")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,\n                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0)" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" (( "(") (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" (* "*") (cast_expression "(int *)(iVar22 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0xc)" (( "(") (binary_expression "iVar22 + 0xc" (identifier "iVar22") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (, ",") (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")) () ")")))) (, ",") (number_literal "0x62") (, ",") (identifier "puVar16") (, ",") (binary_expression "(byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6" (cast_expression "(byte *)((int)pppppbVar36 + 0x1d)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppbVar36 + 0x1d)" (( "(") (binary_expression "(int)pppppbVar36 + 0x1d" (cast_expression "(int)pppppbVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar36")) (+ "+") (number_literal "0x1d")) () ")"))) (+ "+") (cast_expression "(int)unaff_s6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s6"))) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar37 + 0x88394))(puVar16);" (call_expression "(**(code **)(puVar37 + 0x88394))(puVar16)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88394)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88394)" (* "*") (cast_expression "(code **)(puVar37 + 0x88394)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88394)" (( "(") (binary_expression "puVar37 + 0x88394" (identifier "puVar37") (+ "+") (number_literal "0x88394")) () ")"))))) () ")")) (argument_list "(puVar16)" (( "(") (identifier "puVar16") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x4030)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x4030)" (( "(") (binary_expression "iVar22 + 0x4030" (identifier "iVar22") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_000893ac;" (goto "goto") (statement_identifier "LAB_000893ac") (; ";")) (} "}"))) (goto_statement "goto LAB_00089df8;" (goto "goto") (statement_identifier "LAB_00089df8") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_00089cc8:\n            (**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);" (statement_identifier "LAB_00089cc8") (: ":") (expression_statement "(**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0);" (call_expression "(**(code **)(puVar37 + 0x88b70))\n                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b70))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88b70)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88b70)" (* "*") (cast_expression "(code **)(puVar37 + 0x88b70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88b70)" (( "(") (binary_expression "puVar37 + 0x88b70" (identifier "puVar37") (+ "+") (number_literal "0x88b70")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                       bVar26,iVar11,pbVar32,0)" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" (( "(") (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" (* "*") (cast_expression "(int *)(iVar22 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0xc)" (( "(") (binary_expression "iVar22 + 0xc" (identifier "iVar22") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (, ",") (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")) () ")")))) (, ",") (identifier "bVar26") (, ",") (identifier "iVar11") (, ",") (identifier "pbVar32") (, ",") (number_literal "0") () ")"))) (; ";"))) (if_statement "if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }" (if "if") (parenthesized_expression "((bVar26 == 0x61) && (3 < (int)pbVar32))" (( "(") (binary_expression "(bVar26 == 0x61) && (3 < (int)pbVar32)" (parenthesized_expression "(bVar26 == 0x61)" (( "(") (binary_expression "bVar26 == 0x61" (identifier "bVar26") (== "==") (number_literal "0x61")) () ")")) (&& "&&") (parenthesized_expression "(3 < (int)pbVar32)" (( "(") (binary_expression "3 < (int)pbVar32" (number_literal "3") (< "<") (cast_expression "(int)pbVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar32"))) () ")"))) () ")")) (compound_statement "{\n              local_88 = *(undefined4 *)(iVar22 + 0x25);\n              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);\n              if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n            }" ({ "{") (expression_statement "local_88 = *(undefined4 *)(iVar22 + 0x25);" (assignment_expression "local_88 = *(undefined4 *)(iVar22 + 0x25)" (identifier "local_88") (= "=") (pointer_expression "*(undefined4 *)(iVar22 + 0x25)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x25)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x25)" (( "(") (binary_expression "iVar22 + 0x25" (identifier "iVar22") (+ "+") (number_literal "0x25")) () ")"))))) (; ";")) (expression_statement "iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);" (assignment_expression "iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0)" (identifier "iVar11") (= "=") (call_expression "find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0)" (identifier "find234") (argument_list "(*(undefined4 *)(iVar22 + 0x403c),&local_90,0)" (( "(") (pointer_expression "*(undefined4 *)(iVar22 + 0x403c)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x403c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x403c)" (( "(") (binary_expression "iVar22 + 0x403c" (identifier "iVar22") (+ "+") (number_literal "0x403c")) () ")")))) (, ",") (pointer_expression "&local_90" (& "&") (identifier "local_90")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar11 != 0) {\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }" (if "if") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }" ({ "{") (if_statement "if (*(int *)(iVar11 + 0x10) == 2) {\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }" (if "if") (parenthesized_expression "(*(int *)(iVar11 + 0x10) == 2)" (( "(") (binary_expression "*(int *)(iVar11 + 0x10) == 2" (pointer_expression "*(int *)(iVar11 + 0x10)" (* "*") (cast_expression "(int *)(iVar11 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x10)" (( "(") (binary_expression "iVar11 + 0x10" (identifier "iVar11") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n                  (**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));\n                  FUN_00087608(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }" ({ "{") (expression_statement "(**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4));" (call_expression "(**(code **)(puVar37 + 0x88b74))\n                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4))" (parenthesized_expression "(**(code **)(puVar37 + 0x88b74))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88b74)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88b74)" (* "*") (cast_expression "(code **)(puVar37 + 0x88b74)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88b74)" (( "(") (binary_expression "puVar37 + 0x88b74" (identifier "puVar37") (+ "+") (number_literal "0x88b74")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar11 + 4))" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" (( "(") (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" (* "*") (cast_expression "(int *)(iVar22 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0xc)" (( "(") (binary_expression "iVar22 + 0xc" (identifier "iVar22") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(iVar11 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar11 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")")))) () ")"))) (; ";")) (expression_statement "FUN_00087608(iVar22,iVar11);" (call_expression "FUN_00087608(iVar22,iVar11)" (identifier "FUN_00087608") (argument_list "(iVar22,iVar11)" (( "(") (identifier "iVar22") (, ",") (identifier "iVar11") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x4030)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x4030)" (( "(") (binary_expression "iVar22 + 0x4030" (identifier "iVar22") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }" (else "else") (compound_statement "{\n                  *(undefined4 *)(iVar11 + 0x10) = 1;\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }" ({ "{") (expression_statement "*(undefined4 *)(iVar11 + 0x10) = 1;" (assignment_expression "*(undefined4 *)(iVar11 + 0x10) = 1" (pointer_expression "*(undefined4 *)(iVar11 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar11 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x10)" (( "(") (binary_expression "iVar11 + 0x10" (identifier "iVar11") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x4030)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x4030)" (( "(") (binary_expression "iVar22 + 0x4030" (identifier "iVar22") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")))) (goto_statement "goto LAB_000893ac;" (goto "goto") (statement_identifier "LAB_000893ac") (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }" (else "else") (compound_statement "{\n            if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }\n            if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }\n            if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }\n            uVar31 = iVar22 + 0x25U & 3;\n            uVar12 = *(undefined4 *)(iVar22 + 0x29);\n            uVar27 = iVar22 + 0x28U & 3;\n            pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);\n            local_90 = (byte ****)pppppbVar36;\n            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);\n            if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }\n            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;\n            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);\n            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);\n            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);\n            uVar31 = iVar22 + 0x31U & 3;\n            uVar27 = iVar22 + 0x34U & 3;\n            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);\n            if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }\n            if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }\n          }" ({ "{") (if_statement "if (bVar26 == 0x5c) {\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }" (if "if") (parenthesized_expression "(bVar26 == 0x5c)" (( "(") (binary_expression "bVar26 == 0x5c" (identifier "bVar26") (== "==") (number_literal "0x5c")) () ")")) (compound_statement "{\n              if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);\n              goto LAB_00089674;\n            }" ({ "{") (if_statement "if (3 < (int)pbVar32) {\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }" (if "if") (parenthesized_expression "(3 < (int)pbVar32)" (( "(") (binary_expression "3 < (int)pbVar32" (number_literal "3") (< "<") (cast_expression "(int)pbVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar32"))) () ")")) (compound_statement "{\n                pppppbVar36 = *(byte ******)(iVar22 + 0x25);\n                unaff_s6 = &local_90;\n                local_90 = (byte ****)pppppbVar36;\n                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);\n                if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                goto LAB_000893ac;\n              }" ({ "{") (expression_statement "pppppbVar36 = *(byte ******)(iVar22 + 0x25);" (assignment_expression "pppppbVar36 = *(byte ******)(iVar22 + 0x25)" (identifier "pppppbVar36") (= "=") (pointer_expression "*(byte ******)(iVar22 + 0x25)" (* "*") (cast_expression "(byte ******)(iVar22 + 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 "(iVar22 + 0x25)" (( "(") (binary_expression "iVar22 + 0x25" (identifier "iVar22") (+ "+") (number_literal "0x25")) () ")"))))) (; ";")) (expression_statement "unaff_s6 = &local_90;" (assignment_expression "unaff_s6 = &local_90" (identifier "unaff_s6") (= "=") (pointer_expression "&local_90" (& "&") (identifier "local_90"))) (; ";")) (expression_statement "local_90 = (byte ****)pppppbVar36;" (assignment_expression "local_90 = (byte ****)pppppbVar36" (identifier "local_90") (= "=") (cast_expression "(byte ****)pppppbVar36" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "pppppbVar36"))) (; ";")) (expression_statement "iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);" (assignment_expression "iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0)" (identifier "iVar23") (= "=") (call_expression "find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0)" (identifier "find234") (argument_list "(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0)" (( "(") (pointer_expression "*(undefined4 *)(iVar22 + 0x4034)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x4034)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x4034)" (( "(") (binary_expression "iVar22 + 0x4034" (identifier "iVar22") (+ "+") (number_literal "0x4034")) () ")")))) (, ",") (identifier "unaff_s6") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar23 == 0) {\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }\n                else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }" (if "if") (parenthesized_expression "(iVar23 == 0)" (( "(") (binary_expression "iVar23 == 0" (identifier "iVar23") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  local_8c = (byte ****)pppppbVar36;\n                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);\n                  if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }\n                  share_xchannel_failure(iVar22,iVar11);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }" ({ "{") (expression_statement "local_8c = (byte ****)pppppbVar36;" (assignment_expression "local_8c = (byte ****)pppppbVar36" (identifier "local_8c") (= "=") (cast_expression "(byte ****)pppppbVar36" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "pppppbVar36"))) (; ";")) (expression_statement "iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);" (assignment_expression "iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0)" (identifier "iVar11") (= "=") (call_expression "find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0)" (identifier "find234") (argument_list "(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0)" (( "(") (pointer_expression "*(undefined4 *)(iVar22 + 0x4044)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x4044)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x4044)" (( "(") (binary_expression "iVar22 + 0x4044" (identifier "iVar22") (+ "+") (number_literal "0x4044")) () ")")))) (, ",") (identifier "unaff_s6") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar11 == 0) {\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);\n                    goto LAB_00089674;\n                  }" ({ "{") (expression_statement "iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);" (assignment_expression "iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(puVar37 + 0x8844c))\n                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36)" (parenthesized_expression "(**(code **)(puVar37 + 0x8844c))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x8844c)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x8844c)" (* "*") (cast_expression "(code **)(puVar37 + 0x8844c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x8844c)" (( "(") (binary_expression "puVar37 + 0x8844c" (identifier "puVar37") (+ "+") (number_literal "0x8844c")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36)" (( "(") (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x4680" (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")")))) (+ "+") (number_literal "0x4680")) (, ",") (identifier "pppppbVar36") () ")")))) (; ";")) (goto_statement "goto LAB_00089674;" (goto "goto") (statement_identifier "LAB_00089674") (; ";")) (} "}"))) (expression_statement "share_xchannel_failure(iVar22,iVar11);" (call_expression "share_xchannel_failure(iVar22,iVar11)" (identifier "share_xchannel_failure") (argument_list "(iVar22,iVar11)" (( "(") (identifier "iVar22") (, ",") (identifier "iVar11") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x4030)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x4030)" (( "(") (binary_expression "iVar22 + 0x4030" (identifier "iVar22") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }" (else "else") (compound_statement "{\n                  iVar21 = *(int *)(iVar22 + 0xc);\n                  uVar12 = 0x5c;\nLAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);\n                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);\n                  (**(code **)(puVar37 + 0x88394))(iVar23);\n                  *(undefined4 *)(iVar22 + 0x4030) = 0;\n                }" ({ "{") (expression_statement "iVar21 = *(int *)(iVar22 + 0xc);" (assignment_expression "iVar21 = *(int *)(iVar22 + 0xc)" (identifier "iVar21") (= "=") (pointer_expression "*(int *)(iVar22 + 0xc)" (* "*") (cast_expression "(int *)(iVar22 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0xc)" (( "(") (binary_expression "iVar22 + 0xc" (identifier "iVar22") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "uVar12 = 0x5c;" (assignment_expression "uVar12 = 0x5c" (identifier "uVar12") (= "=") (number_literal "0x5c")) (; ";")) (labeled_statement "LAB_000895b4:\n                  (**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);" (statement_identifier "LAB_000895b4") (: ":") (expression_statement "(**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0);" (call_expression "(**(code **)(puVar37 + 0x88b70))\n                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b70))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88b70)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88b70)" (* "*") (cast_expression "(code **)(puVar37 + 0x88b70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88b70)" (( "(") (binary_expression "puVar37 + 0x88b70" (identifier "puVar37") (+ "+") (number_literal "0x88b70")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,\n                             iVar11,pbVar32,0)" (( "(") (pointer_expression "*(undefined4 *)(iVar21 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar21 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x14)" (( "(") (binary_expression "iVar21 + 0x14" (identifier "iVar21") (+ "+") (number_literal "0x14")) () ")")))) (, ",") (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")) () ")")))) (, ",") (identifier "uVar12") (, ",") (identifier "iVar11") (, ",") (identifier "pbVar32") (, ",") (number_literal "0") () ")"))) (; ";"))) (expression_statement "del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);" (call_expression "del234(*(undefined4 *)(iVar22 + 0x4034),iVar23)" (identifier "del234") (argument_list "(*(undefined4 *)(iVar22 + 0x4034),iVar23)" (( "(") (pointer_expression "*(undefined4 *)(iVar22 + 0x4034)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x4034)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x4034)" (( "(") (binary_expression "iVar22 + 0x4034" (identifier "iVar22") (+ "+") (number_literal "0x4034")) () ")")))) (, ",") (identifier "iVar23") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar37 + 0x88394))(iVar23);" (call_expression "(**(code **)(puVar37 + 0x88394))(iVar23)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88394)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88394)" (* "*") (cast_expression "(code **)(puVar37 + 0x88394)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88394)" (( "(") (binary_expression "puVar37 + 0x88394" (identifier "puVar37") (+ "+") (number_literal "0x88394")) () ")"))))) () ")")) (argument_list "(iVar23)" (( "(") (identifier "iVar23") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x4030)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x4030)" (( "(") (binary_expression "iVar22 + 0x4030" (identifier "iVar22") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")))) (goto_statement "goto LAB_000893ac;" (goto "goto") (statement_identifier "LAB_000893ac") (; ";")) (} "}"))) (expression_statement "iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);" (assignment_expression "iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658)" (parenthesized_expression "(**(code **)(puVar37 + 0x8844c))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x8844c)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x8844c)" (* "*") (cast_expression "(code **)(puVar37 + 0x8844c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x8844c)" (( "(") (binary_expression "puVar37 + 0x8844c" (identifier "puVar37") (+ "+") (number_literal "0x8844c")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x4658)" (( "(") (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x4658" (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")")))) (+ "+") (number_literal "0x4658")) () ")")))) (; ";")) (goto_statement "goto LAB_00089674;" (goto "goto") (statement_identifier "LAB_00089674") (; ";")) (} "}"))) (if_statement "if (0x5b < bVar26) {\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }" (if "if") (parenthesized_expression "(0x5b < bVar26)" (( "(") (binary_expression "0x5b < bVar26" (number_literal "0x5b") (< "<") (identifier "bVar26")) () ")")) (compound_statement "{\n              if (100 < bVar26) goto LAB_0008965c;\n              goto LAB_00089714;\n            }" ({ "{") (if_statement "if (100 < bVar26) goto LAB_0008965c;" (if "if") (parenthesized_expression "(100 < bVar26)" (( "(") (binary_expression "100 < bVar26" (number_literal "100") (< "<") (identifier "bVar26")) () ")")) (goto_statement "goto LAB_0008965c;" (goto "goto") (statement_identifier "LAB_0008965c") (; ";"))) (goto_statement "goto LAB_00089714;" (goto "goto") (statement_identifier "LAB_00089714") (; ";")) (} "}"))) (if_statement "if ((int)pbVar32 < 0x10) {\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }" (if "if") (parenthesized_expression "((int)pbVar32 < 0x10)" (( "(") (binary_expression "(int)pbVar32 < 0x10" (cast_expression "(int)pbVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar32")) (< "<") (number_literal "0x10")) () ")")) (compound_statement "{\n              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);\n              goto LAB_00089674;\n            }" ({ "{") (expression_statement "iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);" (assignment_expression "iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac)" (parenthesized_expression "(**(code **)(puVar37 + 0x8844c))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x8844c)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x8844c)" (* "*") (cast_expression "(code **)(puVar37 + 0x8844c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x8844c)" (( "(") (binary_expression "puVar37 + 0x8844c" (identifier "puVar37") (+ "+") (number_literal "0x8844c")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x45ac)" (( "(") (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x45ac" (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")")))) (+ "+") (number_literal "0x45ac")) () ")")))) (; ";")) (goto_statement "goto LAB_00089674;" (goto "goto") (statement_identifier "LAB_00089674") (; ";")) (} "}"))) (expression_statement "uVar31 = iVar22 + 0x25U & 3;" (assignment_expression "uVar31 = iVar22 + 0x25U & 3" (identifier "uVar31") (= "=") (binary_expression "iVar22 + 0x25U & 3" (binary_expression "iVar22 + 0x25U" (identifier "iVar22") (+ "+") (number_literal "0x25U")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "uVar12 = *(undefined4 *)(iVar22 + 0x29);" (assignment_expression "uVar12 = *(undefined4 *)(iVar22 + 0x29)" (identifier "uVar12") (= "=") (pointer_expression "*(undefined4 *)(iVar22 + 0x29)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x29)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x29)" (( "(") (binary_expression "iVar22 + 0x29" (identifier "iVar22") (+ "+") (number_literal "0x29")) () ")"))))) (; ";")) (expression_statement "uVar27 = iVar22 + 0x28U & 3;" (assignment_expression "uVar27 = iVar22 + 0x28U & 3" (identifier "uVar27") (= "=") (binary_expression "iVar22 + 0x28U & 3" (binary_expression "iVar22 + 0x28U" (identifier "iVar22") (+ "+") (number_literal "0x28U")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);" (assignment_expression "pppppbVar36 = (byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8)" (identifier "pppppbVar36") (= "=") (cast_expression "(byte *****)\n                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 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 *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8)" (( "(") (binary_expression "(*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8 |\n                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8" (binary_expression "(*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &\n                           -1 << (uVar27 + 1) * 8" (parenthesized_expression "(*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8)" (( "(") (binary_expression "*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |\n                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8" (binary_expression "*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8" (pointer_expression "*(int *)((iVar22 + 0x25U) - uVar31)" (* "*") (cast_expression "(int *)((iVar22 + 0x25U) - uVar31)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((iVar22 + 0x25U) - uVar31)" (( "(") (binary_expression "(iVar22 + 0x25U) - uVar31" (parenthesized_expression "(iVar22 + 0x25U)" (( "(") (binary_expression "iVar22 + 0x25U" (identifier "iVar22") (+ "+") (number_literal "0x25U")) () ")")) (- "-") (identifier "uVar31")) () ")")))) (<< "<<") (binary_expression "uVar31 * 8" (identifier "uVar31") (* "*") (number_literal "8"))) (| "|") (binary_expression "(uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8" (cast_expression "(uint)pppppbVar36" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppbVar36")) (& "&") (binary_expression "0xffffffffU >> (4 - uVar31) * 8" (number_literal "0xffffffffU") (>> ">>") (binary_expression "(4 - uVar31) * 8" (parenthesized_expression "(4 - uVar31)" (( "(") (binary_expression "4 - uVar31" (number_literal "4") (- "-") (identifier "uVar31")) () ")")) (* "*") (number_literal "8"))))) () ")")) (& "&") (binary_expression "-1 << (uVar27 + 1) * 8" (number_literal "-1") (<< "<<") (binary_expression "(uVar27 + 1) * 8" (parenthesized_expression "(uVar27 + 1)" (( "(") (binary_expression "uVar27 + 1" (identifier "uVar27") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "8")))) (| "|") (binary_expression "*(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8" (pointer_expression "*(uint *)((iVar22 + 0x28U) - uVar27)" (* "*") (cast_expression "(uint *)((iVar22 + 0x28U) - uVar27)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((iVar22 + 0x28U) - uVar27)" (( "(") (binary_expression "(iVar22 + 0x28U) - uVar27" (parenthesized_expression "(iVar22 + 0x28U)" (( "(") (binary_expression "iVar22 + 0x28U" (identifier "iVar22") (+ "+") (number_literal "0x28U")) () ")")) (- "-") (identifier "uVar27")) () ")")))) (>> ">>") (binary_expression "(3 - uVar27) * 8" (parenthesized_expression "(3 - uVar27)" (( "(") (binary_expression "3 - uVar27" (number_literal "3") (- "-") (identifier "uVar27")) () ")")) (* "*") (number_literal "8")))) () ")")))) (; ";")) (expression_statement "local_90 = (byte ****)pppppbVar36;" (assignment_expression "local_90 = (byte ****)pppppbVar36" (identifier "local_90") (= "=") (cast_expression "(byte ****)pppppbVar36" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "pppppbVar36"))) (; ";")) (expression_statement "iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);" (assignment_expression "iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90)" (identifier "iVar23") (= "=") (call_expression "find234(*(undefined4 *)(iVar22 + 0x4034),&local_90)" (identifier "find234") (argument_list "(*(undefined4 *)(iVar22 + 0x4034),&local_90)" (( "(") (pointer_expression "*(undefined4 *)(iVar22 + 0x4034)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x4034)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x4034)" (( "(") (binary_expression "iVar22 + 0x4034" (identifier "iVar22") (+ "+") (number_literal "0x4034")) () ")")))) (, ",") (pointer_expression "&local_90" (& "&") (identifier "local_90")) () ")")))) (; ";")) (if_statement "if (iVar23 == 0) {\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }\n            else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }" (if "if") (parenthesized_expression "(iVar23 == 0)" (( "(") (binary_expression "iVar23 == 0" (identifier "iVar23") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              local_8c = (byte ****)pppppbVar36;\n              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);\n              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;\n              ppppbVar13 = *unaff_s6;\n            }" ({ "{") (expression_statement "local_8c = (byte ****)pppppbVar36;" (assignment_expression "local_8c = (byte ****)pppppbVar36" (identifier "local_8c") (= "=") (cast_expression "(byte ****)pppppbVar36" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "pppppbVar36"))) (; ";")) (expression_statement "unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);" (assignment_expression "unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0)" (identifier "unaff_s6") (= "=") (cast_expression "(byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,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 *)(iVar22 + 0x4044),&local_90,0)" (identifier "find234") (argument_list "(*(undefined4 *)(iVar22 + 0x4044),&local_90,0)" (( "(") (pointer_expression "*(undefined4 *)(iVar22 + 0x4044)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x4044)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x4044)" (( "(") (binary_expression "iVar22 + 0x4044" (identifier "iVar22") (+ "+") (number_literal "0x4044")) () ")")))) (, ",") (pointer_expression "&local_90" (& "&") (identifier "local_90")) (, ",") (number_literal "0") () ")"))))) (; ";")) (if_statement "if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;" (if "if") (parenthesized_expression "(unaff_s6 == (byte *****)0x0)" (( "(") (binary_expression "unaff_s6 == (byte *****)0x0" (identifier "unaff_s6") (== "==") (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_0008a14c;" (goto "goto") (statement_identifier "LAB_0008a14c") (; ";"))) (expression_statement "ppppbVar13 = *unaff_s6;" (assignment_expression "ppppbVar13 = *unaff_s6" (identifier "ppppbVar13") (= "=") (pointer_expression "*unaff_s6" (* "*") (identifier "unaff_s6"))) (; ";")) (} "}")) (else_clause "else {\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }" (else "else") (compound_statement "{\n              unaff_s6 = (byte *****)0x0;\n              ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n            }" ({ "{") (expression_statement "unaff_s6 = (byte *****)0x0;" (assignment_expression "unaff_s6 = (byte *****)0x0" (identifier "unaff_s6") (= "=") (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 "ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);" (assignment_expression "ppppbVar13 = (byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" (identifier "ppppbVar13") (= "=") (cast_expression "(byte ****)\n                           (**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (call_expression "(**(code **)(puVar37 + 0x88b8c))\n                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b8c))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88b8c)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88b8c)" (* "*") (cast_expression "(code **)(puVar37 + 0x88b8c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88b8c)" (( "(") (binary_expression "puVar37 + 0x88b8c" (identifier "puVar37") (+ "+") (number_literal "0x88b8c")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" (( "(") (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" (* "*") (cast_expression "(int *)(iVar22 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0xc)" (( "(") (binary_expression "iVar22 + 0xc" (identifier "iVar22") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (, ",") (identifier "iVar22") () ")"))))) (; ";")) (} "}")))) (expression_statement "*(char *)(iVar22 + 0x2c) = (char)ppppbVar13;" (assignment_expression "*(char *)(iVar22 + 0x2c) = (char)ppppbVar13" (pointer_expression "*(char *)(iVar22 + 0x2c)" (* "*") (cast_expression "(char *)(iVar22 + 0x2c)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x2c)" (( "(") (binary_expression "iVar22 + 0x2c" (identifier "iVar22") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (cast_expression "(char)ppppbVar13" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "ppppbVar13"))) (; ";")) (expression_statement "*(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);" (assignment_expression "*(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18)" (pointer_expression "*(char *)(iVar22 + 0x29)" (* "*") (cast_expression "(char *)(iVar22 + 0x29)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x29)" (( "(") (binary_expression "iVar22 + 0x29" (identifier "iVar22") (+ "+") (number_literal "0x29")) () ")")))) (= "=") (cast_expression "(char)((uint)ppppbVar13 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)ppppbVar13 >> 0x18)" (( "(") (binary_expression "(uint)ppppbVar13 >> 0x18" (cast_expression "(uint)ppppbVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppbVar13")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "*(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);" (assignment_expression "*(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10)" (pointer_expression "*(char *)(iVar22 + 0x2a)" (* "*") (cast_expression "(char *)(iVar22 + 0x2a)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x2a)" (( "(") (binary_expression "iVar22 + 0x2a" (identifier "iVar22") (+ "+") (number_literal "0x2a")) () ")")))) (= "=") (cast_expression "(char)((uint)ppppbVar13 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)ppppbVar13 >> 0x10)" (( "(") (binary_expression "(uint)ppppbVar13 >> 0x10" (cast_expression "(uint)ppppbVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppbVar13")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "*(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);" (assignment_expression "*(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8)" (pointer_expression "*(char *)(iVar22 + 0x2b)" (* "*") (cast_expression "(char *)(iVar22 + 0x2b)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x2b)" (( "(") (binary_expression "iVar22 + 0x2b" (identifier "iVar22") (+ "+") (number_literal "0x2b")) () ")")))) (= "=") (cast_expression "(char)((uint)ppppbVar13 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)ppppbVar13 >> 8)" (( "(") (binary_expression "(uint)ppppbVar13 >> 8" (cast_expression "(uint)ppppbVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppbVar13")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "uVar31 = iVar22 + 0x31U & 3;" (assignment_expression "uVar31 = iVar22 + 0x31U & 3" (identifier "uVar31") (= "=") (binary_expression "iVar22 + 0x31U & 3" (binary_expression "iVar22 + 0x31U" (identifier "iVar22") (+ "+") (number_literal "0x31U")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "uVar27 = iVar22 + 0x34U & 3;" (assignment_expression "uVar27 = iVar22 + 0x34U & 3" (identifier "uVar27") (= "=") (binary_expression "iVar22 + 0x34U & 3" (binary_expression "iVar22 + 0x34U" (identifier "iVar22") (+ "+") (number_literal "0x34U")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);" (assignment_expression "uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8)" (identifier "uVar12") (= "=") (call_expression "FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8)" (identifier "FUN_00087b44") (argument_list "(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,\n                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8)" (( "(") (binary_expression "iVar22 + 0x4038" (identifier "iVar22") (+ "+") (number_literal "0x4038")) (, ",") (binary_expression "iVar22 + 0x403c" (identifier "iVar22") (+ "+") (number_literal "0x403c")) (, ",") (identifier "uVar12") (, ",") (identifier "ppppbVar13") (, ",") (identifier "pppppbVar36") (, ",") (number_literal "0") (, ",") (binary_expression "(*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8\n                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8" (binary_expression "(*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8" (parenthesized_expression "(*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8)" (( "(") (binary_expression "*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8" (binary_expression "*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8" (pointer_expression "*(int *)((iVar22 + 0x31U) - uVar31)" (* "*") (cast_expression "(int *)((iVar22 + 0x31U) - uVar31)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((iVar22 + 0x31U) - uVar31)" (( "(") (binary_expression "(iVar22 + 0x31U) - uVar31" (parenthesized_expression "(iVar22 + 0x31U)" (( "(") (binary_expression "iVar22 + 0x31U" (identifier "iVar22") (+ "+") (number_literal "0x31U")) () ")")) (- "-") (identifier "uVar31")) () ")")))) (<< "<<") (binary_expression "uVar31 * 8" (identifier "uVar31") (* "*") (number_literal "8"))) (| "|") (binary_expression "in_t3 & 0xffffffffU >> (4 - uVar31) * 8" (identifier "in_t3") (& "&") (binary_expression "0xffffffffU >> (4 - uVar31) * 8" (number_literal "0xffffffffU") (>> ">>") (binary_expression "(4 - uVar31) * 8" (parenthesized_expression "(4 - uVar31)" (( "(") (binary_expression "4 - uVar31" (number_literal "4") (- "-") (identifier "uVar31")) () ")")) (* "*") (number_literal "8"))))) () ")")) (& "&") (binary_expression "-1 << (uVar27 + 1) * 8" (number_literal "-1") (<< "<<") (binary_expression "(uVar27 + 1) * 8" (parenthesized_expression "(uVar27 + 1)" (( "(") (binary_expression "uVar27 + 1" (identifier "uVar27") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "8")))) (| "|") (binary_expression "*(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8" (pointer_expression "*(uint *)((iVar22 + 0x34U) - uVar27)" (* "*") (cast_expression "(uint *)((iVar22 + 0x34U) - uVar27)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((iVar22 + 0x34U) - uVar27)" (( "(") (binary_expression "(iVar22 + 0x34U) - uVar27" (parenthesized_expression "(iVar22 + 0x34U)" (( "(") (binary_expression "iVar22 + 0x34U" (identifier "iVar22") (+ "+") (number_literal "0x34U")) () ")")) (- "-") (identifier "uVar27")) () ")")))) (>> ">>") (binary_expression "(3 - uVar27) * 8" (parenthesized_expression "(3 - uVar27)" (( "(") (binary_expression "3 - uVar27" (number_literal "3") (- "-") (identifier "uVar27")) () ")")) (* "*") (number_literal "8")))) () ")")))) (; ";")) (if_statement "if (iVar23 != 0) {\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }" (if "if") (parenthesized_expression "(iVar23 != 0)" (( "(") (binary_expression "iVar23 != 0" (identifier "iVar23") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              iVar21 = *(int *)(iVar22 + 0xc);\n              uVar12 = 0x5b;\n              goto LAB_000895b4;\n            }" ({ "{") (expression_statement "iVar21 = *(int *)(iVar22 + 0xc);" (assignment_expression "iVar21 = *(int *)(iVar22 + 0xc)" (identifier "iVar21") (= "=") (pointer_expression "*(int *)(iVar22 + 0xc)" (* "*") (cast_expression "(int *)(iVar22 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0xc)" (( "(") (binary_expression "iVar22 + 0xc" (identifier "iVar22") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "uVar12 = 0x5b;" (assignment_expression "uVar12 = 0x5b" (identifier "uVar12") (= "=") (number_literal "0x5b")) (; ";")) (goto_statement "goto LAB_000895b4;" (goto "goto") (statement_identifier "LAB_000895b4") (; ";")) (} "}"))) (if_statement "if (unaff_s6 != (byte *****)0x0) {\n              if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }" (if "if") (parenthesized_expression "(unaff_s6 != (byte *****)0x0)" (( "(") (binary_expression "unaff_s6 != (byte *****)0x0" (identifier "unaff_s6") (!= "!=") (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 *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }\n              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);\n              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);\n              *(undefined4 *)(iVar22 + 0x4030) = 0;\n              goto LAB_000893ac;\n            }" ({ "{") (if_statement "if (*(uint *)(iVar22 + 0x2d) < 0x100) {\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }" (if "if") (parenthesized_expression "(*(uint *)(iVar22 + 0x2d) < 0x100)" (( "(") (binary_expression "*(uint *)(iVar22 + 0x2d) < 0x100" (pointer_expression "*(uint *)(iVar22 + 0x2d)" (* "*") (cast_expression "(uint *)(iVar22 + 0x2d)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x2d)" (( "(") (binary_expression "iVar22 + 0x2d" (identifier "iVar22") (+ "+") (number_literal "0x2d")) () ")")))) (< "<") (number_literal "0x100")) () ")")) (compound_statement "{\n                iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));\n                goto LAB_00089674;\n              }" ({ "{") (expression_statement "iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));" (assignment_expression "iVar11 = (**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d))" (identifier "iVar11") (= "=") (call_expression "(**(code **)(puVar37 + 0x8844c))\n                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d))" (parenthesized_expression "(**(code **)(puVar37 + 0x8844c))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x8844c)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x8844c)" (* "*") (cast_expression "(code **)(puVar37 + 0x8844c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x8844c)" (( "(") (binary_expression "puVar37 + 0x8844c" (identifier "puVar37") (+ "+") (number_literal "0x8844c")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d))" (( "(") (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x4614" (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")")))) (+ "+") (number_literal "0x4614")) (, ",") (pointer_expression "*(uint *)(iVar22 + 0x2d)" (* "*") (cast_expression "(uint *)(iVar22 + 0x2d)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x2d)" (( "(") (binary_expression "iVar22 + 0x2d" (identifier "iVar22") (+ "+") (number_literal "0x2d")) () ")")))) () ")")))) (; ";")) (goto_statement "goto LAB_00089674;" (goto "goto") (statement_identifier "LAB_00089674") (; ";")) (} "}"))) (expression_statement "share_xchannel_confirmation(iVar22,unaff_s6,uVar12);" (call_expression "share_xchannel_confirmation(iVar22,unaff_s6,uVar12)" (identifier "share_xchannel_confirmation") (argument_list "(iVar22,unaff_s6,uVar12)" (( "(") (identifier "iVar22") (, ",") (identifier "unaff_s6") (, ",") (identifier "uVar12") () ")"))) (; ";")) (expression_statement "FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);" (call_expression "FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6)" (identifier "FUN_00087ab8") (argument_list "(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6)" (( "(") (pointer_expression "*(undefined4 *)(iVar22 + 0x4040)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x4040)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x4040)" (( "(") (binary_expression "iVar22 + 0x4040" (identifier "iVar22") (+ "+") (number_literal "0x4040")) () ")")))) (, ",") (binary_expression "iVar22 + 0x4044" (identifier "iVar22") (+ "+") (number_literal "0x4044")) (, ",") (identifier "unaff_s6") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x4030)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x4030)" (( "(") (binary_expression "iVar22 + 0x4030" (identifier "iVar22") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_000893ac;" (goto "goto") (statement_identifier "LAB_000893ac") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_000893a4:\n          *(undefined4 *)(iVar22 + 0x4030) = 0;" (statement_identifier "LAB_000893a4") (: ":") (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x4030)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x4030)" (( "(") (binary_expression "iVar22 + 0x4030" (identifier "iVar22") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (number_literal "0")) (; ";"))) (goto_statement "goto LAB_000893ac;" (goto "goto") (statement_identifier "LAB_000893ac") (; ";")) (} "}"))) (expression_statement "iVar23 = *(int *)(puVar37 + 0x8839c);" (assignment_expression "iVar23 = *(int *)(puVar37 + 0x8839c)" (identifier "iVar23") (= "=") (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")"))))) (; ";")) (if_statement "if (3 < (int)pbVar32) {\n          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n          if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);\n          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);\n          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);\n          unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);\n          uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);\n          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);\n          *pbVar18 = (byte)((uint)uVar12 >> 0x10);\n          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);\n          *pbVar30 = (byte)uVar12;\n          (**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }" (if "if") (parenthesized_expression "(3 < (int)pbVar32)" (( "(") (binary_expression "3 < (int)pbVar32" (number_literal "3") (< "<") (cast_expression "(int)pbVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar32"))) () ")")) (compound_statement "{\n          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);\n          if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }\n          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);\n          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);\n          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);\n          unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);\n          uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);\n          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);\n          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);\n          *pbVar18 = (byte)((uint)uVar12 >> 0x10);\n          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);\n          *pbVar30 = (byte)uVar12;\n          (**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);\n          *(undefined4 *)(iVar22 + 0x4030) = 0;\n          goto LAB_000893ac;\n        }" ({ "{") (expression_statement "iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);" (assignment_expression "iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90)" (identifier "iVar23") (= "=") (call_expression "FUN_000879c0(iVar11,pbVar32,0,&local_90)" (identifier "FUN_000879c0") (argument_list "(iVar11,pbVar32,0,&local_90)" (( "(") (identifier "iVar11") (, ",") (identifier "pbVar32") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_90" (& "&") (identifier "local_90")) () ")")))) (; ";")) (if_statement "if (((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)) {\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }" (if "if") (parenthesized_expression "(((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90))" (( "(") (binary_expression "((iVar23 == 0) || ((int)local_90 < 0)) ||\n             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)" (parenthesized_expression "((iVar23 == 0) || ((int)local_90 < 0))" (( "(") (binary_expression "(iVar23 == 0) || ((int)local_90 < 0)" (parenthesized_expression "(iVar23 == 0)" (( "(") (binary_expression "iVar23 == 0" (identifier "iVar23") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((int)local_90 < 0)" (( "(") (binary_expression "(int)local_90 < 0" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (< "<") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90)" (( "(") (comma_expression "pppppbVar36 = (byte *****)((int)local_90 + iVar11),\n             (int)(unaff_s6 + -4) <= (int)local_90" (assignment_expression "pppppbVar36 = (byte *****)((int)local_90 + iVar11)" (identifier "pppppbVar36") (= "=") (cast_expression "(byte *****)((int)local_90 + iVar11)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)local_90 + iVar11)" (( "(") (binary_expression "(int)local_90 + iVar11" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (identifier "iVar11")) () ")")))) (, ",") (binary_expression "(int)(unaff_s6 + -4) <= (int)local_90" (cast_expression "(int)(unaff_s6 + -4)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(unaff_s6 + -4)" (( "(") (binary_expression "unaff_s6 + -4" (identifier "unaff_s6") (+ "+") (number_literal "-4")) () ")"))) (<= "<=") (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")))) () ")"))) () ")")) (compound_statement "{\n            iVar23 = *(int *)(puVar37 + 0x8839c);\n            goto LAB_00089d50;\n          }" ({ "{") (expression_statement "iVar23 = *(int *)(puVar37 + 0x8839c);" (assignment_expression "iVar23 = *(int *)(puVar37 + 0x8839c)" (identifier "iVar23") (= "=") (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")"))))) (; ";")) (goto_statement "goto LAB_00089d50;" (goto "goto") (statement_identifier "LAB_00089d50") (; ";")) (} "}"))) (expression_statement "pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);" (assignment_expression "pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26)" (identifier "pbVar18") (= "=") (cast_expression "(byte *)((int)local_90 + iVar22 + 0x26)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + iVar22 + 0x26)" (( "(") (binary_expression "(int)local_90 + iVar22 + 0x26" (binary_expression "(int)local_90 + iVar22" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (identifier "iVar22")) (+ "+") (number_literal "0x26")) () ")")))) (; ";")) (expression_statement "local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);" (assignment_expression "local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27)" (identifier "local_b0") (= "=") (cast_expression "(byte ****)((int)local_90 + iVar22 + 0x27)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)local_90 + iVar22 + 0x27)" (( "(") (binary_expression "(int)local_90 + iVar22 + 0x27" (binary_expression "(int)local_90 + iVar22" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (identifier "iVar22")) (+ "+") (number_literal "0x27")) () ")")))) (; ";")) (expression_statement "pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);" (assignment_expression "pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28)" (identifier "pbVar30") (= "=") (cast_expression "(byte *)((int)local_90 + iVar22 + 0x28)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_90 + iVar22 + 0x28)" (( "(") (binary_expression "(int)local_90 + iVar22 + 0x28" (binary_expression "(int)local_90 + iVar22" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (identifier "iVar22")) (+ "+") (number_literal "0x28")) () ")")))) (; ";")) (expression_statement "unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8);" (assignment_expression "unaff_s6 = (byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8)" (identifier "unaff_s6") (= "=") (cast_expression "(byte *****)\n                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 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 *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8)" (( "(") (binary_expression "(uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |\n                     (uint)*(byte *)local_b0 << 8" (binary_expression "(uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30" (binary_expression "(uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10" (binary_expression "(uint)*(byte *)pppppbVar36 << 0x18" (binary_expression "(uint)*(byte *)pppppbVar36" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)pppppbVar36" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppppbVar36"))) (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "(uint)*pbVar18 << 0x10" (binary_expression "(uint)*pbVar18" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar18")) (<< "<<") (number_literal "0x10"))) (| "|") (binary_expression "(uint)*pbVar30" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar30"))) (| "|") (binary_expression "(uint)*(byte *)local_b0 << 8" (binary_expression "(uint)*(byte *)local_b0" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)local_b0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_b0"))) (<< "<<") (number_literal "8"))) () ")")))) (; ";")) (expression_statement "uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);" (assignment_expression "uVar12 = (**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" (identifier "uVar12") (= "=") (call_expression "(**(code **)(puVar37 + 0x88b8c))\n                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b8c))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88b8c)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88b8c)" (* "*") (cast_expression "(code **)(puVar37 + 0x88b8c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88b8c)" (( "(") (binary_expression "puVar37 + 0x88b8c" (identifier "puVar37") (+ "+") (number_literal "0x88b8c")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22)" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" (( "(") (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" (* "*") (cast_expression "(int *)(iVar22 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0xc)" (( "(") (binary_expression "iVar22 + 0xc" (identifier "iVar22") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (, ",") (identifier "iVar22") () ")")))) (; ";")) (expression_statement "FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);" (call_expression "FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8)" (identifier "FUN_00087b44") (argument_list "(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,\n                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8)" (( "(") (binary_expression "iVar22 + 0x4038" (identifier "iVar22") (+ "+") (number_literal "0x4038")) (, ",") (binary_expression "iVar22 + 0x403c" (identifier "iVar22") (+ "+") (number_literal "0x403c")) (, ",") (identifier "unaff_s6") (, ",") (identifier "uVar12") (, ",") (number_literal "0") (, ",") (number_literal "3") (, ",") (binary_expression "(uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8" (binary_expression "(uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar36 + 0xb)" (binary_expression "(uint)*(byte *)(pppppbVar36 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10" (binary_expression "(uint)*(byte *)(pppppbVar36 + 2) << 0x18" (binary_expression "(uint)*(byte *)(pppppbVar36 + 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(pppppbVar36 + 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppbVar36 + 2)" (( "(") (binary_expression "pppppbVar36 + 2" (identifier "pppppbVar36") (+ "+") (number_literal "2")) () ")")))) (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "(uint)*(byte *)((int)pppppbVar36 + 9) << 0x10" (binary_expression "(uint)*(byte *)((int)pppppbVar36 + 9)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)((int)pppppbVar36 + 9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppbVar36 + 9)" (( "(") (binary_expression "(int)pppppbVar36 + 9" (cast_expression "(int)pppppbVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar36")) (+ "+") (number_literal "9")) () ")")))) (<< "<<") (number_literal "0x10"))) (| "|") (binary_expression "(uint)*(byte *)((int)pppppbVar36 + 0xb)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)((int)pppppbVar36 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppbVar36 + 0xb)" (( "(") (binary_expression "(int)pppppbVar36 + 0xb" (cast_expression "(int)pppppbVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar36")) (+ "+") (number_literal "0xb")) () ")"))))) (| "|") (binary_expression "(uint)*(byte *)((int)pppppbVar36 + 10) << 8" (binary_expression "(uint)*(byte *)((int)pppppbVar36 + 10)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)((int)pppppbVar36 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppbVar36 + 10)" (( "(") (binary_expression "(int)pppppbVar36 + 10" (cast_expression "(int)pppppbVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar36")) (+ "+") (number_literal "10")) () ")")))) (<< "<<") (number_literal "8"))) () ")"))) (; ";")) (expression_statement "*(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);" (assignment_expression "*(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18)" (pointer_expression "*(byte *)pppppbVar36" (* "*") (cast_expression "(byte *)pppppbVar36" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppppbVar36"))) (= "=") (call_expression "(byte)((uint)uVar12 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)uVar12 >> 0x18)" (( "(") (binary_expression "(uint)uVar12 >> 0x18" (cast_expression "(uint)uVar12" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar12")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "*pbVar18 = (byte)((uint)uVar12 >> 0x10);" (assignment_expression "*pbVar18 = (byte)((uint)uVar12 >> 0x10)" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (= "=") (call_expression "(byte)((uint)uVar12 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)uVar12 >> 0x10)" (( "(") (binary_expression "(uint)uVar12 >> 0x10" (cast_expression "(uint)uVar12" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar12")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "*(byte *)local_b0 = (byte)((uint)uVar12 >> 8);" (assignment_expression "*(byte *)local_b0 = (byte)((uint)uVar12 >> 8)" (pointer_expression "*(byte *)local_b0" (* "*") (cast_expression "(byte *)local_b0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_b0"))) (= "=") (call_expression "(byte)((uint)uVar12 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)uVar12 >> 8)" (( "(") (binary_expression "(uint)uVar12 >> 8" (cast_expression "(uint)uVar12" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar12")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "*pbVar30 = (byte)uVar12;" (assignment_expression "*pbVar30 = (byte)uVar12" (pointer_expression "*pbVar30" (* "*") (identifier "pbVar30")) (= "=") (cast_expression "(byte)uVar12" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar12"))) (; ";")) (expression_statement "(**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0);" (call_expression "(**(code **)(puVar37 + 0x88b70))\n                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b70))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88b70)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88b70)" (* "*") (cast_expression "(code **)(puVar37 + 0x88b70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88b70)" (( "(") (binary_expression "puVar37 + 0x88b70" (identifier "puVar37") (+ "+") (number_literal "0x88b70")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a\n                     ,iVar11,pbVar32,0)" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" (( "(") (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" (* "*") (cast_expression "(int *)(iVar22 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0xc)" (( "(") (binary_expression "iVar22 + 0xc" (identifier "iVar22") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (, ",") (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")) () ")")))) (, ",") (number_literal "0x5a") (, ",") (identifier "iVar11") (, ",") (identifier "pbVar32") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x4030)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x4030)" (( "(") (binary_expression "iVar22 + 0x4030" (identifier "iVar22") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_000893ac;" (goto "goto") (statement_identifier "LAB_000893ac") (; ";")) (} "}"))) (labeled_statement "LAB_00089d50:\n        iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);" (statement_identifier "LAB_00089d50") (: ":") (expression_statement "iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);" (assignment_expression "iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c)" (parenthesized_expression "(**(code **)(puVar37 + 0x8844c))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x8844c)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x8844c)" (* "*") (cast_expression "(code **)(puVar37 + 0x8844c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x8844c)" (( "(") (binary_expression "puVar37 + 0x8844c" (identifier "puVar37") (+ "+") (number_literal "0x8844c")) () ")"))))) () ")")) (argument_list "(iVar23 + 0x458c)" (( "(") (binary_expression "iVar23 + 0x458c" (identifier "iVar23") (+ "+") (number_literal "0x458c")) () ")")))) (; ";"))) (labeled_statement "LAB_00089674:\n        while (iVar11 == 0) {\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }" (statement_identifier "LAB_00089674") (: ":") (while_statement "while (iVar11 == 0) {\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }" (while "while") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          (**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);\nLAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);\n        }" ({ "{") (expression_statement "(**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);" (call_expression "(**(code **)(puVar37 + 0x88ff4))\n                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870)" (parenthesized_expression "(**(code **)(puVar37 + 0x88ff4))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88ff4)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88ff4)" (* "*") (cast_expression "(code **)(puVar37 + 0x88ff4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88ff4)" (( "(") (binary_expression "puVar37 + 0x88ff4" (identifier "puVar37") (+ "+") (number_literal "0x88ff4")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6\n                     ,*(int *)(puVar37 + 0x8839c) + 0x4870)" (( "(") (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x4768" (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")")))) (+ "+") (number_literal "0x4768")) (, ",") (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x43dc" (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")")))) (+ "+") (number_literal "0x43dc")) (, ",") (number_literal "0x6e6") (, ",") (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x4870" (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")")))) (+ "+") (number_literal "0x4870")) () ")"))) (; ";")) (labeled_statement "LAB_0008a14c:\n          iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);" (statement_identifier "LAB_0008a14c") (: ":") (expression_statement "iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);" (assignment_expression "iVar11 = (**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(puVar37 + 0x8844c))\n                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36)" (parenthesized_expression "(**(code **)(puVar37 + 0x8844c))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x8844c)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x8844c)" (* "*") (cast_expression "(code **)(puVar37 + 0x8844c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x8844c)" (( "(") (binary_expression "puVar37 + 0x8844c" (identifier "puVar37") (+ "+") (number_literal "0x8844c")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36)" (( "(") (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x45d8" (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")")))) (+ "+") (number_literal "0x45d8")) (, ",") (identifier "pppppbVar36") () ")")))) (; ";"))) (} "}")))) (expression_statement "FUN_000887e0(iVar22,iVar11);" (call_expression "FUN_000887e0(iVar22,iVar11)" (identifier "FUN_000887e0") (argument_list "(iVar22,iVar11)" (( "(") (identifier "iVar22") (, ",") (identifier "iVar11") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar37 + 0x88394))(iVar11);" (call_expression "(**(code **)(puVar37 + 0x88394))(iVar11)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88394)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88394)" (* "*") (cast_expression "(code **)(puVar37 + 0x88394)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88394)" (( "(") (binary_expression "puVar37 + 0x88394" (identifier "puVar37") (+ "+") (number_literal "0x88394")) () ")"))))) () ")")) (argument_list "(iVar11)" (( "(") (identifier "iVar11") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x4030)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x4030)" (( "(") (binary_expression "iVar22 + 0x4030" (identifier "iVar22") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_000893ac;" (goto "goto") (statement_identifier "LAB_000893ac") (; ";")) (} "}"))) (expression_statement "uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11);" (assignment_expression "uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11)" (identifier "uVar12") (= "=") (call_expression "(**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11)" (parenthesized_expression "(**(code **)(puVar37 + 0x8844c))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x8844c)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x8844c)" (* "*") (cast_expression "(code **)(puVar37 + 0x8844c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x8844c)" (( "(") (binary_expression "puVar37 + 0x8844c" (identifier "puVar37") (+ "+") (number_literal "0x8844c")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11)" (( "(") (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x4544" (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")")))) (+ "+") (number_literal "0x4544")) (, ",") (identifier "iVar11") () ")")))) (; ";")) (labeled_statement "LAB_000890b4:\n      FUN_000887e0(iVar22,uVar12);" (statement_identifier "LAB_000890b4") (: ":") (expression_statement "FUN_000887e0(iVar22,uVar12);" (call_expression "FUN_000887e0(iVar22,uVar12)" (identifier "FUN_000887e0") (argument_list "(iVar22,uVar12)" (( "(") (identifier "iVar22") (, ",") (identifier "uVar12") () ")"))) (; ";"))) (expression_statement "(**(code **)(puVar37 + 0x88394))(uVar12);" (call_expression "(**(code **)(puVar37 + 0x88394))(uVar12)" (parenthesized_expression "(**(code **)(puVar37 + 0x88394))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88394)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88394)" (* "*") (cast_expression "(code **)(puVar37 + 0x88394)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88394)" (( "(") (binary_expression "puVar37 + 0x88394" (identifier "puVar37") (+ "+") (number_literal "0x88394")) () ")"))))) () ")")) (argument_list "(uVar12)" (( "(") (identifier "uVar12") () ")"))) (; ";")) (expression_statement "unaff_s5 = pbVar28;" (assignment_expression "unaff_s5 = pbVar28" (identifier "unaff_s5") (= "=") (identifier "pbVar28")) (; ";")) (labeled_statement "LAB_000890e0:\n      *(undefined4 *)(iVar22 + 0x10) = 0;" (statement_identifier "LAB_000890e0") (: ":") (expression_statement "*(undefined4 *)(iVar22 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x10)" (( "(") (binary_expression "iVar22 + 0x10" (identifier "iVar22") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "0")) (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (} "}"))) (expression_statement "uVar31 = *(uint *)(iVar22 + 0x4030);" (assignment_expression "uVar31 = *(uint *)(iVar22 + 0x4030)" (identifier "uVar31") (= "=") (pointer_expression "*(uint *)(iVar22 + 0x4030)" (* "*") (cast_expression "(uint *)(iVar22 + 0x4030)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x4030)" (( "(") (binary_expression "iVar22 + 0x4030" (identifier "iVar22") (+ "+") (number_literal "0x4030")) () ")"))))) (; ";")) (expression_statement "bVar26 = *pbVar28;" (assignment_expression "bVar26 = *pbVar28" (identifier "bVar26") (= "=") (pointer_expression "*pbVar28" (* "*") (identifier "pbVar28"))) (; ";")) (expression_statement "pbVar34 = pbVar32 + -1;" (assignment_expression "pbVar34 = pbVar32 + -1" (identifier "pbVar34") (= "=") (binary_expression "pbVar32 + -1" (identifier "pbVar32") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "pbVar30 = pbVar28 + 1;" (assignment_expression "pbVar30 = pbVar28 + 1" (identifier "pbVar30") (= "=") (binary_expression "pbVar28 + 1" (identifier "pbVar28") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (bVar26 == 10) {\nLAB_0008942c:\n    pbVar28 = pbVar30;\n    if (0x2d < uVar31) {\n      pppppbVar36 = (byte *****)(iVar22 + 0x20);\n      iVar11 = (**(code **)(puVar37 + 0x894d4))\n                         (pppppbVar36,*(int *)(puVar37 + 0x8839c) + 0x4890,0x2e);\n      if (iVar11 == 0) {\n        if ((0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')) {\n          *(uint *)(iVar22 + 0x4030) = uVar27;\n          uVar31 = uVar27;\n        }\n        (**(code **)(puVar37 + 0x88b68))\n                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36);\n        *(undefined4 *)(iVar22 + 0x18) = 1;\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n    }\n    uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44f4);\n    goto LAB_000890b4;\n  }" (if "if") (parenthesized_expression "(bVar26 == 10)" (( "(") (binary_expression "bVar26 == 10" (identifier "bVar26") (== "==") (number_literal "10")) () ")")) (compound_statement "{\nLAB_0008942c:\n    pbVar28 = pbVar30;\n    if (0x2d < uVar31) {\n      pppppbVar36 = (byte *****)(iVar22 + 0x20);\n      iVar11 = (**(code **)(puVar37 + 0x894d4))\n                         (pppppbVar36,*(int *)(puVar37 + 0x8839c) + 0x4890,0x2e);\n      if (iVar11 == 0) {\n        if ((0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')) {\n          *(uint *)(iVar22 + 0x4030) = uVar27;\n          uVar31 = uVar27;\n        }\n        (**(code **)(puVar37 + 0x88b68))\n                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36);\n        *(undefined4 *)(iVar22 + 0x18) = 1;\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n    }\n    uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44f4);\n    goto LAB_000890b4;\n  }" ({ "{") (labeled_statement "LAB_0008942c:\n    pbVar28 = pbVar30;" (statement_identifier "LAB_0008942c") (: ":") (expression_statement "pbVar28 = pbVar30;" (assignment_expression "pbVar28 = pbVar30" (identifier "pbVar28") (= "=") (identifier "pbVar30")) (; ";"))) (if_statement "if (0x2d < uVar31) {\n      pppppbVar36 = (byte *****)(iVar22 + 0x20);\n      iVar11 = (**(code **)(puVar37 + 0x894d4))\n                         (pppppbVar36,*(int *)(puVar37 + 0x8839c) + 0x4890,0x2e);\n      if (iVar11 == 0) {\n        if ((0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')) {\n          *(uint *)(iVar22 + 0x4030) = uVar27;\n          uVar31 = uVar27;\n        }\n        (**(code **)(puVar37 + 0x88b68))\n                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36);\n        *(undefined4 *)(iVar22 + 0x18) = 1;\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n    }" (if "if") (parenthesized_expression "(0x2d < uVar31)" (( "(") (binary_expression "0x2d < uVar31" (number_literal "0x2d") (< "<") (identifier "uVar31")) () ")")) (compound_statement "{\n      pppppbVar36 = (byte *****)(iVar22 + 0x20);\n      iVar11 = (**(code **)(puVar37 + 0x894d4))\n                         (pppppbVar36,*(int *)(puVar37 + 0x8839c) + 0x4890,0x2e);\n      if (iVar11 == 0) {\n        if ((0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')) {\n          *(uint *)(iVar22 + 0x4030) = uVar27;\n          uVar31 = uVar27;\n        }\n        (**(code **)(puVar37 + 0x88b68))\n                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36);\n        *(undefined4 *)(iVar22 + 0x18) = 1;\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }\n    }" ({ "{") (expression_statement "pppppbVar36 = (byte *****)(iVar22 + 0x20);" (assignment_expression "pppppbVar36 = (byte *****)(iVar22 + 0x20)" (identifier "pppppbVar36") (= "=") (cast_expression "(byte *****)(iVar22 + 0x20)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(iVar22 + 0x20)" (( "(") (binary_expression "iVar22 + 0x20" (identifier "iVar22") (+ "+") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "iVar11 = (**(code **)(puVar37 + 0x894d4))\n                         (pppppbVar36,*(int *)(puVar37 + 0x8839c) + 0x4890,0x2e);" (assignment_expression "iVar11 = (**(code **)(puVar37 + 0x894d4))\n                         (pppppbVar36,*(int *)(puVar37 + 0x8839c) + 0x4890,0x2e)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(puVar37 + 0x894d4))\n                         (pppppbVar36,*(int *)(puVar37 + 0x8839c) + 0x4890,0x2e)" (parenthesized_expression "(**(code **)(puVar37 + 0x894d4))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x894d4)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x894d4)" (* "*") (cast_expression "(code **)(puVar37 + 0x894d4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x894d4)" (( "(") (binary_expression "puVar37 + 0x894d4" (identifier "puVar37") (+ "+") (number_literal "0x894d4")) () ")"))))) () ")")) (argument_list "(pppppbVar36,*(int *)(puVar37 + 0x8839c) + 0x4890,0x2e)" (( "(") (identifier "pppppbVar36") (, ",") (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x4890" (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")")))) (+ "+") (number_literal "0x4890")) (, ",") (number_literal "0x2e") () ")")))) (; ";")) (if_statement "if (iVar11 == 0) {\n        if ((0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')) {\n          *(uint *)(iVar22 + 0x4030) = uVar27;\n          uVar31 = uVar27;\n        }\n        (**(code **)(puVar37 + 0x88b68))\n                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36);\n        *(undefined4 *)(iVar22 + 0x18) = 1;\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if ((0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')) {\n          *(uint *)(iVar22 + 0x4030) = uVar27;\n          uVar31 = uVar27;\n        }\n        (**(code **)(puVar37 + 0x88b68))\n                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36);\n        *(undefined4 *)(iVar22 + 0x18) = 1;\n        *(undefined4 *)(iVar22 + 0x4030) = 0;\n        goto LAB_000893ac;\n      }" ({ "{") (if_statement "if ((0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')) {\n          *(uint *)(iVar22 + 0x4030) = uVar27;\n          uVar31 = uVar27;\n        }" (if "if") (parenthesized_expression "((0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r'))" (( "(") (binary_expression "(0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')" (parenthesized_expression "(0 < (int)uVar31)" (( "(") (binary_expression "0 < (int)uVar31" (number_literal "0") (< "<") (cast_expression "(int)uVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar31"))) () ")")) (&& "&&") (parenthesized_expression "(uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')" (( "(") (comma_expression "uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r'" (assignment_expression "uVar27 = uVar31 - 1" (identifier "uVar27") (= "=") (binary_expression "uVar31 - 1" (identifier "uVar31") (- "-") (number_literal "1"))) (, ",") (binary_expression "*(char *)(iVar22 + uVar27 + 0x20) == '\r'" (pointer_expression "*(char *)(iVar22 + uVar27 + 0x20)" (* "*") (cast_expression "(char *)(iVar22 + uVar27 + 0x20)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + uVar27 + 0x20)" (( "(") (binary_expression "iVar22 + uVar27 + 0x20" (binary_expression "iVar22 + uVar27" (identifier "iVar22") (+ "+") (identifier "uVar27")) (+ "+") (number_literal "0x20")) () ")")))) (== "==") (char_literal "'\r'" (' "'") (escape_sequence "\r") (' "'")))) () ")"))) () ")")) (compound_statement "{\n          *(uint *)(iVar22 + 0x4030) = uVar27;\n          uVar31 = uVar27;\n        }" ({ "{") (expression_statement "*(uint *)(iVar22 + 0x4030) = uVar27;" (assignment_expression "*(uint *)(iVar22 + 0x4030) = uVar27" (pointer_expression "*(uint *)(iVar22 + 0x4030)" (* "*") (cast_expression "(uint *)(iVar22 + 0x4030)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x4030)" (( "(") (binary_expression "iVar22 + 0x4030" (identifier "iVar22") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (identifier "uVar27")) (; ";")) (expression_statement "uVar31 = uVar27;" (assignment_expression "uVar31 = uVar27" (identifier "uVar31") (= "=") (identifier "uVar27")) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar37 + 0x88b68))\n                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36);" (call_expression "(**(code **)(puVar37 + 0x88b68))\n                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36)" (parenthesized_expression "(**(code **)(puVar37 + 0x88b68))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x88b68)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x88b68)" (* "*") (cast_expression "(code **)(puVar37 + 0x88b68)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x88b68)" (( "(") (binary_expression "puVar37 + 0x88b68" (identifier "puVar37") (+ "+") (number_literal "0x88b68")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),\n                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36)" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar22 + 0xc) + 0x14)" (( "(") (binary_expression "*(int *)(iVar22 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar22 + 0xc)" (* "*") (cast_expression "(int *)(iVar22 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0xc)" (( "(") (binary_expression "iVar22 + 0xc" (identifier "iVar22") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (, ",") (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")) () ")")))) (, ",") (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x4524" (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")")))) (+ "+") (number_literal "0x4524")) (, ",") (identifier "uVar31") (, ",") (identifier "pppppbVar36") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar22 + 0x18) = 1;" (assignment_expression "*(undefined4 *)(iVar22 + 0x18) = 1" (pointer_expression "*(undefined4 *)(iVar22 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x18)" (( "(") (binary_expression "iVar22 + 0x18" (identifier "iVar22") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(iVar22 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x4030)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 0x4030)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x4030)" (( "(") (binary_expression "iVar22 + 0x4030" (identifier "iVar22") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_000893ac;" (goto "goto") (statement_identifier "LAB_000893ac") (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44f4);" (assignment_expression "uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44f4)" (identifier "uVar12") (= "=") (call_expression "(**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44f4)" (parenthesized_expression "(**(code **)(puVar37 + 0x8844c))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x8844c)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x8844c)" (* "*") (cast_expression "(code **)(puVar37 + 0x8844c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x8844c)" (( "(") (binary_expression "puVar37 + 0x8844c" (identifier "puVar37") (+ "+") (number_literal "0x8844c")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x44f4)" (( "(") (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x44f4" (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")")))) (+ "+") (number_literal "0x44f4")) () ")")))) (; ";")) (goto_statement "goto LAB_000890b4;" (goto "goto") (statement_identifier "LAB_000890b4") (; ";")) (} "}"))) (expression_statement "pbVar18 = pbVar32;" (assignment_expression "pbVar18 = pbVar32" (identifier "pbVar18") (= "=") (identifier "pbVar32")) (; ";")) (if_statement "if (uVar31 < 0x4010) {\n    uVar31 = uVar31 + 1;\n    pbVar29 = pbVar28 + (int)pbVar34;\n    pbVar34 = pbVar32;\n    unaff_s5 = pbVar30;\n    do {\n      *(uint *)(iVar22 + 0x4030) = uVar31;\n      *(byte *)(iVar22 + uVar31 + 0x1f) = bVar26;\n      if (pbVar28 + (int)pbVar32 == unaff_s5) goto LAB_00089094;\n      pbVar34 = pbVar29 + -(int)unaff_s5;\n      pbVar30 = unaff_s5 + 1;\n      bVar26 = *unaff_s5;\n      if (bVar26 == 10) goto LAB_0008942c;\n      uVar31 = uVar31 + 1;\n      pbVar18 = pbVar34;\n      unaff_s5 = pbVar30;\n    } while (uVar31 != 0x4011);\n  }" (if "if") (parenthesized_expression "(uVar31 < 0x4010)" (( "(") (binary_expression "uVar31 < 0x4010" (identifier "uVar31") (< "<") (number_literal "0x4010")) () ")")) (compound_statement "{\n    uVar31 = uVar31 + 1;\n    pbVar29 = pbVar28 + (int)pbVar34;\n    pbVar34 = pbVar32;\n    unaff_s5 = pbVar30;\n    do {\n      *(uint *)(iVar22 + 0x4030) = uVar31;\n      *(byte *)(iVar22 + uVar31 + 0x1f) = bVar26;\n      if (pbVar28 + (int)pbVar32 == unaff_s5) goto LAB_00089094;\n      pbVar34 = pbVar29 + -(int)unaff_s5;\n      pbVar30 = unaff_s5 + 1;\n      bVar26 = *unaff_s5;\n      if (bVar26 == 10) goto LAB_0008942c;\n      uVar31 = uVar31 + 1;\n      pbVar18 = pbVar34;\n      unaff_s5 = pbVar30;\n    } while (uVar31 != 0x4011);\n  }" ({ "{") (expression_statement "uVar31 = uVar31 + 1;" (assignment_expression "uVar31 = uVar31 + 1" (identifier "uVar31") (= "=") (binary_expression "uVar31 + 1" (identifier "uVar31") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar29 = pbVar28 + (int)pbVar34;" (assignment_expression "pbVar29 = pbVar28 + (int)pbVar34" (identifier "pbVar29") (= "=") (binary_expression "pbVar28 + (int)pbVar34" (identifier "pbVar28") (+ "+") (cast_expression "(int)pbVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar34")))) (; ";")) (expression_statement "pbVar34 = pbVar32;" (assignment_expression "pbVar34 = pbVar32" (identifier "pbVar34") (= "=") (identifier "pbVar32")) (; ";")) (expression_statement "unaff_s5 = pbVar30;" (assignment_expression "unaff_s5 = pbVar30" (identifier "unaff_s5") (= "=") (identifier "pbVar30")) (; ";")) (do_statement "do {\n      *(uint *)(iVar22 + 0x4030) = uVar31;\n      *(byte *)(iVar22 + uVar31 + 0x1f) = bVar26;\n      if (pbVar28 + (int)pbVar32 == unaff_s5) goto LAB_00089094;\n      pbVar34 = pbVar29 + -(int)unaff_s5;\n      pbVar30 = unaff_s5 + 1;\n      bVar26 = *unaff_s5;\n      if (bVar26 == 10) goto LAB_0008942c;\n      uVar31 = uVar31 + 1;\n      pbVar18 = pbVar34;\n      unaff_s5 = pbVar30;\n    } while (uVar31 != 0x4011);" (do "do") (compound_statement "{\n      *(uint *)(iVar22 + 0x4030) = uVar31;\n      *(byte *)(iVar22 + uVar31 + 0x1f) = bVar26;\n      if (pbVar28 + (int)pbVar32 == unaff_s5) goto LAB_00089094;\n      pbVar34 = pbVar29 + -(int)unaff_s5;\n      pbVar30 = unaff_s5 + 1;\n      bVar26 = *unaff_s5;\n      if (bVar26 == 10) goto LAB_0008942c;\n      uVar31 = uVar31 + 1;\n      pbVar18 = pbVar34;\n      unaff_s5 = pbVar30;\n    }" ({ "{") (expression_statement "*(uint *)(iVar22 + 0x4030) = uVar31;" (assignment_expression "*(uint *)(iVar22 + 0x4030) = uVar31" (pointer_expression "*(uint *)(iVar22 + 0x4030)" (* "*") (cast_expression "(uint *)(iVar22 + 0x4030)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x4030)" (( "(") (binary_expression "iVar22 + 0x4030" (identifier "iVar22") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (identifier "uVar31")) (; ";")) (expression_statement "*(byte *)(iVar22 + uVar31 + 0x1f) = bVar26;" (assignment_expression "*(byte *)(iVar22 + uVar31 + 0x1f) = bVar26" (pointer_expression "*(byte *)(iVar22 + uVar31 + 0x1f)" (* "*") (cast_expression "(byte *)(iVar22 + uVar31 + 0x1f)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + uVar31 + 0x1f)" (( "(") (binary_expression "iVar22 + uVar31 + 0x1f" (binary_expression "iVar22 + uVar31" (identifier "iVar22") (+ "+") (identifier "uVar31")) (+ "+") (number_literal "0x1f")) () ")")))) (= "=") (identifier "bVar26")) (; ";")) (if_statement "if (pbVar28 + (int)pbVar32 == unaff_s5) goto LAB_00089094;" (if "if") (parenthesized_expression "(pbVar28 + (int)pbVar32 == unaff_s5)" (( "(") (binary_expression "pbVar28 + (int)pbVar32 == unaff_s5" (binary_expression "pbVar28 + (int)pbVar32" (identifier "pbVar28") (+ "+") (cast_expression "(int)pbVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar32"))) (== "==") (identifier "unaff_s5")) () ")")) (goto_statement "goto LAB_00089094;" (goto "goto") (statement_identifier "LAB_00089094") (; ";"))) (expression_statement "pbVar34 = pbVar29 + -(int)unaff_s5;" (assignment_expression "pbVar34 = pbVar29 + -(int)unaff_s5" (identifier "pbVar34") (= "=") (binary_expression "pbVar29 + -(int)unaff_s5" (identifier "pbVar29") (+ "+") (unary_expression "-(int)unaff_s5" (- "-") (cast_expression "(int)unaff_s5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s5"))))) (; ";")) (expression_statement "pbVar30 = unaff_s5 + 1;" (assignment_expression "pbVar30 = unaff_s5 + 1" (identifier "pbVar30") (= "=") (binary_expression "unaff_s5 + 1" (identifier "unaff_s5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar26 = *unaff_s5;" (assignment_expression "bVar26 = *unaff_s5" (identifier "bVar26") (= "=") (pointer_expression "*unaff_s5" (* "*") (identifier "unaff_s5"))) (; ";")) (if_statement "if (bVar26 == 10) goto LAB_0008942c;" (if "if") (parenthesized_expression "(bVar26 == 10)" (( "(") (binary_expression "bVar26 == 10" (identifier "bVar26") (== "==") (number_literal "10")) () ")")) (goto_statement "goto LAB_0008942c;" (goto "goto") (statement_identifier "LAB_0008942c") (; ";"))) (expression_statement "uVar31 = uVar31 + 1;" (assignment_expression "uVar31 = uVar31 + 1" (identifier "uVar31") (= "=") (binary_expression "uVar31 + 1" (identifier "uVar31") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar18 = pbVar34;" (assignment_expression "pbVar18 = pbVar34" (identifier "pbVar18") (= "=") (identifier "pbVar34")) (; ";")) (expression_statement "unaff_s5 = pbVar30;" (assignment_expression "unaff_s5 = pbVar30" (identifier "unaff_s5") (= "=") (identifier "pbVar30")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar31 != 0x4011)" (( "(") (binary_expression "uVar31 != 0x4011" (identifier "uVar31") (!= "!=") (number_literal "0x4011")) () ")")) (; ";")) (} "}"))) (expression_statement "uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44d4);" (assignment_expression "uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44d4)" (identifier "uVar12") (= "=") (call_expression "(**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44d4)" (parenthesized_expression "(**(code **)(puVar37 + 0x8844c))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x8844c)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x8844c)" (* "*") (cast_expression "(code **)(puVar37 + 0x8844c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x8844c)" (( "(") (binary_expression "puVar37 + 0x8844c" (identifier "puVar37") (+ "+") (number_literal "0x8844c")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar37 + 0x8839c) + 0x44d4)" (( "(") (binary_expression "*(int *)(puVar37 + 0x8839c) + 0x44d4" (pointer_expression "*(int *)(puVar37 + 0x8839c)" (* "*") (cast_expression "(int *)(puVar37 + 0x8839c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x8839c)" (( "(") (binary_expression "puVar37 + 0x8839c" (identifier "puVar37") (+ "+") (number_literal "0x8839c")) () ")")))) (+ "+") (number_literal "0x44d4")) () ")")))) (; ";")) (expression_statement "pbVar34 = pbVar18;" (assignment_expression "pbVar34 = pbVar18" (identifier "pbVar34") (= "=") (identifier "pbVar18")) (; ";")) (expression_statement "pbVar28 = pbVar30;" (assignment_expression "pbVar28 = pbVar30" (identifier "pbVar28") (= "=") (identifier "pbVar30")) (; ";")) (goto_statement "goto LAB_000890b4;" (goto "goto") (statement_identifier "LAB_000890b4") (; ";")) (} "}")))

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

void function_1(type_1 *cs,type_2 *xc)

{
  char var_18;
  type_3 bVar2;
  type_3 bVar3;
  type_3 bVar4;
  type_4 var_36;
  type_4 var_31;
  type_4 uVar7;
  type_4 uVar8;
  type_4 uVar9;
  type_5 uVar10;
  type_5 uVar11;
  type_5 uVar12;
  bool bVar13;
  type_6 **pppVar14;
  type_6 **pppVar15;
  type_3 *var_4;
  char *var_46;
  type_7 upstream_id;
  void *var_39;
  type_6 *server_id;
  type_8 *psVar18;
  type_9 ppsVar19;
  int var_29;
  int var_30;
  type_5 *var_32;
  type_5 *var_33;
  type_10 *var_37;
  type_2 *var_40;
  type_11 *var_23;
  type_11 *var_24;
  type_12 *psVar26;
  type_13 *var_27;
  int var_2;
  int var_9;
  type_1 *cs_00;
  type_3 var_11;
  type_14 *t;
  type_12 *var_25;
  type_7 var_35;
  type_3 *var_7;
  type_3 *var_47;
  type_13 uVar35;
  type_7 var_34;
  type_7 var_43;
  type_15 *var_15;
  type_4 *var_14;
  type_1 *psVar39;
  type_3 *var_10;
  type_3 *pbVar41;
  type_3 *var_8;
  type_3 *pbVar42;
  type_1 *var_17;
  type_1 *psVar43;
  type_4 *var_19;
  type_1 *psVar45;
  type_4 *var_20;
  type_15 *var_3;
  type_16 *pcVar48;
  int *piVar49;
  type_1 *var_21;
  type_1 *var_13;
  type_1 *psStack_8c;
  type_9 ppsStack_88;
  type_6 *ppStack_68;
  int var_5;
  type_2 *psStack_60;
  type_1 *psStack_5c;
  type_15 *puStack_58;
  type_4 id [4];
  
  psVar45 = (type_1 *)PTR___stack_chk_guard_00112630;
  id = (type_4  [4])xc->server_id;
  var_7 = &DAT_00000061;
  var_4 = id;
  var_2 = *(int *)PTR___stack_chk_guard_00112630;
  (*(type_16 *)PTR_ssh_send_packet_from_downstream_00111acc)(cs->parent->ssh,cs->id);
  xc->live = 0;
  cs_00 = cs;
  var_1(cs,xc);
  if (var_2 == *(int *)psVar45) {
    return;
  }
  var_3 = PTR___stack_chk_fail_001122c8;
  (*(type_16 *)PTR___stack_chk_fail_001122c8)();
  var_2 = cs_00->crLine;
  piVar49 = *(int **)(var_3 + 0x896d4);
  puStack_58 = (type_15 *)psVar45;
  var_5 = *piVar49;
  var_10 = var_4;
  psStack_60 = xc;
  psStack_5c = cs;
  if (var_2 != 0x709) {
    if (0x709 < var_2) {
      if (var_2 == 0x72e) goto LAB_000893ac;
      if (var_2 != 0x73b) goto LAB_000890e0;
      goto LAB_00088fd4;
    }
    if (var_2 != 0) goto LAB_000890e0;
    cs_00->recvlen = 0;
  }
  if (var_4 == (type_3 *)0x0) {
LAB_00089094:
    cs_00->crLine = 0x709;
LAB_000890e4:
    do {
      if (var_5 == *piVar49) {
        return;
      }
      (**(type_16 **)(var_3 + 0x8936c))();
      var_7 = var_8;
LAB_00089df8:
      ppStack_68 = var_21->fn;
      var_6
                ((type_1 *)&cs_00->sock,100,&ppStack_68,4,(type_10 *)0x0,
                 (type_10 *)0xc);
      (**(type_16 **)(var_3 + 0x88394))(var_17);
      cs_00->recvlen = 0;
LAB_000893ac:
      var_4 = var_7 + (int)var_10;
      var_8 = var_7;
      do {
        var_10 = var_4 + (-1 - (int)var_8);
        if (var_8 == var_4) {
          cs_00->crLine = 0x72e;
          goto LAB_000890e4;
        }
        var_2 = cs_00->recvlen;
        var_7 = var_8 + 1;
        var_9 = var_2 + 1;
        var_11 = *var_8;
        var_43 = (type_7)var_11;
        cs_00->recvlen = var_9;
        cs_00->recvbuf[var_2] = var_11;
        var_8 = var_7;
      } while (var_9 < 4);
      var_2 = (**(type_16 **)(var_3 + 0x884fc))(*(int *)cs_00->recvbuf + 4);
      cs_00->curr_packetlen = var_2;
      if ((type_5 *)(var_2 + -5) < &DAT_0000400c) {
        var_17 = (type_1 *)cs_00->recvlen;
        while (var_8 = var_7, (int)var_17 < var_2) {
LAB_00088fd4:
          if (var_10 == (type_3 *)0x0) {
            cs_00->crLine = 0x73b;
            var_10 = (type_3 *)0x0;
            goto LAB_000890e4;
          }
          var_2 = cs_00->recvlen;
          var_10 = var_10 + -1;
          var_11 = *var_7;
          var_7 = var_7 + 1;
          var_17 = (type_1 *)(var_2 + 1);
          cs_00->recvlen = (int)var_17;
          cs_00->recvbuf[var_2] = var_11;
          var_2 = cs_00->curr_packetlen;
        }
        var_11 = cs_00->recvbuf[4];
        var_14 = cs_00->recvbuf + 5;
        var_33 = (type_5 *)((int)&var_17[-1].globreq_head + 3);
        if (var_11 != 0x5a) {
          if (var_11 < 0x5b) {
            if (var_11 != 2) {
              if (2 < var_11) {
                if (var_11 == 4) goto LAB_00089714;
                if (var_11 != 0x50) goto LAB_0008965c;
                var_2 = *(int *)(var_3 + 0x8839c);
                psVar39 = psVar45;
                if ((int)var_33 < 4) goto LAB_000896fc;
                psVar39 = (type_1 *)(*(int *)(var_3 + 0x88acc) + 0x79c0);
                var_2 = var_12(var_14,(int)var_33,(char **)&var_13,(int *)0x0);
                psVar43 = var_13;
                if ((var_2 == 0) || (var_13 == (type_1 *)0x0))
                goto LAB_000896f8;
                var_2 = (**(type_16 **)(var_3 + 0x8953c))
                                   (var_13,*(int *)(var_3 + 0x8839c) + -0x30e8);
                if (var_2 != 0) {
                  var_2 = (**(type_16 **)(var_3 + 0x8953c))
                                     (psVar43,*(int *)(var_3 + 0x8839c) + -0x317c);
                  pcVar48 = *(type_16 **)(var_3 + 0x88394);
                  psVar45 = psVar39;
                  if (var_2 == 0) {
                    (*pcVar48)(psVar43);
                    var_2 = var_12(var_14,(int)var_33,(char **)0x0,(int *)&var_13);
                    psVar43 = var_13;
                    if (((var_2 != 0) && (-1 < (int)var_13)) &&
                       (var_15 = (type_15 *)((int)&var_13->fn + 1),
                       (int)var_13 < (int)var_33)) {
                      var_21 = (type_1 *)(var_14 + (int)var_13);
                      var_9 = (int)var_33 - (int)var_15;
                      var_18 = *(char *)&var_21->fn;
                      if ((var_9 < 4) ||
                         (var_2 = var_12(var_14 + (int)var_15,var_9,(char **)0x0,
                                                   (int *)&var_13), var_2 == 0)) {
                        var_2 = *(int *)(var_3 + 0x8839c);
                        if ((int)psVar43 < (int)&var_17[-1].globreq_head) {
                          if (var_9 >= 4) goto LAB_000892a4;
LAB_00089eec:
                          uVar35 = 0x5a7;
                          goto LAB_00089ef0;
                        }
                      }
                      else {
                        psVar43 = (type_1 *)(var_15 + (int)var_13);
                        var_2 = *(int *)(var_3 + 0x8839c);
                        if (-1 < (int)psVar43) {
                          pcVar48 = *(type_16 **)(var_3 + 0x8844c);
                          if ((int)&var_17[-1].globreq_head <= (int)psVar43) goto LAB_00089700;
LAB_000892a4:
                          var_2 = var_12(var_14 + (int)var_15,var_9,
                                                   (char **)&var_13,(int *)0x0);
                          psVar45 = var_13;
                          if ((var_2 == 0) ||
                             (psVar39 = var_13, var_13 == (type_1 *)0x0))
                          goto LAB_00089eec;
                          var_19 = var_14 + (int)psVar43;
                          var_11 = *var_19;
                          bVar2 = var_19[1];
                          bVar3 = var_19[3];
                          bVar4 = var_19[2];
                          var_13 = (type_1 *)
                                       (**(type_16 **)(var_3 + 0x883c0))(var_13);
                          psStack_8c = (type_1 *)
                                       ((type_7)var_11 << 0x18 | (type_7)bVar3 | (type_7)bVar2 << 0x10 |
                                       (type_7)bVar4 << 8);
                          var_17 = (type_1 *)
                                     var_16(cs_00->forwardings,&var_13,(type_17)0x0);
                          (**(type_16 **)(var_3 + 0x88394))(var_13);
                          if (var_17 == (type_1 *)0x0) {
                            pcVar48 = *(type_16 **)(var_3 + 0x88394);
                            if (var_18 != '\0') {
                              var_6
                                        ((type_1 *)&cs_00->sock,0x52,
                                         (void *)(*(int *)(var_3 + 0x8839c) + -0x4be4),0,
                                         (type_10 *)0x0,(type_10 *)0xc);
                              goto LAB_00089394;
                            }
                          }
                          else {
                            var_18 = *(char *)&var_21->fn;
                            *(type_5 *)&var_21->fn = 1;
                            if (var_18 == '\0') {
                              var_2 = *(int *)(var_3 + 0x8839c) + 0x44b4;
                            }
                            else {
                              var_2 = 0;
                            }
                            (**(type_16 **)(var_3 + 0x88b70))
                                      (cs_00->parent->ssh,cs_00->id,0x50,var_14,var_33,var_2);
                            (**(type_16 **)(var_3 + 0x88b88))(cs_00->parent->ssh,cs_00);
LAB_00089394:
                            pcVar48 = *(type_16 **)(var_3 + 0x88394);
                          }
                          (*pcVar48)(psVar45);
                          goto LAB_000893a4;
                        }
                      }
                      goto LAB_000896fc;
                    }
                  }
                  else {
LAB_00089f10:
                    (*pcVar48)();
                    var_2 = var_12(var_14,(int)var_33,(char **)0x0,(int *)&var_13);
                    psVar39 = psVar45;
                    if (((var_2 != 0) && (-1 < (int)var_13)) &&
                       ((int)var_13 < (int)var_33)) {
                      if (var_14[(int)var_13] == '\0') goto LAB_000893a4;
                      var_6
                                ((type_1 *)&cs_00->sock,0x52,
                                 (void *)(*(int *)(var_3 + 0x8839c) + -0x4be4),0,
                                 (type_10 *)0x0,(type_10 *)0xc);
                      cs_00->recvlen = 0;
                      goto LAB_000893ac;
                    }
                  }
LAB_000896f8:
                  var_2 = *(int *)(var_3 + 0x8839c);
                  goto LAB_000896fc;
                }
                (**(type_16 **)(var_3 + 0x88394))(psVar43);
                var_2 = var_12(var_14,(int)var_33,(char **)0x0,(int *)&var_13);
                psVar45 = var_13;
                if (((var_2 == 0) || ((int)var_13 < 0)) ||
                   (var_15 = (type_15 *)((int)&var_13->fn + 1),
                   (int)var_33 <= (int)var_13)) goto LAB_000896f8;
                var_19 = var_14 + (int)var_13;
                var_9 = (int)var_33 - (int)var_15;
                var_21 = (type_1 *)(type_7)*var_19;
                if ((var_9 < 4) ||
                   (var_2 = var_12(var_14 + (int)var_15,var_9,(char **)0x0,
                                             (int *)&var_13), var_2 == 0)) {
                  var_2 = *(int *)(var_3 + 0x8839c);
                  if ((int)psVar45 < (int)&var_17[-1].globreq_head) {
                    if (var_9 >= 4) goto LAB_0008a05c;
LAB_0008a304:
                    uVar35 = 0x55e;
LAB_00089ef0:
                    pcVar48 = *(type_16 **)(var_3 + 0x88ff4);
                    (*pcVar48)(*(int *)(var_3 + 0x8839c) + 0x457c,
                               *(int *)(var_3 + 0x8839c) + 0x43dc,uVar35,
                               *(int *)(var_3 + 0x8839c) + 0x4870);
                    psVar45 = psVar39;
                    goto LAB_00089f10;
                  }
LAB_000896fc:
                  pcVar48 = *(type_16 **)(var_3 + 0x8844c);
                }
                else {
                  psVar45 = (type_1 *)(var_15 + (int)var_13);
                  var_2 = *(int *)(var_3 + 0x8839c);
                  if ((int)psVar45 < 0) goto LAB_000896fc;
                  pcVar48 = *(type_16 **)(var_3 + 0x8844c);
                  if ((int)psVar45 < (int)&var_17[-1].globreq_head) {
LAB_0008a05c:
                    var_2 = var_12(var_14 + (int)var_15,var_9,(char **)&var_13,
                                             (int *)0x0);
                    psVar43 = var_13;
                    if ((var_2 == 0) ||
                       (var_17 = var_13, var_13 == (type_1 *)0x0))
                    goto LAB_0008a304;
                    var_20 = var_14 + (int)psVar45;
                    psVar45 = (type_1 *)
                              ((type_7)*var_20 << 0x18 | (type_7)var_20[3] | (type_7)var_20[1] << 0x10
                              | (type_7)var_20[2] << 8);
                    var_2 = (**(type_16 **)(var_3 + 0x88ba0))
                                       (cs_00->parent->ssh,var_13,psVar45,cs_00);
                    if (var_2 == 0) {
                      if (var_21 != (type_1 *)0x0) {
                        var_6
                                  ((type_1 *)&cs_00->sock,0x52,
                                   (void *)(*(int *)(var_3 + 0x8839c) + -0x4be4),0,
                                   (type_10 *)0x0,(type_10 *)0xc);
                      }
                    }
                    else {
                      var_11 = *var_19;
                      *var_19 = 1;
                      if (var_11 == 0) {
                        var_2 = *(int *)(var_3 + 0x8839c) + 0x44b4;
                      }
                      else {
                        var_2 = 0;
                      }
                      (**(type_16 **)(var_3 + 0x88b70))
                                (cs_00->parent->ssh,cs_00->id,0x50,var_14,var_33,var_2);
                      var_23 = (type_11 *)(**(type_16 **)(var_3 + 0x88390))(1,0xc);
                      var_46 = (char *)(**(type_16 **)(var_3 + 0x883c0))(psVar43);
                      t = cs_00->forwardings;
                      var_23->host = var_46;
                      var_23->port = (int)psVar45;
                      var_23->active = 0;
                      var_24 = (type_11 *)var_22(t,var_23);
                      if (var_23 == var_24) {
                        (**(type_16 **)(var_3 + 0x88b88))(cs_00->parent->ssh,cs_00);
                        psVar26 = (type_12 *)(**(type_16 **)(var_3 + 0x88390))(1,0x10);
                        var_25 = cs_00->globreq_tail;
                        psVar26->next = (type_12 *)0x0;
                        if (var_25 == (type_12 *)0x0) {
                          cs_00->globreq_head = psVar26;
                        }
                        else {
                          var_25->next = psVar26;
                        }
                        psVar26->fwd = var_23;
                        psVar26->type = 0;
                        psVar26->want_reply = (int)var_21;
                      }
                      else {
                        (**(type_16 **)(var_3 + 0x88394))(var_23);
                        (**(type_16 **)(var_3 + 0x88b88))(cs_00->parent->ssh,cs_00);
                      }
                    }
                    (**(type_16 **)(var_3 + 0x88394))(psVar43);
                    cs_00->recvlen = 0;
                    var_17 = psVar43;
                    goto LAB_000893ac;
                  }
                }
LAB_00089700:
                var_46 = (char *)(*pcVar48)(var_2 + 0x455c);
                psVar45 = psVar39;
                goto LAB_00089674;
              }
              if (var_11 != 1) {
LAB_0008965c:
                var_46 = (char *)(**(type_16 **)(var_3 + 0x8844c))
                                            (*(int *)(var_3 + 0x8839c) + 0x474c,var_11);
                goto LAB_00089674;
              }
              (*(*cs_00->sock)->close)(cs_00->sock);
              cs_00->sock = (type_9)0x0;
              var_26(cs_00);
              cs_00->recvlen = 0;
              goto LAB_000893ac;
            }
LAB_00089714:
            var_32 = (type_5 *)((int)&var_17[-1].forwardings + 3);
            if ((var_11 == 0x62) &&
               (psVar45 = *(type_1 **)(var_3 + 0x88acc), 3 < (int)var_32)) {
              psVar45 = (type_1 *)(psVar45[1].recvbuf + 0x394c);
              var_2 = var_12(cs_00->recvbuf + 9,(int)var_32,(char **)&var_13,
                                       (int *)0x0);
              psVar39 = var_13;
              if ((var_2 != 0) && (var_13 != (type_1 *)0x0)) {
                var_21 = var_13;
                var_2 = (**(type_16 **)(var_3 + 0x8953c))
                                   (var_13,*(int *)(var_3 + 0x8839c) + -0x363c);
                if ((var_2 == 0) &&
                   (var_2 = (**(type_16 **)(var_3 + 0x888c4))(cs_00->parent->ssh), var_2 == 0)) {
                  ppsVar19 = *(type_9 *)(cs_00->recvbuf + 5);
                  (**(type_16 **)(var_3 + 0x88394))(psVar39);
                  ppsStack_88 = ppsVar19;
                  var_27 = (type_13 *)
                            var_16(cs_00->channels_by_server,&var_13,(type_17)0x0);
                  if (var_27 == (type_13 *)0x0) {
                    pcVar48 = *(type_16 **)(var_3 + 0x8844c);
                    var_2 = *(int *)(var_3 + 0x8839c) + 0x46b8;
LAB_0008a3a0:
                    var_46 = (char *)(*pcVar48)(var_2,ppsVar19);
                    var_28(cs_00,var_46);
                    (**(type_16 **)(var_3 + 0x88394))(var_46);
                    cs_00->recvlen = 0;
                  }
                  else {
                    ppStack_68 = (type_6 *)*var_27;
                    var_6
                              ((type_1 *)&cs_00->sock,100,&ppStack_68,4,
                               (type_10 *)0x0,(type_10 *)0xc);
                    cs_00->recvlen = 0;
                  }
                  goto LAB_000893ac;
                }
                var_2 = *(int *)(var_3 + 0x8839c);
                var_9 = (**(type_16 **)(var_3 + 0x8953c))(psVar39,var_2 + -0x36a0);
                if (var_9 != 0) {
                  (**(type_16 **)(var_3 + 0x88394))(psVar39);
                  var_21 = psVar39;
                  goto LAB_00089cc8;
                }
                ppsVar19 = *(type_9 *)(cs_00->recvbuf + 5);
                (**(type_16 **)(var_3 + 0x88394))(psVar39);
                ppsStack_88 = ppsVar19;
                var_21 = (type_1 *)
                             var_16(cs_00->channels_by_server,&var_13,(type_17)0x0);
                if (var_21 == (type_1 *)0x0) {
                  pcVar48 = *(type_16 **)(var_3 + 0x8844c);
                  var_2 = *(int *)(var_3 + 0x8839c) + 0x46f0;
                  goto LAB_0008a3a0;
                }
                if ((int)var_33 < 0x11) {
                  var_46 = (char *)(**(type_16 **)(var_3 + 0x8844c))
                                              (*(int *)(var_3 + 0x8839c) + 0x4724);
                  goto LAB_00089674;
                }
                var_36 = cs_00->recvbuf[0x14];
                var_32 = (type_5 *)((int)&var_17[-1].channels_by_server + 2);
                var_31 = cs_00->recvbuf[0x15];
                if ((int)var_32 < 4) {
                  var_9 = (**(type_16 **)(var_3 + 0x88b90))(0);
                  (**(type_16 **)(var_3 + 0x88394))(0);
LAB_0008a36c:
                  psVar39 = (type_1 *)0xffffffff;
                }
                else {
                  var_9 = var_12(cs_00->recvbuf + 0x16,(int)var_32,(char **)&var_13,
                                           (int *)0x0);
                  psVar39 = var_13;
                  if (var_9 == 0) {
                    psVar39 = (type_1 *)0x0;
                  }
                  var_9 = (**(type_16 **)(var_3 + 0x88b90))(psVar39);
                  (**(type_16 **)(var_3 + 0x88394))(psVar39);
                  var_29 = var_12(cs_00->recvbuf + 0x16,(int)var_32,(char **)0x0,
                                           (int *)&var_13);
                  psVar39 = var_13;
                  if (var_29 == 0) goto LAB_0008a36c;
                }
                var_19 = (type_4 *)((int)&psVar39->crLine + 1);
                var_29 = (int)var_33 - (int)var_19;
                var_17 = (type_1 *)0x0;
                if (var_29 < 4) {
LAB_00089ec4:
                  psVar39 = (type_1 *)0xffffffff;
                }
                else {
                  var_30 = var_12(var_14 + (int)var_19,var_29,(char **)&var_13,
                                           (int *)0x0);
                  var_17 = var_13;
                  if (var_30 == 0) {
                    var_17 = (type_1 *)0x0;
                  }
                  var_29 = var_12(var_14 + (int)var_19,var_29,(char **)0x0,
                                           (int *)&var_13);
                  psVar39 = var_13;
                  if (var_29 == 0) goto LAB_00089ec4;
                }
                if ((int)var_33 <= (int)(var_19 + (int)psVar39 + 3)) {
                  var_46 = (char *)(**(type_16 **)(var_3 + 0x8844c))
                                              (*(int *)(var_3 + 0x8839c) + 0x4724);
                  (**(type_16 **)(var_3 + 0x88394))(var_17);
                  goto LAB_00089674;
                }
                var_14 = var_14 + (int)(var_19 + (int)psVar39);
                if (-1 < var_9) {
                  pcVar48 = *(type_16 **)(var_3 + 0x88b94);
                  uVar7 = *var_14;
                  bVar13 = var_31 != '\0';
                  var_31 = var_14[1];
                  uVar8 = var_14[3];
                  uVar9 = var_14[2];
                  var_21->got_verstring = var_9;
                  var_29 = (*pcVar48)(var_17,var_21->recvbuf);
                  pcVar48 = *(type_16 **)(var_3 + 0x88394);
                  var_21->curr_packetlen = var_29;
                  (*pcVar48)(var_17);
                  var_9 = (**(type_16 **)(var_3 + 0x88b98))
                                     (cs_00->parent->ssh,var_9,cs_00,var_21);
                  var_21->sent_verstring = var_9;
                  *(type_7 *)(var_21->recvbuf + 4) = (type_7)bVar13;
                  psVar45 = (type_1 *)
                            (**(type_16 **)(var_3 + 0x895d8))(*(type_13 *)(var_9 + 0xc));
                  var_17 = (type_1 *)
                             (**(type_16 **)(var_3 + 0x895d8))(*(type_13 *)(var_9 + 0x10));
                  var_14 = (type_4 *)((int)&psVar45->curr_packetlen + 1) + (int)var_17;
                  var_32 = (type_5 *)(**(type_16 **)(var_3 + 0x88390))(var_14,1);
                  var_32[4] = 0;
                  var_32[5] = 0;
                  var_35 = *(type_7 *)(var_2 + -0x36a0);
                  uVar10 = *(type_5 *)(var_2 + -0x369c);
                  uVar11 = *(type_5 *)(var_2 + -0x369b);
                  uVar12 = *(type_5 *)(var_2 + -0x369a);
                  var_32[3] = (char)ppsVar19;
                  *var_32 = (char)((type_7)ppsVar19 >> 0x18);
                  var_32[1] = (char)((type_7)ppsVar19 >> 0x10);
                  var_32[2] = (char)((type_7)ppsVar19 >> 8);
                  var_32[7] = 7;
                  var_32[6] = 0;
                  var_33 = var_32 + 8;
                  var_34 = (type_7)var_33 & 3;
                  *(type_7 *)(var_33 + -var_34) =
                       *(type_7 *)(var_33 + -var_34) & -1 << (4 - var_34) * 8 | var_35 >> var_34 * 8;
                  var_33 = var_32 + 0xb;
                  var_34 = (type_7)var_33 & 3;
                  *(type_7 *)(var_33 + -var_34) =
                       *(type_7 *)(var_33 + -var_34) & 0xffffffffU >> (var_34 + 1) * 8 |
                       var_35 << (3 - var_34) * 8;
                  var_32[0xc] = uVar10;
                  var_32[0xd] = uVar11;
                  var_32[0xe] = uVar12;
                  var_32[0x10] = bVar13;
                  var_32[0x11] = (char)((type_7)psVar45 >> 0x18);
                  var_32[0x12] = (char)((type_7)psVar45 >> 0x10);
                  var_32[0x13] = (char)((type_7)psVar45 >> 8);
                  var_32[0x14] = (char)psVar45;
                  pcVar48 = *(type_16 **)(var_3 + 0x89610);
                  var_32[0xf] = var_36 != '\0';
                  (*pcVar48)(var_32 + 0x15,*(type_13 *)(var_21->sent_verstring + 0xc),
                             psVar45);
                  var_33 = var_32 + (int)psVar45;
                  var_33[0x15] = (char)((type_7)var_17 >> 0x18);
                  var_33[0x16] = (char)((type_7)var_17 >> 0x10);
                  var_33[0x17] = (char)((type_7)var_17 >> 8);
                  var_33[0x18] = (char)var_17;
                  (**(type_16 **)(var_3 + 0x89610))
                            (var_32 + (int)((int)&psVar45->got_verstring + 1),
                             *(type_13 *)(var_21->sent_verstring + 0x10),var_17);
                  var_33 = var_32 + (int)(var_17->recvbuf + (int)(psVar45->recvbuf + -0x40));
                  var_33[0x1c] = uVar8;
                  var_33[0x19] = uVar7;
                  var_33[0x1a] = var_31;
                  var_33[0x1b] = uVar9;
                  (**(type_16 **)(var_3 + 0x88b70))
                            (cs_00->parent->ssh,cs_00->id,0x62,var_32,var_14,0);
                  (**(type_16 **)(var_3 + 0x88394))(var_32);
                  cs_00->recvlen = 0;
                  goto LAB_000893ac;
                }
                goto LAB_00089df8;
              }
            }
LAB_00089cc8:
            (**(type_16 **)(var_3 + 0x88b70))(cs_00->parent->ssh,cs_00->id,var_11,var_14,var_33,0);
            if ((var_11 == 0x61) && (3 < (int)var_33)) {
              ppsStack_88 = *(type_9 *)(cs_00->recvbuf + 5);
              var_37 = (type_10 *)
                        var_16(cs_00->channels_by_server,&var_13,(type_17)0x0);
              if (var_37 != (type_10 *)0x0) {
                if (var_37->state == 2) {
                  (**(type_16 **)(var_3 + 0x88b74))(cs_00->parent->ssh,var_37->upstream_id);
                  var_38(cs_00,var_37);
                  cs_00->recvlen = 0;
                }
                else {
                  var_37->state = 1;
                  cs_00->recvlen = 0;
                }
                goto LAB_000893ac;
              }
            }
          }
          else {
            if (var_11 == 0x5c) {
              if (3 < (int)var_33) {
                psVar45 = *(type_1 **)(cs_00->recvbuf + 5);
                var_17 = (type_1 *)&var_13;
                var_13 = psVar45;
                var_39 = var_16(cs_00->halfchannels,var_17,(type_17)0x0);
                if (var_39 == (void *)0x0) {
                  psStack_8c = psVar45;
                  var_40 = (type_2 *)
                          var_16(cs_00->xchannels_by_server,var_17,(type_17)0x0);
                  if (var_40 == (type_2 *)0x0) {
                    var_46 = (char *)(**(type_16 **)(var_3 + 0x8844c))
                                                (*(int *)(var_3 + 0x8839c) + 0x4680,psVar45);
                    goto LAB_00089674;
                  }
                  function_1(cs_00,var_40);
                  cs_00->recvlen = 0;
                }
                else {
                  psVar18 = cs_00->parent;
                  uVar35 = 0x5c;
LAB_000895b4:
                  (**(type_16 **)(var_3 + 0x88b70))(psVar18->ssh,cs_00->id,uVar35,var_14,var_33,0);
                  var_41(cs_00->halfchannels,var_39);
                  (**(type_16 **)(var_3 + 0x88394))(var_39);
                  cs_00->recvlen = 0;
                }
                goto LAB_000893ac;
              }
              var_46 = (char *)(**(type_16 **)(var_3 + 0x8844c))
                                          (*(int *)(var_3 + 0x8839c) + 0x4658);
              goto LAB_00089674;
            }
            if (0x5b < var_11) {
              if (100 < var_11) goto LAB_0008965c;
              goto LAB_00089714;
            }
            if ((int)var_33 < 0x10) {
              var_46 = (char *)(**(type_16 **)(var_3 + 0x8844c))
                                          (*(int *)(var_3 + 0x8839c) + 0x45ac);
              goto LAB_00089674;
            }
            var_34 = (type_7)(cs_00->recvbuf + 5) & 3;
            upstream_id = *(type_7 *)(cs_00->recvbuf + 9);
            var_35 = (type_7)(cs_00->recvbuf + 8) & 3;
            psVar45 = (type_1 *)
                      ((*(int *)(cs_00->recvbuf + 5 + -var_34) << var_34 * 8 |
                       (type_7)psVar45 & 0xffffffffU >> (4 - var_34) * 8) & -1 << (var_35 + 1) * 8 |
                      *(type_7 *)(cs_00->recvbuf + 8 + -var_35) >> (3 - var_35) * 8);
            var_13 = psVar45;
            var_39 = var_16(cs_00->halfchannels,&var_13,(type_17)0x0);
            if (var_39 == (void *)0x0) {
              psStack_8c = psVar45;
              var_17 = (type_1 *)
                         var_16(cs_00->xchannels_by_server,&var_13,(type_17)0x0);
              if (var_17 == (type_1 *)0x0) goto LAB_0008a14c;
              server_id = var_17->fn;
            }
            else {
              var_17 = (type_1 *)0x0;
              server_id = (type_6 *)
                          (**(type_16 **)(var_3 + 0x88b8c))(cs_00->parent->ssh,cs_00);
            }
            cs_00->recvbuf[0xc] = (type_4)server_id;
            cs_00->recvbuf[9] = (type_4)((type_7)server_id >> 0x18);
            cs_00->recvbuf[10] = (type_4)((type_7)server_id >> 0x10);
            cs_00->recvbuf[0xb] = (type_4)((type_7)server_id >> 8);
            var_34 = (type_7)(cs_00->recvbuf + 0x11) & 3;
            var_35 = (type_7)(cs_00->recvbuf + 0x14) & 3;
            var_37 = var_42((type_1 *)&cs_00->channels_by_us,
                                        (type_7)&cs_00->channels_by_server,upstream_id,(type_7)server_id
                                        ,(int)psVar45,0,
                                        (type_1 *)
                                        ((*(int *)(cs_00->recvbuf + 0x11 + -var_34) << var_34 * 8 |
                                         var_43 & 0xffffffffU >> (4 - var_34) * 8) &
                                         -1 << (var_35 + 1) * 8 |
                                        *(type_7 *)(cs_00->recvbuf + 0x14 + -var_35) >>
                                        (3 - var_35) * 8));
            if (var_39 != (void *)0x0) {
              psVar18 = cs_00->parent;
              uVar35 = 0x5b;
              goto LAB_000895b4;
            }
            if (var_17 != (type_1 *)0x0) {
              var_34 = *(type_7 *)(cs_00->recvbuf + 0xd);
              if (var_34 < 0x100) {
                var_46 = (char *)(**(type_16 **)(var_3 + 0x8844c))
                                            (*(int *)(var_3 + 0x8839c) + 0x4614,var_34);
                goto LAB_00089674;
              }
              var_44(cs_00,(type_2 *)var_17,var_37,var_34);
              var_45
                        ((type_1 *)cs_00->xchannels_by_us,
                         (type_2 *)&cs_00->xchannels_by_server,var_17);
              cs_00->recvlen = 0;
              goto LAB_000893ac;
            }
          }
LAB_000893a4:
          cs_00->recvlen = 0;
          goto LAB_000893ac;
        }
        var_2 = *(int *)(var_3 + 0x8839c);
        if (3 < (int)var_33) {
          var_2 = var_12(var_14,(int)var_33,(char **)0x0,(int *)&var_13);
          if (((var_2 == 0) || ((int)var_13 < 0)) ||
             (psVar45 = (type_1 *)(var_14 + (int)var_13),
             (int)&var_17[-1].xchannels_by_server <= (int)var_13)) {
            var_2 = *(int *)(var_3 + 0x8839c);
            goto LAB_00089d50;
          }
          pppVar14 = &var_13->fn;
          pppVar15 = &var_13->fn;
          var_21 = (type_1 *)(var_14 + (int)((int)&var_13->fn + 2));
          var_17 = (type_1 *)
                     ((type_7)*(type_3 *)&psVar45->fn << 0x18 |
                      (type_7)var_14[(int)((int)pppVar14 + 1)] << 0x10 |
                      (type_7)var_14[(int)((int)pppVar15 + 3)] | (type_7)*(type_3 *)&var_21->fn << 8)
          ;
          var_34 = (**(type_16 **)(var_3 + 0x88b8c))(cs_00->parent->ssh,cs_00);
          var_42((type_1 *)&cs_00->channels_by_us,
                            (type_7)&cs_00->channels_by_server,(type_7)var_17,var_34,0,3,
                            (type_1 *)
                            ((type_7)*(type_3 *)&psVar45->sock << 0x18 |
                             (type_7)*(type_4 *)((int)&psVar45->sock + 1) << 0x10 |
                             (type_7)*(type_4 *)((int)&psVar45->sock + 3) |
                            (type_7)*(type_4 *)((int)&psVar45->sock + 2) << 8));
          *(char *)&psVar45->fn = (char)(var_34 >> 0x18);
          var_14[(int)((int)pppVar14 + 1)] = (type_3)(var_34 >> 0x10);
          *(char *)&var_21->fn = (char)(var_34 >> 8);
          var_14[(int)((int)pppVar15 + 3)] = (type_3)var_34;
          (**(type_16 **)(var_3 + 0x88b70))(cs_00->parent->ssh,cs_00->id,0x5a,var_14,var_33,0);
          cs_00->recvlen = 0;
          goto LAB_000893ac;
        }
LAB_00089d50:
        var_46 = (char *)(**(type_16 **)(var_3 + 0x8844c))(var_2 + 0x458c);
LAB_00089674:
        while (var_46 == (char *)0x0) {
          (**(type_16 **)(var_3 + 0x88ff4))
                    (*(int *)(var_3 + 0x8839c) + 0x4768,*(int *)(var_3 + 0x8839c) + 0x43dc,0x6e6
                     ,*(int *)(var_3 + 0x8839c) + 0x4870);
LAB_0008a14c:
          var_46 = (char *)(**(type_16 **)(var_3 + 0x8844c))
                                      (*(int *)(var_3 + 0x8839c) + 0x45d8,psVar45);
        }
        var_28(cs_00,var_46);
        (**(type_16 **)(var_3 + 0x88394))(var_46);
        cs_00->recvlen = 0;
        goto LAB_000893ac;
      }
      var_46 = (char *)(**(type_16 **)(var_3 + 0x8844c))
                                  (*(int *)(var_3 + 0x8839c) + 0x4544,var_2);
LAB_000890b4:
      var_28(cs_00,var_46);
      (**(type_16 **)(var_3 + 0x88394))(var_46);
      var_8 = var_7;
LAB_000890e0:
      cs_00->crLine = 0;
    } while( true );
  }
  var_34 = cs_00->recvlen;
  var_11 = *var_7;
  var_10 = var_4 + -1;
  pbVar42 = var_7 + 1;
  if (var_11 == 10) {
LAB_0008942c:
    var_7 = pbVar42;
    if (0x2d < var_34) {
      psVar45 = (type_1 *)cs_00->recvbuf;
      var_2 = (**(type_16 **)(var_3 + 0x894d4))(psVar45,*(int *)(var_3 + 0x8839c) + 0x4890,0x2e);
      if (var_2 == 0) {
        if ((0 < (int)var_34) && (cs_00->recvbuf[var_34 - 1] == '\r')) {
          cs_00->recvlen = var_34 - 1;
          var_34 = var_34 - 1;
        }
        (**(type_16 **)(var_3 + 0x88b68))
                  (cs_00->parent->ssh,cs_00->id,*(int *)(var_3 + 0x8839c) + 0x4524,var_34,psVar45)
        ;
        cs_00->got_verstring = 1;
        cs_00->recvlen = 0;
        goto LAB_000893ac;
      }
    }
    var_46 = (char *)(**(type_16 **)(var_3 + 0x8844c))(*(int *)(var_3 + 0x8839c) + 0x44f4);
    goto LAB_000890b4;
  }
  pbVar41 = var_4;
  if (var_34 < 0x4010) {
    var_34 = var_34 + 1;
    var_47 = var_7 + (int)var_10;
    var_10 = var_4;
    var_8 = pbVar42;
    do {
      cs_00->recvlen = var_34;
      cs_00->recvbuf[var_34 - 1] = var_11;
      if (var_7 + (int)var_4 == var_8) goto LAB_00089094;
      var_10 = var_47 + -(int)var_8;
      pbVar42 = var_8 + 1;
      var_11 = *var_8;
      if (var_11 == 10) goto LAB_0008942c;
      var_34 = var_34 + 1;
      pbVar41 = var_10;
      var_8 = pbVar42;
    } while (var_34 != 0x4011);
  }
  var_46 = (char *)(**(type_16 **)(var_3 + 0x8844c))(*(int *)(var_3 + 0x8839c) + 0x44d4);
  var_10 = pbVar41;
  var_7 = pbVar42;
  goto LAB_000890b4;
}


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

{
  byte bVar1;
  byte bVar2;
  byte bVar3;
  byte bVar4;
  char cVar5;
  char cVar6;
  undefined1 uVar7;
  undefined1 uVar8;
  undefined1 uVar9;
  bool bVar10;
  int iVar11;
  undefined4 uVar12;
  byte ****ppppbVar13;
  int iVar14;
  byte ****ppppbVar15;
  undefined1 *puVar16;
  undefined1 *puVar17;
  byte *pbVar18;
  undefined4 *puVar19;
  undefined4 *puVar20;
  int iVar21;
  int iVar22;
  byte bVar26;
  int iVar23;
  undefined4 uVar24;
  undefined4 *puVar25;
  uint uVar27;
  byte *pbVar28;
  byte *pbVar29;
  uint in_t3;
  byte *pbVar30;
  uint uVar31;
  byte *pbVar32;
  byte *****pppppbVar33;
  byte *pbVar34;
  byte *unaff_s5;
  byte *****unaff_s6;
  byte *****pppppbVar35;
  byte *****pppppbVar36;
  undefined *puVar37;
  code *pcVar38;
  int *piVar39;
  byte ****local_b0;
  byte ****local_90;
  byte ****local_8c;
  undefined4 local_88;
  byte ***local_68;
  int local_64;
  int local_60;
  int local_5c;
  undefined *local_58;
  undefined4 local_18;
  int local_14;
  
  pppppbVar36 = (byte *****)PTR___stack_chk_guard_00112630;
  local_18 = *(undefined4 *)(param_2 + 4);
  pbVar28 = &DAT_00000061;
  pbVar32 = (byte *)&local_18;
  local_14 = *(int *)PTR___stack_chk_guard_00112630;
  (*(code *)PTR_ssh_send_packet_from_downstream_00111acc)
            (*(undefined4 *)(*(int *)(param_1 + 0xc) + 0x14),*(undefined4 *)(param_1 + 4));
  *(undefined4 *)(param_2 + 8) = 0;
  iVar22 = param_1;
  share_dead_xchannel_respond(param_1,param_2);
  if ((byte ****)local_14 == *pppppbVar36) {
    return;
  }
  puVar37 = PTR___stack_chk_fail_001122c8;
  (*(code *)PTR___stack_chk_fail_001122c8)();
  iVar11 = *(int *)(iVar22 + 0x10);
  piVar39 = *(int **)(puVar37 + 0x896d4);
  local_58 = (undefined *)pppppbVar36;
  local_64 = *piVar39;
  pbVar34 = pbVar32;
  local_60 = param_2;
  local_5c = param_1;
  if (iVar11 != 0x709) {
    if (0x709 < iVar11) {
      if (iVar11 == 0x72e) goto LAB_000893ac;
      if (iVar11 != 0x73b) goto LAB_000890e0;
      goto LAB_00088fd4;
    }
    if (iVar11 != 0) goto LAB_000890e0;
    *(undefined4 *)(iVar22 + 0x4030) = 0;
  }
  if (pbVar32 == (byte *)0x0) {
LAB_00089094:
    *(undefined4 *)(iVar22 + 0x10) = 0x709;
LAB_000890e4:
    do {
      if (local_64 == *piVar39) {
        return;
      }
      (**(code **)(puVar37 + 0x8936c))();
      pbVar28 = unaff_s5;
LAB_00089df8:
      local_68 = *local_b0;
      FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);
      (**(code **)(puVar37 + 0x88394))(unaff_s6);
      *(undefined4 *)(iVar22 + 0x4030) = 0;
LAB_000893ac:
      pbVar32 = pbVar28 + (int)pbVar34;
      unaff_s5 = pbVar28;
      do {
        pbVar34 = pbVar32 + (-1 - (int)unaff_s5);
        if (unaff_s5 == pbVar32) {
          *(undefined4 *)(iVar22 + 0x10) = 0x72e;
          goto LAB_000890e4;
        }
        iVar11 = *(int *)(iVar22 + 0x4030);
        pbVar28 = unaff_s5 + 1;
        iVar23 = iVar11 + 1;
        bVar26 = *unaff_s5;
        in_t3 = (uint)bVar26;
        *(int *)(iVar22 + 0x4030) = iVar23;
        *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;
        unaff_s5 = pbVar28;
      } while (iVar23 < 4);
      iVar11 = (**(code **)(puVar37 + 0x884fc))(*(int *)(iVar22 + 0x20) + 4);
      *(int *)(iVar22 + 0x1c) = iVar11;
      if (iVar11 - 5U < 0x400c) {
        unaff_s6 = *(byte ******)(iVar22 + 0x4030);
        while (unaff_s5 = pbVar28, (int)unaff_s6 < iVar11) {
LAB_00088fd4:
          if (pbVar34 == (byte *)0x0) {
            *(undefined4 *)(iVar22 + 0x10) = 0x73b;
            pbVar34 = (byte *)0x0;
            goto LAB_000890e4;
          }
          iVar11 = *(int *)(iVar22 + 0x4030);
          pbVar34 = pbVar34 + -1;
          bVar26 = *pbVar28;
          pbVar28 = pbVar28 + 1;
          unaff_s6 = (byte *****)(iVar11 + 1);
          *(byte ******)(iVar22 + 0x4030) = unaff_s6;
          *(byte *)(iVar22 + iVar11 + 0x20) = bVar26;
          iVar11 = *(int *)(iVar22 + 0x1c);
        }
        bVar26 = *(byte *)(iVar22 + 0x24);
        iVar11 = iVar22 + 0x25;
        pbVar32 = (byte *)((int)unaff_s6 + -5);
        if (bVar26 != 0x5a) {
          if (bVar26 < 0x5b) {
            if (bVar26 != 2) {
              if (2 < bVar26) {
                if (bVar26 == 4) goto LAB_00089714;
                if (bVar26 != 0x50) goto LAB_0008965c;
                iVar23 = *(int *)(puVar37 + 0x8839c);
                pppppbVar33 = pppppbVar36;
                if ((int)pbVar32 < 4) goto LAB_000896fc;
                pppppbVar33 = (byte *****)(*(int *)(puVar37 + 0x88acc) + 0x79c0);
                iVar23 = FUN_000879c0(iVar11,pbVar32,&local_90,0);
                ppppbVar13 = local_90;
                if ((iVar23 == 0) || ((byte *****)local_90 == (byte *****)0x0)) goto LAB_000896f8;
                iVar23 = (**(code **)(puVar37 + 0x8953c))
                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x30e8);
                if (iVar23 != 0) {
                  iVar23 = (**(code **)(puVar37 + 0x8953c))
                                     (ppppbVar13,*(int *)(puVar37 + 0x8839c) + -0x317c);
                  pcVar38 = *(code **)(puVar37 + 0x88394);
                  pppppbVar36 = pppppbVar33;
                  if (iVar23 == 0) {
                    (*pcVar38)(ppppbVar13);
                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);
                    pppppbVar35 = (byte *****)local_90;
                    if (((iVar23 != 0) && (-1 < (int)local_90)) &&
                       (pbVar30 = (byte *)((int)local_90 + 1), (int)local_90 < (int)pbVar32)) {
                      local_b0 = (byte ****)((int)local_90 + iVar11);
                      iVar21 = (int)pbVar32 - (int)pbVar30;
                      bVar26 = *(byte *)local_b0;
                      if ((iVar21 < 4) ||
                         (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0))
                      {
                        iVar23 = *(int *)(puVar37 + 0x8839c);
                        if ((int)pppppbVar35 < (int)(unaff_s6 + -2)) {
                          if (iVar21 >= 4) goto LAB_000892a4;
LAB_00089eec:
                          uVar12 = 0x5a7;
                          goto LAB_00089ef0;
                        }
                      }
                      else {
                        pppppbVar35 = (byte *****)(pbVar30 + (int)local_90);
                        iVar23 = *(int *)(puVar37 + 0x8839c);
                        if (-1 < (int)pppppbVar35) {
                          pcVar38 = *(code **)(puVar37 + 0x8844c);
                          if ((int)(unaff_s6 + -2) <= (int)pppppbVar35) goto LAB_00089700;
LAB_000892a4:
                          iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);
                          pppppbVar36 = (byte *****)local_90;
                          if ((iVar23 == 0) ||
                             (pppppbVar33 = (byte *****)local_90,
                             (byte *****)local_90 == (byte *****)0x0)) goto LAB_00089eec;
                          pbVar30 = (byte *)((int)pppppbVar35 + iVar11);
                          bVar1 = *pbVar30;
                          bVar2 = pbVar30[1];
                          bVar3 = pbVar30[3];
                          bVar4 = pbVar30[2];
                          local_90 = (byte ****)(**(code **)(puVar37 + 0x883c0))(local_90);
                          local_8c = (byte ****)
                                     ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |
                                     (uint)bVar4 << 8);
                          unaff_s6 = (byte *****)
                                     find234(*(undefined4 *)(iVar22 + 0x4048),&local_90,0);
                          (**(code **)(puVar37 + 0x88394))(local_90);
                          if (unaff_s6 == (byte *****)0x0) {
                            pcVar38 = *(code **)(puVar37 + 0x88394);
                            if (bVar26 != 0) {
                              FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0
                                           ,0xc);
                              goto LAB_00089394;
                            }
                          }
                          else {
                            bVar26 = *(byte *)local_b0;
                            *(byte *)local_b0 = 1;
                            if (bVar26 == 0) {
                              iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;
                            }
                            else {
                              iVar23 = 0;
                            }
                            (**(code **)(puVar37 + 0x88b70))
                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),
                                       *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);
                            (**(code **)(puVar37 + 0x88b88))
                                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);
LAB_00089394:
                            pcVar38 = *(code **)(puVar37 + 0x88394);
                          }
                          (*pcVar38)(pppppbVar36);
                          goto LAB_000893a4;
                        }
                      }
                      goto LAB_000896fc;
                    }
                  }
                  else {
LAB_00089f10:
                    (*pcVar38)();
                    iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);
                    pppppbVar33 = pppppbVar36;
                    if (((iVar23 != 0) && (-1 < (int)local_90)) && ((int)local_90 < (int)pbVar32)) {
                      if (*(byte *)((int)local_90 + iVar11) == 0) goto LAB_000893a4;
                      FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);
                      *(undefined4 *)(iVar22 + 0x4030) = 0;
                      goto LAB_000893ac;
                    }
                  }
LAB_000896f8:
                  iVar23 = *(int *)(puVar37 + 0x8839c);
                  goto LAB_000896fc;
                }
                (**(code **)(puVar37 + 0x88394))(ppppbVar13);
                iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);
                pppppbVar36 = (byte *****)local_90;
                if (((iVar23 == 0) || ((int)local_90 < 0)) ||
                   (pbVar30 = (byte *)((int)local_90 + 1), (int)pbVar32 <= (int)local_90))
                goto LAB_000896f8;
                pbVar18 = (byte *)((int)local_90 + iVar11);
                iVar21 = (int)pbVar32 - (int)pbVar30;
                local_b0 = (byte ****)(uint)*pbVar18;
                if ((iVar21 < 4) ||
                   (iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90), iVar23 == 0)) {
                  iVar23 = *(int *)(puVar37 + 0x8839c);
                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {
                    if (iVar21 >= 4) goto LAB_0008a05c;
LAB_0008a304:
                    uVar12 = 0x55e;
LAB_00089ef0:
                    pcVar38 = *(code **)(puVar37 + 0x88ff4);
                    (*pcVar38)(*(int *)(puVar37 + 0x8839c) + 0x457c,
                               *(int *)(puVar37 + 0x8839c) + 0x43dc,uVar12,
                               *(int *)(puVar37 + 0x8839c) + 0x4870);
                    pppppbVar36 = pppppbVar33;
                    goto LAB_00089f10;
                  }
LAB_000896fc:
                  pcVar38 = *(code **)(puVar37 + 0x8844c);
                }
                else {
                  pppppbVar36 = (byte *****)(pbVar30 + (int)local_90);
                  iVar23 = *(int *)(puVar37 + 0x8839c);
                  if ((int)pppppbVar36 < 0) goto LAB_000896fc;
                  pcVar38 = *(code **)(puVar37 + 0x8844c);
                  if ((int)pppppbVar36 < (int)(unaff_s6 + -2)) {
LAB_0008a05c:
                    iVar23 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);
                    ppppbVar13 = local_90;
                    if ((iVar23 == 0) ||
                       (unaff_s6 = (byte *****)local_90, (byte *****)local_90 == (byte *****)0x0))
                    goto LAB_0008a304;
                    pbVar30 = (byte *)((int)pppppbVar36 + iVar11);
                    pppppbVar36 = (byte *****)
                                  ((uint)*pbVar30 << 0x18 | (uint)pbVar30[3] |
                                   (uint)pbVar30[1] << 0x10 | (uint)pbVar30[2] << 8);
                    iVar23 = (**(code **)(puVar37 + 0x88ba0))
                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),local_90,
                                        pppppbVar36,iVar22);
                    if (iVar23 == 0) {
                      if ((byte *****)local_b0 != (byte *****)0x0) {
                        FUN_000877b4(iVar22 + 8,0x52,*(int *)(puVar37 + 0x8839c) + -0x4be4,0,0,0xc);
                      }
                    }
                    else {
                      bVar26 = *pbVar18;
                      *pbVar18 = 1;
                      if (bVar26 == 0) {
                        iVar23 = *(int *)(puVar37 + 0x8839c) + 0x44b4;
                      }
                      else {
                        iVar23 = 0;
                      }
                      (**(code **)(puVar37 + 0x88b70))
                                (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),
                                 *(undefined4 *)(iVar22 + 4),0x50,iVar11,pbVar32,iVar23);
                      puVar19 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0xc);
                      uVar12 = (**(code **)(puVar37 + 0x883c0))(ppppbVar13);
                      uVar24 = *(undefined4 *)(iVar22 + 0x4048);
                      *puVar19 = uVar12;
                      puVar19[1] = pppppbVar36;
                      puVar19[2] = 0;
                      puVar20 = (undefined4 *)add234(uVar24,puVar19);
                      if (puVar19 == puVar20) {
                        (**(code **)(puVar37 + 0x88b88))
                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);
                        puVar20 = (undefined4 *)(**(code **)(puVar37 + 0x88390))(1,0x10);
                        puVar25 = *(undefined4 **)(iVar22 + 0x4050);
                        *puVar20 = 0;
                        if (puVar25 == (undefined4 *)0x0) {
                          *(undefined4 **)(iVar22 + 0x404c) = puVar20;
                        }
                        else {
                          *puVar25 = puVar20;
                        }
                        puVar20[3] = puVar19;
                        puVar20[1] = 0;
                        puVar20[2] = local_b0;
                      }
                      else {
                        (**(code **)(puVar37 + 0x88394))(puVar19);
                        (**(code **)(puVar37 + 0x88b88))
                                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);
                      }
                    }
                    (**(code **)(puVar37 + 0x88394))(ppppbVar13);
                    *(undefined4 *)(iVar22 + 0x4030) = 0;
                    unaff_s6 = (byte *****)ppppbVar13;
                    goto LAB_000893ac;
                  }
                }
LAB_00089700:
                iVar11 = (*pcVar38)(iVar23 + 0x455c);
                pppppbVar36 = pppppbVar33;
                goto LAB_00089674;
              }
              if (bVar26 != 1) {
LAB_0008965c:
                iVar11 = (**(code **)(puVar37 + 0x8844c))
                                   (*(int *)(puVar37 + 0x8839c) + 0x474c,bVar26);
                goto LAB_00089674;
              }
              (**(code **)(**(int **)(iVar22 + 8) + 4))(*(int **)(iVar22 + 8));
              *(undefined4 *)(iVar22 + 8) = 0;
              FUN_000882d0(iVar22);
              *(undefined4 *)(iVar22 + 0x4030) = 0;
              goto LAB_000893ac;
            }
LAB_00089714:
            if ((bVar26 == 0x62) &&
               (pppppbVar36 = *(byte ******)(puVar37 + 0x88acc), 3 < (int)unaff_s6 + -9)) {
              pppppbVar36 = pppppbVar36 + 0x1e70;
              iVar23 = FUN_000879c0(iVar22 + 0x29,(byte *)((int)unaff_s6 + -9),&local_90,0);
              ppppbVar13 = local_90;
              if ((iVar23 != 0) && ((byte *****)local_90 != (byte *****)0x0)) {
                local_b0 = local_90;
                iVar23 = (**(code **)(puVar37 + 0x8953c))
                                   (local_90,*(int *)(puVar37 + 0x8839c) + -0x363c);
                if ((iVar23 == 0) &&
                   (iVar23 = (**(code **)(puVar37 + 0x888c4))
                                       (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14)), iVar23 == 0
                   )) {
                  uVar12 = *(undefined4 *)(iVar22 + 0x25);
                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);
                  local_88 = uVar12;
                  puVar19 = (undefined4 *)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);
                  if (puVar19 == (undefined4 *)0x0) {
                    pcVar38 = *(code **)(puVar37 + 0x8844c);
                    iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46b8;
LAB_0008a3a0:
                    uVar12 = (*pcVar38)(iVar11,uVar12);
                    FUN_000887e0(iVar22,uVar12);
                    (**(code **)(puVar37 + 0x88394))(uVar12);
                    *(undefined4 *)(iVar22 + 0x4030) = 0;
                  }
                  else {
                    local_68 = (byte ***)*puVar19;
                    FUN_000877b4(iVar22 + 8,100,&local_68,4,0,0xc);
                    *(undefined4 *)(iVar22 + 0x4030) = 0;
                  }
                  goto LAB_000893ac;
                }
                iVar23 = *(int *)(puVar37 + 0x8839c);
                iVar21 = (**(code **)(puVar37 + 0x8953c))(ppppbVar13,iVar23 + -0x36a0);
                if (iVar21 != 0) {
                  (**(code **)(puVar37 + 0x88394))(ppppbVar13);
                  local_b0 = ppppbVar13;
                  goto LAB_00089cc8;
                }
                uVar12 = *(undefined4 *)(iVar22 + 0x25);
                (**(code **)(puVar37 + 0x88394))(ppppbVar13);
                local_88 = uVar12;
                local_b0 = (byte ****)find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);
                if ((byte *****)local_b0 == (byte *****)0x0) {
                  pcVar38 = *(code **)(puVar37 + 0x8844c);
                  iVar11 = *(int *)(puVar37 + 0x8839c) + 0x46f0;
                  goto LAB_0008a3a0;
                }
                if ((int)pbVar32 < 0x11) {
                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);
                  goto LAB_00089674;
                }
                cVar5 = *(char *)(iVar22 + 0x34);
                pbVar30 = (byte *)((int)unaff_s6 + -0x16);
                cVar6 = *(char *)(iVar22 + 0x35);
                if ((int)pbVar30 < 4) {
                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(0);
                  (**(code **)(puVar37 + 0x88394))(0);
LAB_0008a36c:
                  pppppbVar33 = (byte *****)0xffffffff;
                }
                else {
                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,&local_90,0);
                  pppppbVar33 = (byte *****)local_90;
                  if (iVar21 == 0) {
                    pppppbVar33 = (byte *****)0x0;
                  }
                  ppppbVar13 = (byte ****)(**(code **)(puVar37 + 0x88b90))(pppppbVar33);
                  (**(code **)(puVar37 + 0x88394))(pppppbVar33);
                  iVar21 = FUN_000879c0(iVar22 + 0x36,pbVar30,0,&local_90);
                  pppppbVar33 = (byte *****)local_90;
                  if (iVar21 == 0) goto LAB_0008a36c;
                }
                pbVar30 = (byte *)((int)pppppbVar33 + 0x11);
                iVar21 = (int)pbVar32 - (int)pbVar30;
                unaff_s6 = (byte *****)0x0;
                if (iVar21 < 4) {
LAB_00089ec4:
                  pppppbVar33 = (byte *****)0xffffffff;
                }
                else {
                  iVar14 = FUN_000879c0(pbVar30 + iVar11,iVar21,&local_90,0);
                  unaff_s6 = (byte *****)local_90;
                  if (iVar14 == 0) {
                    unaff_s6 = (byte *****)0x0;
                  }
                  iVar21 = FUN_000879c0(pbVar30 + iVar11,iVar21,0,&local_90);
                  pppppbVar33 = (byte *****)local_90;
                  if (iVar21 == 0) goto LAB_00089ec4;
                }
                if ((int)pbVar32 <= (int)(pbVar30 + (int)pppppbVar33 + 3)) {
                  iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4724);
                  (**(code **)(puVar37 + 0x88394))(unaff_s6);
                  goto LAB_00089674;
                }
                pbVar32 = pbVar30 + (int)pppppbVar33 + iVar11;
                if (-1 < (int)ppppbVar13) {
                  pcVar38 = *(code **)(puVar37 + 0x88b94);
                  bVar26 = *pbVar32;
                  bVar10 = cVar6 != '\0';
                  bVar1 = pbVar32[1];
                  bVar2 = pbVar32[3];
                  bVar3 = pbVar32[2];
                  ((byte *****)local_b0)[6] = ppppbVar13;
                  ppppbVar15 = (byte ****)(*pcVar38)(unaff_s6,(byte *****)local_b0 + 8);
                  pcVar38 = *(code **)(puVar37 + 0x88394);
                  ((byte *****)local_b0)[7] = ppppbVar15;
                  (*pcVar38)(unaff_s6);
                  ppppbVar13 = (byte ****)
                               (**(code **)(puVar37 + 0x88b98))
                                         (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),ppppbVar13,
                                          iVar22,local_b0);
                  ((byte *****)local_b0)[5] = ppppbVar13;
                  ((byte *****)local_b0)[9] = (byte ****)(uint)bVar10;
                  pppppbVar36 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[3]);
                  unaff_s6 = (byte *****)(**(code **)(puVar37 + 0x895d8))(ppppbVar13[4]);
                  puVar16 = (undefined1 *)
                            (**(code **)(puVar37 + 0x88390))
                                      ((byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,1);
                  puVar16[4] = 0;
                  puVar16[5] = 0;
                  uVar27 = *(uint *)(iVar23 + -0x36a0);
                  uVar7 = *(undefined1 *)(iVar23 + -0x369c);
                  uVar8 = *(undefined1 *)(iVar23 + -0x369b);
                  uVar9 = *(undefined1 *)(iVar23 + -0x369a);
                  puVar16[3] = (char)uVar12;
                  *puVar16 = (char)((uint)uVar12 >> 0x18);
                  puVar16[1] = (char)((uint)uVar12 >> 0x10);
                  puVar16[2] = (char)((uint)uVar12 >> 8);
                  puVar16[7] = 7;
                  puVar16[6] = 0;
                  puVar17 = puVar16 + 8;
                  uVar31 = (uint)puVar17 & 3;
                  *(uint *)(puVar17 + -uVar31) =
                       *(uint *)(puVar17 + -uVar31) & -1 << (4 - uVar31) * 8 | uVar27 >> uVar31 * 8;
                  puVar17 = puVar16 + 0xb;
                  uVar31 = (uint)puVar17 & 3;
                  *(uint *)(puVar17 + -uVar31) =
                       *(uint *)(puVar17 + -uVar31) & 0xffffffffU >> (uVar31 + 1) * 8 |
                       uVar27 << (3 - uVar31) * 8;
                  puVar16[0xc] = uVar7;
                  puVar16[0xd] = uVar8;
                  puVar16[0xe] = uVar9;
                  puVar16[0x10] = bVar10;
                  puVar16[0x11] = (char)((uint)pppppbVar36 >> 0x18);
                  puVar16[0x12] = (char)((uint)pppppbVar36 >> 0x10);
                  puVar16[0x13] = (char)((uint)pppppbVar36 >> 8);
                  puVar16[0x14] = (char)pppppbVar36;
                  pcVar38 = *(code **)(puVar37 + 0x89610);
                  puVar16[0xf] = cVar5 != '\0';
                  (*pcVar38)(puVar16 + 0x15,((byte *****)local_b0)[5][3],pppppbVar36);
                  puVar17 = puVar16 + (int)pppppbVar36;
                  puVar17[0x15] = (char)((uint)unaff_s6 >> 0x18);
                  puVar17[0x16] = (char)((uint)unaff_s6 >> 0x10);
                  puVar17[0x17] = (char)((uint)unaff_s6 >> 8);
                  puVar17[0x18] = (char)unaff_s6;
                  (**(code **)(puVar37 + 0x89610))
                            (puVar16 + (int)((int)pppppbVar36 + 0x19),((byte *****)local_b0)[5][4],
                             unaff_s6);
                  puVar17 = puVar16 + (int)((int)pppppbVar36 + (int)unaff_s6);
                  puVar17[0x1c] = bVar2;
                  puVar17[0x19] = bVar26;
                  puVar17[0x1a] = bVar1;
                  puVar17[0x1b] = bVar3;
                  (**(code **)(puVar37 + 0x88b70))
                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),
                             *(undefined4 *)(iVar22 + 4),0x62,puVar16,
                             (byte *)((int)pppppbVar36 + 0x1d) + (int)unaff_s6,0);
                  (**(code **)(puVar37 + 0x88394))(puVar16);
                  *(undefined4 *)(iVar22 + 0x4030) = 0;
                  goto LAB_000893ac;
                }
                goto LAB_00089df8;
              }
            }
LAB_00089cc8:
            (**(code **)(puVar37 + 0x88b70))
                      (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),
                       bVar26,iVar11,pbVar32,0);
            if ((bVar26 == 0x61) && (3 < (int)pbVar32)) {
              local_88 = *(undefined4 *)(iVar22 + 0x25);
              iVar11 = find234(*(undefined4 *)(iVar22 + 0x403c),&local_90,0);
              if (iVar11 != 0) {
                if (*(int *)(iVar11 + 0x10) == 2) {
                  (**(code **)(puVar37 + 0x88b74))
                            (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),
                             *(undefined4 *)(iVar11 + 4));
                  FUN_00087608(iVar22,iVar11);
                  *(undefined4 *)(iVar22 + 0x4030) = 0;
                }
                else {
                  *(undefined4 *)(iVar11 + 0x10) = 1;
                  *(undefined4 *)(iVar22 + 0x4030) = 0;
                }
                goto LAB_000893ac;
              }
            }
          }
          else {
            if (bVar26 == 0x5c) {
              if (3 < (int)pbVar32) {
                pppppbVar36 = *(byte ******)(iVar22 + 0x25);
                unaff_s6 = &local_90;
                local_90 = (byte ****)pppppbVar36;
                iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),unaff_s6,0);
                if (iVar23 == 0) {
                  local_8c = (byte ****)pppppbVar36;
                  iVar11 = find234(*(undefined4 *)(iVar22 + 0x4044),unaff_s6,0);
                  if (iVar11 == 0) {
                    iVar11 = (**(code **)(puVar37 + 0x8844c))
                                       (*(int *)(puVar37 + 0x8839c) + 0x4680,pppppbVar36);
                    goto LAB_00089674;
                  }
                  MASKED(iVar22,iVar11);
                  *(undefined4 *)(iVar22 + 0x4030) = 0;
                }
                else {
                  iVar21 = *(int *)(iVar22 + 0xc);
                  uVar12 = 0x5c;
LAB_000895b4:
                  (**(code **)(puVar37 + 0x88b70))
                            (*(undefined4 *)(iVar21 + 0x14),*(undefined4 *)(iVar22 + 4),uVar12,
                             iVar11,pbVar32,0);
                  del234(*(undefined4 *)(iVar22 + 0x4034),iVar23);
                  (**(code **)(puVar37 + 0x88394))(iVar23);
                  *(undefined4 *)(iVar22 + 0x4030) = 0;
                }
                goto LAB_000893ac;
              }
              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4658);
              goto LAB_00089674;
            }
            if (0x5b < bVar26) {
              if (100 < bVar26) goto LAB_0008965c;
              goto LAB_00089714;
            }
            if ((int)pbVar32 < 0x10) {
              iVar11 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x45ac);
              goto LAB_00089674;
            }
            uVar31 = iVar22 + 0x25U & 3;
            uVar12 = *(undefined4 *)(iVar22 + 0x29);
            uVar27 = iVar22 + 0x28U & 3;
            pppppbVar36 = (byte *****)
                          ((*(int *)((iVar22 + 0x25U) - uVar31) << uVar31 * 8 |
                           (uint)pppppbVar36 & 0xffffffffU >> (4 - uVar31) * 8) &
                           -1 << (uVar27 + 1) * 8 |
                          *(uint *)((iVar22 + 0x28U) - uVar27) >> (3 - uVar27) * 8);
            local_90 = (byte ****)pppppbVar36;
            iVar23 = find234(*(undefined4 *)(iVar22 + 0x4034),&local_90);
            if (iVar23 == 0) {
              local_8c = (byte ****)pppppbVar36;
              unaff_s6 = (byte *****)find234(*(undefined4 *)(iVar22 + 0x4044),&local_90,0);
              if (unaff_s6 == (byte *****)0x0) goto LAB_0008a14c;
              ppppbVar13 = *unaff_s6;
            }
            else {
              unaff_s6 = (byte *****)0x0;
              ppppbVar13 = (byte ****)
                           (**(code **)(puVar37 + 0x88b8c))
                                     (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);
            }
            *(char *)(iVar22 + 0x2c) = (char)ppppbVar13;
            *(char *)(iVar22 + 0x29) = (char)((uint)ppppbVar13 >> 0x18);
            *(char *)(iVar22 + 0x2a) = (char)((uint)ppppbVar13 >> 0x10);
            *(char *)(iVar22 + 0x2b) = (char)((uint)ppppbVar13 >> 8);
            uVar31 = iVar22 + 0x31U & 3;
            uVar27 = iVar22 + 0x34U & 3;
            uVar12 = FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,uVar12,ppppbVar13,pppppbVar36,0,
                                  (*(int *)((iVar22 + 0x31U) - uVar31) << uVar31 * 8 |
                                  in_t3 & 0xffffffffU >> (4 - uVar31) * 8) & -1 << (uVar27 + 1) * 8
                                  | *(uint *)((iVar22 + 0x34U) - uVar27) >> (3 - uVar27) * 8);
            if (iVar23 != 0) {
              iVar21 = *(int *)(iVar22 + 0xc);
              uVar12 = 0x5b;
              goto LAB_000895b4;
            }
            if (unaff_s6 != (byte *****)0x0) {
              if (*(uint *)(iVar22 + 0x2d) < 0x100) {
                iVar11 = (**(code **)(puVar37 + 0x8844c))
                                   (*(int *)(puVar37 + 0x8839c) + 0x4614,*(uint *)(iVar22 + 0x2d));
                goto LAB_00089674;
              }
              share_xchannel_confirmation(iVar22,unaff_s6,uVar12);
              FUN_00087ab8(*(undefined4 *)(iVar22 + 0x4040),iVar22 + 0x4044,unaff_s6);
              *(undefined4 *)(iVar22 + 0x4030) = 0;
              goto LAB_000893ac;
            }
          }
LAB_000893a4:
          *(undefined4 *)(iVar22 + 0x4030) = 0;
          goto LAB_000893ac;
        }
        iVar23 = *(int *)(puVar37 + 0x8839c);
        if (3 < (int)pbVar32) {
          iVar23 = FUN_000879c0(iVar11,pbVar32,0,&local_90);
          if (((iVar23 == 0) || ((int)local_90 < 0)) ||
             (pppppbVar36 = (byte *****)((int)local_90 + iVar11),
             (int)(unaff_s6 + -4) <= (int)local_90)) {
            iVar23 = *(int *)(puVar37 + 0x8839c);
            goto LAB_00089d50;
          }
          pbVar18 = (byte *)((int)local_90 + iVar22 + 0x26);
          local_b0 = (byte ****)((int)local_90 + iVar22 + 0x27);
          pbVar30 = (byte *)((int)local_90 + iVar22 + 0x28);
          unaff_s6 = (byte *****)
                     ((uint)*(byte *)pppppbVar36 << 0x18 | (uint)*pbVar18 << 0x10 | (uint)*pbVar30 |
                     (uint)*(byte *)local_b0 << 8);
          uVar12 = (**(code **)(puVar37 + 0x88b8c))
                             (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),iVar22);
          FUN_00087b44(iVar22 + 0x4038,iVar22 + 0x403c,unaff_s6,uVar12,0,3,
                       (uint)*(byte *)(pppppbVar36 + 2) << 0x18 |
                       (uint)*(byte *)((int)pppppbVar36 + 9) << 0x10 |
                       (uint)*(byte *)((int)pppppbVar36 + 0xb) |
                       (uint)*(byte *)((int)pppppbVar36 + 10) << 8);
          *(byte *)pppppbVar36 = (byte)((uint)uVar12 >> 0x18);
          *pbVar18 = (byte)((uint)uVar12 >> 0x10);
          *(byte *)local_b0 = (byte)((uint)uVar12 >> 8);
          *pbVar30 = (byte)uVar12;
          (**(code **)(puVar37 + 0x88b70))
                    (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),0x5a
                     ,iVar11,pbVar32,0);
          *(undefined4 *)(iVar22 + 0x4030) = 0;
          goto LAB_000893ac;
        }
LAB_00089d50:
        iVar11 = (**(code **)(puVar37 + 0x8844c))(iVar23 + 0x458c);
LAB_00089674:
        while (iVar11 == 0) {
          (**(code **)(puVar37 + 0x88ff4))
                    (*(int *)(puVar37 + 0x8839c) + 0x4768,*(int *)(puVar37 + 0x8839c) + 0x43dc,0x6e6
                     ,*(int *)(puVar37 + 0x8839c) + 0x4870);
LAB_0008a14c:
          iVar11 = (**(code **)(puVar37 + 0x8844c))
                             (*(int *)(puVar37 + 0x8839c) + 0x45d8,pppppbVar36);
        }
        FUN_000887e0(iVar22,iVar11);
        (**(code **)(puVar37 + 0x88394))(iVar11);
        *(undefined4 *)(iVar22 + 0x4030) = 0;
        goto LAB_000893ac;
      }
      uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x4544,iVar11);
LAB_000890b4:
      FUN_000887e0(iVar22,uVar12);
      (**(code **)(puVar37 + 0x88394))(uVar12);
      unaff_s5 = pbVar28;
LAB_000890e0:
      *(undefined4 *)(iVar22 + 0x10) = 0;
    } while( true );
  }
  uVar31 = *(uint *)(iVar22 + 0x4030);
  bVar26 = *pbVar28;
  pbVar34 = pbVar32 + -1;
  pbVar30 = pbVar28 + 1;
  if (bVar26 == 10) {
LAB_0008942c:
    pbVar28 = pbVar30;
    if (0x2d < uVar31) {
      pppppbVar36 = (byte *****)(iVar22 + 0x20);
      iVar11 = (**(code **)(puVar37 + 0x894d4))
                         (pppppbVar36,*(int *)(puVar37 + 0x8839c) + 0x4890,0x2e);
      if (iVar11 == 0) {
        if ((0 < (int)uVar31) && (uVar27 = uVar31 - 1, *(char *)(iVar22 + uVar27 + 0x20) == '\r')) {
          *(uint *)(iVar22 + 0x4030) = uVar27;
          uVar31 = uVar27;
        }
        (**(code **)(puVar37 + 0x88b68))
                  (*(undefined4 *)(*(int *)(iVar22 + 0xc) + 0x14),*(undefined4 *)(iVar22 + 4),
                   *(int *)(puVar37 + 0x8839c) + 0x4524,uVar31,pppppbVar36);
        *(undefined4 *)(iVar22 + 0x18) = 1;
        *(undefined4 *)(iVar22 + 0x4030) = 0;
        goto LAB_000893ac;
      }
    }
    uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44f4);
    goto LAB_000890b4;
  }
  pbVar18 = pbVar32;
  if (uVar31 < 0x4010) {
    uVar31 = uVar31 + 1;
    pbVar29 = pbVar28 + (int)pbVar34;
    pbVar34 = pbVar32;
    unaff_s5 = pbVar30;
    do {
      *(uint *)(iVar22 + 0x4030) = uVar31;
      *(byte *)(iVar22 + uVar31 + 0x1f) = bVar26;
      if (pbVar28 + (int)pbVar32 == unaff_s5) goto LAB_00089094;
      pbVar34 = pbVar29 + -(int)unaff_s5;
      pbVar30 = unaff_s5 + 1;
      bVar26 = *unaff_s5;
      if (bVar26 == 10) goto LAB_0008942c;
      uVar31 = uVar31 + 1;
      pbVar18 = pbVar34;
      unaff_s5 = pbVar30;
    } while (uVar31 != 0x4011);
  }
  uVar12 = (**(code **)(puVar37 + 0x8844c))(*(int *)(puVar37 + 0x8839c) + 0x44d4);
  pbVar34 = pbVar18;
  pbVar28 = pbVar30;
  goto LAB_000890b4;
}

