
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */

ulong ecoff_build_debug(HDRR *hdr,char **bufp,ecoff_debug_swap *backend)

{
  bfd_vma *pbVar1;
  PDR *pPVar2;
  ushort uVar3;
  small_free_t sVar4;
  fragS *pfVar5;
  _func_void_bfd_ptr_SYMR_ptr_void_ptr *p_Var6;
  localsym *plVar7;
  symbolS *psVar8;
  localsym *plVar9;
  AUXU AVar10;
  ecoff_proc *peVar11;
  undefined4 uVar12;
  _func_void_bfd_ptr_PDR_ptr_void_ptr *p_Var13;
  bfd_endian bVar14;
  _func_void_bfd_ptr_FDR_ptr_void_ptr *p_Var15;
  ulonglong uVar16;
  bfd_vma bVar17;
  lineno_list_t *plVar18;
  small_free_t sVar19;
  byte bVar20;
  tag_t *ptag;
  scope_t *psVar21;
  char *pcVar22;
  segT paVar23;
  uint uVar24;
  long lVar25;
  char *pcVar26;
  segT paVar27;
  segT paVar28;
  int iVar29;
  asymbol *paVar30;
  elf_obj_sy *peVar31;
  forward *pfVar32;
  tag *ptVar33;
  symint_t sVar34;
  vlinks_t *pvVar35;
  proc_t *ppVar36;
  ulong uVar37;
  tir_ext *bufptr_00;
  symbolS *psVar38;
  char cVar39;
  lineno_list *plVar40;
  lineno_list *plVar41;
  byte bVar42;
  efdr_t *peVar43;
  uint uVar44;
  localsym_t *plVar45;
  int iVar46;
  efdr *peVar47;
  ulong uVar48;
  uint uVar49;
  page *ppVar50;
  byte *pbVar51;
  byte *pbVar52;
  aux_t *paVar53;
  uint uVar54;
  page *ppVar55;
  char cVar56;
  uint uVar57;
  byte *pbVar58;
  int iVar59;
  page *ppVar60;
  bool bVar61;
  bool bVar62;
  bool bVar63;
  byte bVar64;
  valueT vVar65;
  valueT vVar66;
  lineno_list_t *local_b4;
  int local_b0;
  aux_t *local_ac;
  proc_t *local_a8;
  page *local_a4;
  page *local_a0;
  page *local_9c;
  proc_t *local_98;
  lineno_list_t *local_94;
  int local_8c;
  vlinks_t *local_88;
  page *local_7c;
  char **local_78;
  char **local_74;
  localsym *local_70;
  uint local_68;
  tag *local_64;
  vlinks_t *local_5c;
  page *local_54;
  char *buf;
  char *bufend;
  char *bufptr;
  lineno_list_t first;
  
  bVar64 = 0;
  uVar54 = (uint)backend->external_pdr_size;
  iVar29 = *(int *)((int)&backend->external_pdr_size + 4);
  if (first_file == (efdr_t *)0x0) {
    add_file((char *)0x0,1,0);
  }
  sVar19 = (small_free_t)top_tag_head->first_tag;
  ppVar36 = cur_proc_ptr;
  while (cur_proc_ptr = ppVar36, (tag *)sVar19.f_scope != (tag *)0x0) {
    ptag = (tag_t *)(sVar19.f_tag)->hash_ptr;
    if ((sVar19.f_tag)->forward_ref != (forward *)0x0) {
      add_unknown_tag(ptag,(tag_t *)&(sVar19.f_tag)->forward_ref);
      ptag = (tag_t *)(sVar19.f_tag)->hash_ptr;
    }
    sVar4 = (small_free_t)(sVar19.f_scope)->type;
    alloc_counts[5].total_free = alloc_counts[5].total_free + 1;
    ptag->basic_type = (bt_t)(sVar19.f_scope)->lsym;
    (sVar19.f_scope)->prev = (scope *)alloc_counts[5].free_list;
    alloc_counts[5].free_list = sVar19;
    sVar19 = sVar4;
    ppVar36 = cur_proc_ptr;
  }
  alloc_counts[7].total_free = alloc_counts[7].total_free + 1;
  sVar19 = top_tag_head;
  ((scope_t *)top_tag_head)->free = (scope *)alloc_counts[7].free_list;
  alloc_counts[7].free_list = sVar19;
  peVar43 = cur_file_ptr;
  cur_proc_ptr = (proc_t *)0x0;
  for (psVar38 = symbol_rootP; psVar38 != (symbolS *)0x0; psVar38 = symbol_next(psVar38)) {
    peVar31 = symbol_get_obj(psVar38);
    if (((peVar31->ecoff_symbol == (localsym *)0x0) &&
        (peVar31 = symbol_get_obj(psVar38), peVar31->ecoff_file != (efdr *)0x0)) &&
       (paVar30 = symbol_get_bfdsym(psVar38), (paVar30->flags & 0x100) == 0)) {
      peVar31 = symbol_get_obj(psVar38);
      cur_file_ptr = peVar31->ecoff_file;
      vVar65 = S_GET_VALUE(psVar38);
      add_ecoff_symbol((char *)0x0,st_Nil,sc_Nil,psVar38,0,(symint_t)vVar65,0xfffff);
    }
  }
  bVar62 = false;
  cur_proc_ptr = ppVar36;
  cur_file_ptr = peVar43;
  peVar47 = first_file;
joined_r0x000235e4:
  if (peVar47 != (efdr_t *)0x0) {
    psVar21 = peVar47->cur_scope;
    peVar43 = peVar47;
    cur_file_ptr = peVar47;
    while (psVar21 != (scope_t *)0x0) {
      while( true ) {
        psVar21 = psVar21->prev;
        if (psVar21 == (scope *)0x0) {
          add_ecoff_symbol((char *)0x0,st_End,sc_Text,(symbolS *)0x0,0,0,0);
          peVar47 = peVar47->next_file;
          goto joined_r0x000235e4;
        }
        peVar43->cur_scope = psVar21;
        if ((bVar62) || (peVar43->fake != 0)) break;
        bVar62 = true;
        pcVar22 = (char *)dcgettext(0,"missing .end or .bend at end of file",5);
        as_warn(pcVar22);
        psVar21 = cur_file_ptr->cur_scope;
        peVar43 = cur_file_ptr;
        if (psVar21 == (scope_t *)0x0) goto LAB_00023650;
      }
    }
LAB_00023650:
    peVar47 = peVar47->next_file;
    goto joined_r0x000235e4;
  }
  buf = (char *)xmalloc(0x2000);
  plVar40 = first_lineno;
  local_b4 = first_lineno;
  bufend = buf + 0x2000;
  bVar62 = debug_type == DEBUG_ECOFF;
  *(undefined4 *)&hdr->cbLineOffset = 0;
  *(undefined4 *)((int)&hdr->cbLineOffset + 4) = 0;
  hdr->ilineMax = 0;
  bufptr = buf;
  if ((bVar62) || (first_proc_ptr == (proc_t *)0x0)) {
    if (plVar40 != (lineno_list_t *)0x0) {
      plVar40 = plVar40->next;
      goto LAB_00023764;
    }
  }
  else if (plVar40 != (lineno_list_t *)0x0) {
    vVar65 = S_GET_VALUE(first_proc_ptr->sym->as_sym);
    paVar23 = S_GET_SEGMENT(first_proc_ptr->sym->as_sym);
    if ((int)(vVar65 >> 0x20) + *(int *)((int)&paVar23->vma + 4) +
        (uint)CARRY4((uint)vVar65,(uint)paVar23->vma) == 0 && (uint)vVar65 + (int)paVar23->vma == 0)
    {
      plVar40 = plVar40->next;
    }
    else {
      first.file = plVar40->file;
      first.paddr = 0;
      first.proc = plVar40->proc;
      first.lineno = 0;
      first.frag = &zero_address_frag;
      first.next = local_b4;
      local_b4 = &first;
    }
LAB_00023764:
    local_9c = (page *)0x0;
    local_ac = (aux_t *)0x0;
    local_94 = (lineno_list_t *)0x0;
    local_a0 = (page *)0x0;
    local_98 = (proc_t *)0x0;
LAB_000237a6:
    plVar41 = plVar40;
    if (plVar41 == (lineno_list *)0x0) {
      uVar24 = 1;
LAB_000237e1:
      peVar43 = local_b4->file;
      local_a8 = local_b4->proc;
      local_a4 = (page *)((int)local_9c + uVar24);
      if ((page *)peVar43 == local_a0) {
        if (local_98 != local_a8) {
          if (local_98 != (proc_t *)0x0) {
            (local_98->pdr).lnHigh = local_94->lineno;
          }
          goto LAB_000238a1;
        }
        if ((local_94 != (lineno_list_t *)0x0) &&
           (iVar46 = local_b4->lineno - local_94->lineno, iVar46 != 0)) {
          do {
            iVar59 = uVar24 - 1;
            if (iVar59 < 0x10) {
              uVar24 = 0;
            }
            else {
              uVar24 = uVar24 - 0x10;
              iVar59 = 0xf;
            }
            if (iVar46 + 7U < 0xf) {
              if (bufend <= bufptr) {
                bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,1);
              }
              local_ac = (aux_t *)((int)local_ac + 1);
              *bufptr = (char)iVar46 * '\x10' + (char)iVar59;
              bufptr = bufptr + 1;
              break;
            }
            if ((int)bufend - (int)bufptr < 3) {
              bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,3);
            }
            *bufptr = (char)iVar59 + -0x80;
            if (iVar46 < -0x8000) {
              iVar46 = iVar46 + 0x8000;
              cVar56 = -0x80;
              cVar39 = '\0';
            }
            else {
              if (iVar46 < 0x8000) goto code_r0x00024a60;
              iVar46 = iVar46 + -0x7fff;
              cVar56 = '\x7f';
              cVar39 = -1;
            }
            local_ac = (aux_t *)((int)local_ac + 3);
            pcVar22 = bufptr + 2;
            bufptr[1] = cVar56;
            bufptr = bufptr + 3;
            *pcVar22 = cVar39;
          } while( true );
        }
      }
      else {
        bVar62 = local_98 != local_a8;
        if (local_98 != (proc_t *)0x0 && bVar62) {
          (local_98->pdr).lnHigh = local_94->lineno;
          bVar62 = local_98 != (proc_t *)0x0 && bVar62;
        }
        lVar25 = 0;
        if (local_a0 != (page *)0x0) {
          local_9c = (page *)0x0;
          pbVar1 = &((FDR *)local_a0)->cbLineOffset;
          bVar17 = *pbVar1;
          *(uint *)((int)&((FDR *)local_a0)->cbLine + 4) =
               -(uint)(local_ac < (uint)*pbVar1) -
               *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);
          *(int *)&((FDR *)local_a0)->cbLine = (int)local_ac - (int)bVar17;
          ((FDR *)local_a0)->cline = (long)local_a4;
          hdr->ilineMax = hdr->ilineMax + (int)local_a4->byte;
          lVar25 = ((FDR *)local_a0)->cline + ((FDR *)local_a0)->ilineBase;
          local_a4 = (page *)uVar24;
        }
        (peVar43->fdr).ilineBase = lVar25;
        *(aux_t **)&(peVar43->fdr).cbLineOffset = local_ac;
        *(undefined4 *)((int)&(peVar43->fdr).cbLineOffset + 4) = 0;
        local_a0 = (page *)peVar43;
        if (bVar62) {
LAB_000238a1:
          if (local_a8 != (proc_t *)0x0) {
            (local_a8->pdr).lnLow = local_b4->lineno;
            pbVar1 = &((FDR *)local_a0)->cbLineOffset;
            bVar17 = *pbVar1;
            iVar46 = *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);
            *(int *)&(local_a8->pdr).cbLineOffset = (int)local_ac - (int)*pbVar1;
            *(uint *)((int)&(local_a8->pdr).cbLineOffset + 4) =
                 -(uint)(local_ac < (uint)bVar17) - iVar46;
            (local_a8->pdr).iline = (long)local_9c;
          }
        }
        else {
          local_a8 = local_98;
        }
      }
      goto LAB_000238d0;
    }
    pfVar5 = plVar41->frag;
    uVar49 = plVar41->paddr + (int)pfVar5->fr_address;
    uVar57 = *(int *)((int)&pfVar5->fr_address + 4) +
             (uint)CARRY4(plVar41->paddr,(uint)pfVar5->fr_address);
    pfVar5 = local_b4->frag;
    uVar24 = local_b4->paddr + (int)pfVar5->fr_address;
    uVar44 = *(int *)((int)&pfVar5->fr_address + 4) +
             (uint)CARRY4(local_b4->paddr,(uint)pfVar5->fr_address);
    if (uVar44 < uVar57 || uVar44 - uVar57 < (uint)(uVar24 < uVar49)) {
      uVar24 = uVar49 - uVar24 >> 2 | ((uVar57 - uVar44) - (uint)(uVar49 < uVar24)) * 0x40000000;
      goto LAB_000237e1;
    }
    goto LAB_000237a0;
  }
  local_a4 = (page *)0x0;
  local_ac = (aux_t *)0x0;
LAB_00023a3f:
  local_74 = &bufend;
  local_78 = &buf;
  hdr->ilineMax = hdr->ilineMax + (int)local_a4;
  local_68 = ecoff_padding_adjust(backend,local_78,local_74,(ulong)local_ac,&bufptr);
  iVar46 = *(int *)((int)&hdr->cbLineOffset + 4);
  *(uint *)&hdr->cbPdOffset = local_68;
  *(uint *)&hdr->cbLine = local_68 - (int)hdr->cbLineOffset;
  uVar48 = proc_cnt;
  *(uint *)((int)&hdr->cbLine + 4) = -(uint)(local_68 < (uint)hdr->cbLineOffset) - iVar46;
  *(undefined4 *)((int)&hdr->cbPdOffset + 4) = 0;
  hdr->idnMax = 0;
  *(undefined4 *)&hdr->cbDnOffset = 0;
  *(undefined4 *)((int)&hdr->cbDnOffset + 4) = 0;
  hdr->ipdMax = uVar48;
  uVar44 = (int)bufend - (int)(buf + local_68);
  uVar24 = (int)uVar44 >> 0x1f;
  uVar49 = (int)((ulonglong)uVar54 * (ulonglong)uVar48 >> 0x20) + iVar29 * uVar48;
  if (uVar24 < uVar49 ||
      uVar24 - uVar49 < (uint)(uVar44 < (uint)((ulonglong)uVar54 * (ulonglong)uVar48))) {
    ecoff_add_bytes(local_78,local_74,buf + local_68,uVar48 * uVar54);
    uVar48 = proc_cnt;
  }
  local_68 = uVar48 * uVar54 + local_68;
  uVar54 = (uint)backend->external_sym_size;
  local_a0 = (page *)(buf + local_68);
  *(uint *)&hdr->cbSymOffset = local_68;
  uVar24 = *(uint *)((int)&backend->external_sym_size + 4);
  *(undefined4 *)((int)&hdr->cbSymOffset + 4) = 0;
  p_Var6 = backend->swap_sym_out;
  if (file_desc.first != (vlinks_t *)0x0) {
    local_8c = 0;
    paVar23 = (segT)(PTR__bfd_std_section_00077fa0 + 0x180);
    pvVar35 = file_desc.first;
LAB_00023b80:
    local_5c = pvVar35;
    local_9c = local_5c->datum;
    if (local_5c->next == (vlinks *)0x0) {
      local_54 = (page *)(local_9c->file + file_desc.objects_last_page);
      if (local_54 <= local_9c) {
        local_68 = local_68 + local_8c * uVar54;
        lVar25 = __udivdi3(local_68 - (int)hdr->cbSymOffset,
                           -(uint)(local_68 < (uint)hdr->cbSymOffset) -
                           *(int *)((int)&hdr->cbSymOffset + 4),(int)backend->external_sym_size,
                           *(undefined4 *)((int)&backend->external_sym_size + 4));
        goto LAB_0002441d;
      }
    }
    else {
      local_54 = (page *)(local_9c->file + file_desc.objects_per_page);
      pvVar35 = local_5c->next;
      if (local_54 <= local_9c) goto LAB_00023b80;
    }
LAB_00023bb7:
    local_9c->ofile[0].isymBase = local_8c;
    ptVar33 = local_9c->tag[4].same_block;
    if (ptVar33 != (tag *)0x0) {
      local_a8 = (proc_t *)local_8c;
LAB_00023bdc:
      local_64 = ptVar33;
      plVar7 = (localsym *)local_64->same_name;
      if ((tag *)local_64->hash_ptr == (tag *)0x0) {
        local_70 = plVar7 + *(ushort *)(local_9c->byte + 0x9c);
        if (local_70 <= plVar7) {
          local_8c = (int)local_a8;
          ptVar33 = (tag *)((int)local_a8 - local_9c->ofile[0].isymBase);
          goto LAB_000243a4;
        }
      }
      else {
        local_70 = plVar7 + *(ushort *)(local_9c->byte + 0x9a);
        ptVar33 = (tag *)local_64->hash_ptr;
        if (local_70 <= plVar7) goto LAB_00023bdc;
      }
      ppVar50 = (page *)plVar7->file_ptr;
      do {
        if (ppVar50 != local_9c) {
                    /* WARNING: Subroutine does not return */
          as_abort("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");
        }
        psVar38 = plVar7->as_sym;
        if (psVar38 == (symbolS *)0x0) {
          plVar9 = plVar7->begin_ptr;
          if (plVar9 == (localsym *)0x0) {
            pfVar32 = plVar7->forward_ref;
joined_r0x000242a4:
            if (pfVar32 != (forward *)0x0) {
              local_a4 = (page *)((int)local_a8 - local_8c);
              goto LAB_00023ff8;
            }
          }
          else {
LAB_00023e89:
            iVar29 = plVar9->sym_index;
            if (iVar29 == -1) {
                    /* WARNING: Subroutine does not return */
              as_abort("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");
            }
            uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff | iVar29 << 0xc;
            *(uint *)&(plVar7->ecoff_sym).asym.field_0xc = uVar44;
            if (((ushort)uVar44 & 0x7c0) != 0x2c0) {
              (plVar7->ecoff_sym).asym.iss = (plVar9->ecoff_sym).asym.iss;
            }
            bVar20 = (plVar9->ecoff_sym).asym.field_0xc;
            if (((bVar20 & 0x3f) + 0x39 & 0x3b) == 0) {
              local_a4 = (page *)((int)local_a8 - local_8c);
              *(uint *)&(plVar9->ecoff_sym).asym.field_0xc =
                   *(uint *)&(plVar9->ecoff_sym).asym.field_0xc & 0xfff |
                   ((int)local_a4->byte + 1) * 0x1000;
              (*p_Var6)(stdoutput,&(plVar9->ecoff_sym).asym,buf + iVar29 * uVar54 + local_68);
              if ((bVar20 & 0x37) == 6) goto LAB_00024180;
              if (((bVar20 & 0x3f) == 7) &&
                 ((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7c0) != 0x2c0)) {
                if (psVar38 == (symbolS *)0x0) {
                    /* WARNING: Subroutine does not return */
                  as_abort("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");
                }
                if (plVar7->proc_ptr == (ecoff_proc *)0x0) {
                    /* WARNING: Subroutine does not return */
                  as_abort("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");
                }
                psVar8 = plVar7->proc_ptr->sym->as_sym;
                paVar27 = S_GET_SEGMENT(psVar38);
                paVar28 = S_GET_SEGMENT(psVar8);
                if (paVar27 != paVar28) {
                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);
                  as_warn(pcVar22);
                }
                vVar65 = S_GET_VALUE(psVar38);
                vVar66 = S_GET_VALUE(psVar8);
                local_b4 = (lineno_list_t *)vVar65;
                local_b0 = (int)(vVar65 >> 0x20);
                pfVar32 = plVar7->forward_ref;
                *(uint *)&(plVar7->ecoff_sym).asym.value = (int)local_b4 - (uint)vVar66;
                *(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =
                     (local_b0 - (int)(vVar66 >> 0x20)) - (uint)(local_b4 < (uint)vVar66);
              }
              else {
                pfVar32 = plVar7->forward_ref;
              }
            }
            else {
              if (plVar9->index_ptr == (ecoff_aux *)0x0) {
                    /* WARNING: Subroutine does not return */
                as_abort("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");
              }
              local_a4 = (page *)((int)local_a8 - local_8c);
              (plVar9->index_ptr->data).dnLow = (int)local_a4->byte + 1;
              if ((bVar20 & 0x37) == 6) {
LAB_00024180:
                if (psVar38 == (symbolS *)0x0) {
                    /* WARNING: Subroutine does not return */
                  as_abort("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");
                }
                if (plVar9->as_sym == (symbolS *)0x0) {
                    /* WARNING: Subroutine does not return */
                  as_abort("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");
                }
                paVar27 = S_GET_SEGMENT(psVar38);
                paVar28 = S_GET_SEGMENT(plVar9->as_sym);
                if (paVar27 != paVar28) {
                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);
                  as_warn(pcVar22);
                }
                vVar65 = S_GET_VALUE(psVar38);
                vVar66 = S_GET_VALUE(plVar9->as_sym);
                uVar16 = vVar65 - vVar66;
                if ((uVar16 & 1) == 0) {
                  (plVar7->ecoff_sym).asym.value = uVar16;
                }
                else {
                  (plVar7->ecoff_sym).asym.value = uVar16 + 1;
                }
                paVar30 = symbol_get_bfdsym(plVar9->as_sym);
                uVar12 = *(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4);
                *(int *)&paVar30[1].value = (int)(plVar7->ecoff_sym).asym.value;
                *(undefined4 *)((int)&paVar30[1].value + 4) = uVar12;
                pfVar32 = plVar7->forward_ref;
                goto joined_r0x000242a4;
              }
              pfVar32 = plVar7->forward_ref;
            }
joined_r0x000247a5:
            if (pfVar32 != (forward *)0x0) {
LAB_00023ff8:
              AVar10 = (AUXU)local_9c->file[0].file_index;
              do {
                paVar53 = pfVar32->index_ptr;
                pfVar32->ifd_ptr->data = AVar10;
                (paVar53->data).dnLow = (paVar53->data).dnLow & 0xfffU | (int)local_a4 << 0xc;
                pfVar32 = pfVar32->next;
              } while (pfVar32 != (forward *)0x0);
            }
          }
LAB_0002402d:
          uVar44 = (int)bufend - (int)local_a0->byte >> 0x1f;
          if (uVar44 < uVar24 ||
              uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)local_a0->byte) < uVar54)) {
            local_a0 = (page *)ecoff_add_bytes(local_78,local_74,local_a0->byte,uVar54);
          }
          (*p_Var6)(stdoutput,&(plVar7->ecoff_sym).asym,local_a0);
          local_a0 = (page *)((int)local_a0 + uVar54);
          plVar7->sym_index = (long)local_a8;
          peVar11 = plVar7->proc_ptr;
          if ((peVar11 != (ecoff_proc *)0x0) && (peVar11->sym == plVar7)) {
            (peVar11->pdr).isym = (int)local_a8 - local_8c;
          }
          local_a8 = (proc_t *)((int)local_a8 + 1);
          if ((psVar38 != (symbolS *)0x0) &&
             (peVar31 = symbol_get_obj(psVar38), peVar31->ecoff_symbol == plVar7)) {
            if (((plVar7->ecoff_sym).asym.field_0xc & 0x37) == 6) {
              *(uint *)&(plVar7->ecoff_sym).asym.field_0xc =
                   *(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff |
                   (((int)local_a8 - local_8c) + -1) * 0x1000;
            }
            goto LAB_00024347;
          }
        }
        else {
          if ((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff) == 0x47) {
            if (plVar7->proc_ptr == (ecoff_proc *)0x0) {
                    /* WARNING: Subroutine does not return */
              as_abort("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");
            }
            psVar8 = plVar7->proc_ptr->sym->as_sym;
            paVar27 = S_GET_SEGMENT(psVar38);
            paVar28 = S_GET_SEGMENT(psVar8);
            if (paVar27 != paVar28) {
              pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);
              as_warn(pcVar22);
            }
            vVar65 = S_GET_VALUE(psVar38);
            vVar66 = S_GET_VALUE(psVar8);
            (plVar7->ecoff_sym).asym.value = vVar65 - vVar66;
          }
          else {
            vVar65 = S_GET_VALUE(psVar38);
            paVar27 = S_GET_SEGMENT(psVar38);
            ptVar33 = *(tag **)&plVar7->addend;
            uVar44 = (int)&(*(tag **)&plVar7->addend)->free + (uint)vVar65;
            bVar17 = paVar27->vma;
            iVar29 = *(int *)((int)&paVar27->vma + 4);
            *(uint *)&(plVar7->ecoff_sym).asym.value = uVar44 + (int)paVar27->vma;
            *(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =
                 (int)&(*(tag **)((int)&plVar7->addend + 4))->free +
                 (uint)CARRY4(uVar44,(uint)bVar17) +
                 iVar29 + (uint)CARRY4((uint)vVar65,(uint)ptVar33) + (int)(vVar65 >> 0x20);
          }
          iVar29 = S_IS_WEAK(psVar38);
          *(byte *)&plVar7->ecoff_sym =
               *(byte *)&plVar7->ecoff_sym & 0xfb | ((byte)iVar29 & 1) * '\x04';
          if ((((((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 6) &&
               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) &&
              (iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0)) &&
             (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) {
            (plVar7->ecoff_sym).asym.field_0xc = (plVar7->ecoff_sym).asym.field_0xc & 0xc0 | 0xe;
          }
          if (((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff) == 0) &&
             ((uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc,
              (uVar44 & 0xfff00) != 0x8f300 || ((uVar44 & 0xfffdf) != 0x8f3c0)))) {
            paVar27 = S_GET_SEGMENT(psVar38);
            pbVar52 = (byte *)paVar27->name;
            if (((*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300) ||
               (((iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0 &&
                 (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&
                (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)))) {
              bVar20 = (paVar27 == text_section) * '\x03' + 2;
            }
            else {
              paVar30 = symbol_get_bfdsym(psVar38);
              bVar20 = (-((paVar30->flags & 8) == 0) & 0xfbU) + 6;
            }
            iVar29 = S_IS_DEFINED(psVar38);
            if (iVar29 == 0) {
              peVar31 = symbol_get_obj(psVar38);
              iVar29 = *(int *)((int)&peVar31->ecoff_extern_size + 4);
              uVar49 = (uint)peVar31->ecoff_extern_size;
              if ((iVar29 == 0 && uVar49 == 0) ||
                 (uVar44 = bfd_get_gp_size(stdoutput),
                 iVar29 != 0 || (uint)-iVar29 < (uint)(uVar44 < uVar49))) {
                bVar42 = 6;
              }
              else {
                *(uint *)&(plVar7->ecoff_sym).asym.value = uVar49;
                bVar42 = 0x15;
                *(int *)((int)&(plVar7->ecoff_sym).asym.value + 4) = iVar29;
              }
              paVar30 = symbol_get_bfdsym(psVar38);
              uVar44 = (uint)bVar42;
              *(uint *)&paVar30[1].value = uVar49;
              *(int *)((int)&paVar30[1].value + 4) = iVar29;
            }
            else {
              iVar29 = S_IS_COMMON(psVar38);
              if (iVar29 == 0) {
                uVar44 = 1;
                if (paVar27 != text_section) {
                  uVar44 = 2;
                  bVar62 = paVar27 < data_section;
                  bVar63 = paVar27 == data_section;
                  if (!bVar63) {
                    iVar29 = 7;
                    uVar44 = 0xf;
                    pbVar51 = pbVar52;
                    pbVar58 = (byte *)".rdata";
                    do {
                      if (iVar29 == 0) break;
                      iVar29 = iVar29 + -1;
                      bVar62 = *pbVar51 < *pbVar58;
                      bVar63 = *pbVar51 == *pbVar58;
                      pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;
                      pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;
                    } while (bVar63);
                    bVar61 = false;
                    bVar62 = (!bVar62 && !bVar63) == bVar62;
                    if (!bVar62) {
                      iVar29 = 8;
                      pbVar51 = pbVar52;
                      pbVar58 = (byte *)".rodata";
                      do {
                        if (iVar29 == 0) break;
                        iVar29 = iVar29 + -1;
                        bVar61 = *pbVar51 < *pbVar58;
                        bVar62 = *pbVar51 == *pbVar58;
                        pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;
                        pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;
                      } while (bVar62);
                      bVar63 = false;
                      bVar62 = (!bVar61 && !bVar62) == bVar61;
                      if (!bVar62) {
                        iVar29 = 7;
                        uVar44 = 0xd;
                        pbVar51 = pbVar52;
                        pbVar58 = (byte *)".sdata";
                        do {
                          if (iVar29 == 0) break;
                          iVar29 = iVar29 + -1;
                          bVar63 = *pbVar51 < *pbVar58;
                          bVar62 = *pbVar51 == *pbVar58;
                          pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;
                          pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;
                        } while (bVar62);
                        if ((!bVar63 && !bVar62) != bVar63) {
                          uVar44 = 3;
                          bVar62 = paVar27 < bss_section;
                          bVar63 = paVar27 == bss_section;
                          if (!bVar63) {
                            iVar29 = 6;
                            uVar44 = 0xe;
                            pbVar51 = (byte *)".sbss";
                            do {
                              if (iVar29 == 0) break;
                              iVar29 = iVar29 + -1;
                              bVar62 = *pbVar52 < *pbVar51;
                              bVar63 = *pbVar52 == *pbVar51;
                              pbVar52 = pbVar52 + (uint)bVar64 * -2 + 1;
                              pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;
                            } while (bVar63);
                            if ((!bVar62 && !bVar63) != bVar62) {
                              uVar44 = (uint)(paVar27 == paVar23) * 3 + 2;
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
              else {
                vVar65 = S_GET_VALUE(psVar38);
                if (vVar65 != 0) {
                  vVar65 = S_GET_VALUE(psVar38);
                  iVar29 = (int)(vVar65 >> 0x20);
                  uVar49 = bfd_get_gp_size(stdoutput);
                  uVar44 = 0x12;
                  if (iVar29 == 0 && (uint)(uVar49 < (uint)vVar65) <= (uint)-iVar29)
                  goto LAB_00023df1;
                }
                uVar44 = 0x11;
              }
            }
LAB_00023df1:
            (plVar7->ecoff_sym).asym.field_0xc =
                 (plVar7->ecoff_sym).asym.field_0xc & 0xc0 | bVar20 & 0x3f;
            *(ushort *)&(plVar7->ecoff_sym).asym.field_0xc =
                 *(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0xf83f | (ushort)(uVar44 << 6);
          }
          iVar29 = S_IS_EXTERNAL(psVar38);
          if (((((iVar29 == 0) && (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&
               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) ||
              ((plVar7->proc_ptr != (ecoff_proc *)0x0 ||
               (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 0)))) ||
             ((*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300)) {
            iVar29 = S_IS_COMMON(psVar38);
            if (iVar29 == 0) {
              if (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) != 8) {
                ptVar33 = (tag *)plVar7->name;
                pcVar22 = strchr((char *)ptVar33,1);
                if (pcVar22 != (char *)0x0) goto LAB_00023e7a;
                sVar34 = add_string(&local_9c->file[0].strings,local_9c->file[0].str_hash,
                                    (char *)ptVar33,(shash_t **)0x0);
                (plVar7->ecoff_sym).asym.iss = sVar34;
                plVar9 = plVar7->begin_ptr;
                if (plVar9 != (localsym *)0x0) goto LAB_00023e89;
                pfVar32 = plVar7->forward_ref;
                local_a4 = (page *)((int)local_a8 - local_8c);
                goto joined_r0x000247a5;
              }
LAB_00023e7a:
              plVar9 = plVar7->begin_ptr;
              if (plVar9 != (localsym *)0x0) goto LAB_00023e89;
              pfVar32 = plVar7->forward_ref;
              if (pfVar32 != (forward *)0x0) {
                local_a4 = (page *)((int)local_a8 - local_8c);
                goto LAB_00023ff8;
              }
              goto LAB_0002402d;
            }
          }
          else {
            S_IS_COMMON(psVar38);
          }
          if (plVar7->begin_ptr != (localsym *)0x0) {
                    /* WARNING: Subroutine does not return */
            as_abort("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");
          }
          if (plVar7->forward_ref != (forward *)0x0) {
                    /* WARNING: Subroutine does not return */
            as_abort("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");
          }
          peVar31 = symbol_get_obj(psVar38);
          if (plVar7 == peVar31->ecoff_symbol) {
LAB_00024347:
            (plVar7->ecoff_sym).ifd = local_9c->file[0].file_index;
            iVar29 = S_IS_EXTERNAL(psVar38);
            if ((iVar29 != 0) || (iVar29 = S_IS_WEAK(psVar38), iVar29 != 0)) {
              local_9c->ubyte[0x44] = local_9c->ubyte[0x44] & 0xdf;
            }
          }
        }
        if (local_70 <= plVar7 + 1) goto LAB_00024380;
        ppVar50 = (page *)plVar7[1].file_ptr;
        plVar7 = plVar7 + 1;
      } while( true );
    }
    goto LAB_000243a4;
  }
  hdr->isymMax = 0;
LAB_0002554e:
  hdr->ioptMax = 0;
  *(undefined4 *)&hdr->cbOptOffset = 0;
  *(undefined4 *)((int)&hdr->cbOptOffset + 4) = 0;
  *(undefined4 *)((int)&hdr->cbAuxOffset + 4) = 0;
  *(uint *)&hdr->cbAuxOffset = local_68;
LAB_00024eaa:
  uVar37 = ecoff_padding_adjust(backend,local_78,local_74,local_68,(char **)0x0);
  hdr->iauxMax = uVar37 - (int)hdr->cbAuxOffset >> 2 |
                 (-(uint)(uVar37 < (uint)hdr->cbAuxOffset) - *(int *)((int)&hdr->cbAuxOffset + 4)) *
                 0x40000000;
  *(ulong *)&hdr->cbSsOffset = uVar37;
  pvVar35 = file_desc.first;
  local_9c = (page *)file_desc.first;
  *(undefined4 *)((int)&hdr->cbSsOffset + 4) = 0;
  uVar48 = uVar37;
  if (pvVar35 != (vlinks_t *)0x0) {
    local_a8 = (proc_t *)0x0;
    do {
      uVar3 = file_desc.objects_last_page;
      if (*(vlinks **)((int)local_9c + 4) != (vlinks *)0x0) {
        uVar3 = file_desc.objects_per_page;
      }
      ppVar50 = *(page **)((int)local_9c + 8);
      ppVar55 = (page *)(ppVar50->file + uVar3);
      ppVar60 = (page *)*(vlinks **)((int)local_9c + 4);
      if (ppVar50 < ppVar55) {
        do {
          ppVar50->shash[0].sym_ptr = (localsym_t *)local_a8;
          pvVar35 = ppVar50->file[0].strings.first;
          pcVar22 = buf + uVar48;
          if (pvVar35 == (vlinks_t *)0x0) {
            peVar47 = (efdr *)0x0;
            lVar25 = 0;
          }
          else {
            peVar47 = (efdr *)0x0;
            do {
              if (pvVar35->next == (vlinks *)0x0) {
                uVar3 = ppVar50->ofile[1].ipdFirst;
              }
              else {
                uVar3 = *(ushort *)(ppVar50->byte + 0x86);
              }
              uVar54 = (uint)uVar3;
              if ((uint)((int)bufend - (int)pcVar22) < uVar54) {
                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);
              }
              peVar47 = (efdr *)((int)&(peVar47->fdr).adr + uVar54);
              memcpy(pcVar22,pvVar35->datum,uVar54);
              pvVar35 = pvVar35->next;
              pcVar22 = pcVar22 + uVar54;
            } while (pvVar35 != (vlinks *)0x0);
            local_a8 = (proc_t *)((int)&(peVar47->fdr).adr + (int)&local_a8->sym);
            lVar25 = (int)peVar47 >> 0x1f;
            uVar48 = (int)&((localsym_t *)local_a8)->name + uVar37;
          }
          ppVar50->sym[0].file_ptr = peVar47;
          ppVar60 = (page *)(ppVar50->byte + 0x294);
          ppVar50->lineno[0].lineno = lVar25;
          ppVar50 = ppVar60;
        } while (ppVar60 < ppVar55);
        ppVar60 = (page *)*(vlinks **)((int)local_9c + 4);
      }
      local_9c = ppVar60;
    } while (local_9c != (page *)0x0);
  }
  local_9c = (page *)ecoff_padding_adjust(backend,local_78,local_74,uVar48,(char **)0x0);
  uVar54 = *(uint *)((int)&backend->external_fdr_size + 4);
  hdr->crfd = 0;
  hdr->issMax = (int)local_9c->byte - (int)hdr->cbSsOffset;
  *(undefined4 *)&hdr->cbRfdOffset = 0;
  *(undefined4 *)((int)&hdr->cbRfdOffset + 4) = 0;
  *(page **)&hdr->cbFdOffset = local_9c;
  pcVar22 = buf + (int)local_9c;
  *(undefined4 *)((int)&hdr->cbFdOffset + 4) = 0;
  p_Var15 = backend->swap_fdr_out;
  uVar24 = (uint)backend->external_fdr_size;
  if (file_desc.first == (vlinks_t *)0x0) {
    lVar25 = 0;
  }
  else {
    local_ac = (aux_t *)0x0;
    ppVar36 = (proc_t *)file_desc.first;
LAB_000251e2:
    do {
      local_98 = ppVar36;
      ppVar50 = *(page **)((int)local_98 + 8);
      pcVar26 = pcVar22;
      if (*(vlinks **)&local_98->pdr == (vlinks *)0x0) {
        ppVar60 = (page *)(ppVar50->file + file_desc.objects_last_page);
        if (ppVar60 <= ppVar50) {
          local_9c = (page *)((int)local_9c->byte + (int)local_ac * uVar24);
          lVar25 = __udivdi3((int)local_9c - (int)hdr->cbFdOffset,
                             -(uint)(local_9c < (uint)hdr->cbFdOffset) -
                             *(int *)((int)&hdr->cbFdOffset + 4),(int)backend->external_fdr_size,
                             *(undefined4 *)((int)&backend->external_fdr_size + 4));
          goto LAB_000252e8;
        }
      }
      else {
        ppVar60 = (page *)(ppVar50->file + file_desc.objects_per_page);
        ppVar36 = (proc_t *)*(vlinks **)&local_98->pdr;
        if (ppVar60 <= ppVar50) goto LAB_000251e2;
      }
      do {
        uVar44 = (int)bufend - (int)pcVar26 >> 0x1f;
        if (uVar44 < uVar54 || uVar44 - uVar54 < (uint)((uint)((int)bufend - (int)pcVar26) < uVar24)
           ) {
          pcVar26 = ecoff_add_bytes(local_78,local_74,pcVar26,uVar24);
        }
        pcVar22 = pcVar26 + uVar24;
        ppVar55 = (page *)(ppVar50->byte + 0x294);
        (*p_Var15)(stdoutput,(FDR *)ppVar50,pcVar26);
        local_ac = (aux_t *)((int)local_ac + 1);
        pcVar26 = pcVar22;
        ppVar50 = ppVar55;
      } while (ppVar55 < ppVar60);
      ppVar36 = (proc_t *)*(vlinks **)&local_98->pdr;
    } while (*(vlinks **)&local_98->pdr != (vlinks *)0x0);
    local_9c = (page *)((int)local_9c->byte + (int)local_ac * uVar24);
    lVar25 = __udivdi3((int)local_9c - (int)hdr->cbFdOffset,
                       -(uint)(local_9c < (uint)hdr->cbFdOffset) -
                       *(int *)((int)&hdr->cbFdOffset + 4),(int)backend->external_fdr_size,
                       *(undefined4 *)((int)&backend->external_fdr_size + 4));
  }
LAB_000252e8:
  hdr->ifdMax = lVar25;
  hdr->issExtMax = 0;
  psVar38 = symbol_rootP;
  *(undefined4 *)&hdr->cbSsExtOffset = 0;
  *(undefined4 *)((int)&hdr->cbSsExtOffset + 4) = 0;
  hdr->iextMax = 0;
  *(undefined4 *)&hdr->cbExtOffset = 0;
  *(undefined4 *)((int)&hdr->cbExtOffset + 4) = 0;
  for (; psVar38 != (symbolS *)0x0; psVar38 = symbol_next(psVar38)) {
    peVar31 = symbol_get_obj(psVar38);
    if (peVar31->ecoff_symbol != (localsym *)0x0) {
      iVar29 = S_IS_EXTERNAL(psVar38);
      if (((iVar29 == 0) && (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&
         (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) {
        peVar31 = symbol_get_obj(psVar38);
        plVar7 = peVar31->ecoff_symbol;
        uVar54 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc;
        *(undefined4 *)&(plVar7->ecoff_sym).asym.value = 0;
        *(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4) = 0;
        *(uint *)&(plVar7->ecoff_sym).asym.field_0xc = uVar54 & 0x800 | 0xfffff000;
      }
      peVar31 = symbol_get_obj(psVar38);
      elf_ecoff_set_ext(psVar38,&peVar31->ecoff_symbol->ecoff_sym);
    }
  }
  if (((int)backend->debug_align - 1U & (uint)local_9c) == 0) {
    hdr->vstamp = 0x30b;
    *bufp = buf;
    return (ulong)local_9c;
  }
                    /* WARNING: Subroutine does not return */
  as_abort("../../gas/ecoff.c",0x129d,"ecoff_build_debug");
code_r0x00024a60:
  local_ac = (aux_t *)((int)local_ac + 3);
  pcVar22 = bufptr + 2;
  bufptr[1] = (char)((uint)iVar46 >> 8);
  bufptr = bufptr + 3;
  *pcVar22 = (char)iVar46;
LAB_000238d0:
  if (0 < (int)uVar24) {
    uVar24 = uVar24 - 1;
    local_ac = (aux_t *)((int)local_ac + 1);
    uVar44 = (uVar24 >> 4) + (int)local_ac;
    if (bufend <= bufptr) goto LAB_00023925;
    while (pcVar22 = bufptr + 1, pcVar26 = bufptr, bufptr = pcVar22, 0xf < uVar24) {
      while( true ) {
        uVar24 = uVar24 - 0x10;
        *pcVar26 = '\x0f';
        if ((aux_t *)uVar44 == local_ac) goto LAB_00023953;
        local_ac = (aux_t *)((int)local_ac + 1);
        if (bufptr < bufend) break;
LAB_00023925:
        pcVar26 = ecoff_add_bytes(&buf,&bufend,bufptr,1);
        bufptr = pcVar26 + 1;
        if (uVar24 < 0x10) goto LAB_00023944;
      }
    }
LAB_00023944:
    *pcVar26 = (char)uVar24;
  }
LAB_00023953:
  plVar41 = local_b4->next;
  if (plVar41 == (lineno_list *)0x0) goto LAB_00023a10;
  local_9c = local_a4;
  local_94 = local_b4;
  local_98 = local_a8;
LAB_000237a0:
  plVar40 = plVar41->next;
  local_b4 = plVar41;
  goto LAB_000237a6;
LAB_00023a10:
  if (local_a8 != (proc_t *)0x0) {
    (local_a8->pdr).lnHigh = local_b4->lineno;
  }
  if (local_a0 != (page *)0x0) {
    pbVar1 = &((FDR *)local_a0)->cbLineOffset;
    *(int *)&((FDR *)local_a0)->cbLine = (int)local_ac - (int)*pbVar1;
    *(uint *)((int)&((FDR *)local_a0)->cbLine + 4) =
         -(uint)(local_ac < (uint)*pbVar1) - *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);
    ((FDR *)local_a0)->cline = (long)local_a4;
  }
  goto LAB_00023a3f;
LAB_00024380:
  ptVar33 = (tag *)local_64->hash_ptr;
  if ((tag *)local_64->hash_ptr == (tag *)0x0) goto code_r0x00024393;
  goto LAB_00023bdc;
code_r0x00024393:
  ptVar33 = (tag *)((int)local_a8 - local_9c->ofile[0].isymBase);
  local_8c = (int)local_a8;
LAB_000243a4:
  local_9c->sym[0].index_ptr = (ecoff_aux *)ptVar33;
  local_9c = (page *)(local_9c->byte + 0x294);
  if (local_54 <= local_9c) goto code_r0x000243bf;
  goto LAB_00023bb7;
code_r0x000243bf:
  pvVar35 = local_5c->next;
  if (local_5c->next == (vlinks *)0x0) goto code_r0x000243ce;
  goto LAB_00023b80;
code_r0x000243ce:
  local_68 = local_68 + local_8c * uVar54;
  lVar25 = __udivdi3(local_68 - (int)hdr->cbSymOffset,
                     -(uint)(local_68 < (uint)hdr->cbSymOffset) -
                     *(int *)((int)&hdr->cbSymOffset + 4),(int)backend->external_sym_size,
                     *(undefined4 *)((int)&backend->external_sym_size + 4));
LAB_0002441d:
  plVar7 = (localsym *)file_desc.first;
  hdr->isymMax = lVar25;
  pcVar22 = buf + (int)hdr->cbPdOffset;
  uVar54 = (uint)backend->external_pdr_size;
  uVar24 = *(uint *)((int)&backend->external_pdr_size + 4);
  p_Var13 = backend->swap_pdr_out;
  if (plVar7 != (localsym *)0x0) {
    uVar3 = 0;
LAB_00024474:
    do {
      local_70 = plVar7;
      local_a4 = *(page **)&local_70->addend;
      if ((vlinks *)local_70->as_sym == (vlinks *)0x0) {
        local_7c = (page *)(local_a4->file + file_desc.objects_last_page);
        if (local_7c <= local_a4) break;
      }
      else {
        local_7c = (page *)(local_a4->file + file_desc.objects_per_page);
        plVar7 = (localsym *)local_70->as_sym;
        if (local_7c <= local_a4) goto LAB_00024474;
      }
      do {
        bVar62 = true;
        local_a4->ofile[0].ipdFirst = uVar3;
        pvVar35 = local_a4->file[0].procs.first;
        if (pvVar35 != (vlinks_t *)0x0) {
LAB_000244d8:
          do {
            local_88 = pvVar35;
            if (local_88->next == (vlinks *)0x0) {
              ppVar50 = local_88->datum;
              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xb0) * 0x44);
              if (local_a0 <= ppVar50) break;
            }
            else {
              ppVar50 = local_88->datum;
              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xae) * 0x44);
              pvVar35 = local_88->next;
              if (local_a0 <= ppVar50) goto LAB_000244d8;
            }
            do {
              psVar38 = (ppVar50->proc[0].sym)->as_sym;
              vVar65 = S_GET_VALUE(psVar38);
              paVar23 = S_GET_SEGMENT(psVar38);
              plVar45 = (localsym_t *)((int)vVar65 + (int)paVar23->vma);
              if (bVar62) {
                iVar29 = 0;
                local_a4->proc[0].sym = plVar45;
                iVar46 = 0;
                local_a4->sym[0].as_sym = (symbolS *)0x0;
              }
              else {
                iVar29 = (int)plVar45 - local_a4->aux[0].type;
                iVar46 = -(uint)(plVar45 < local_a4->proc[0].sym) - local_a4->dense[0].index;
              }
              *(int *)((int)ppVar50 + 4) = iVar29;
              *(int *)((int)ppVar50 + 8) = iVar46;
              uVar44 = (int)bufend - (int)pcVar22 >> 0x1f;
              if (uVar44 < uVar24 ||
                  uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)pcVar22) < uVar54)) {
                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);
              }
              pPVar2 = (PDR *)((int)ppVar50 + 4);
              ppVar50 = (page *)((int)ppVar50 + 0x44);
              (*p_Var13)(stdoutput,pPVar2,pcVar22);
              pcVar22 = pcVar22 + uVar54;
              bVar62 = false;
              uVar3 = uVar3 + 1;
            } while (ppVar50 < local_a0);
            pvVar35 = local_88->next;
          } while (local_88->next != (vlinks *)0x0);
          pvVar35 = (vlinks_t *)(uint)(ushort)(uVar3 - local_a4->ofile[0].ipdFirst);
        }
        local_a4->ofile[0].cpd = (short)pvVar35;
        local_a4 = (page *)(local_a4->byte + 0x294);
      } while (local_a4 < local_7c);
      plVar7 = (localsym *)local_70->as_sym;
    } while ((vlinks *)local_70->as_sym != (vlinks *)0x0);
    plVar18 = (lineno_list_t *)file_desc.first;
    hdr->ioptMax = 0;
    *(undefined4 *)&hdr->cbOptOffset = 0;
    *(undefined4 *)((int)&hdr->cbOptOffset + 4) = 0;
    *(undefined4 *)((int)&hdr->cbAuxOffset + 4) = 0;
    *(uint *)&hdr->cbAuxOffset = local_68;
    bVar14 = stdoutput->xvec->byteorder;
    bufptr_00 = (tir_ext *)(buf + local_68);
    if (plVar18 != (lineno_list_t *)0x0) {
      iVar29 = 0;
LAB_00024d54:
      do {
        local_94 = plVar18;
        local_a0 = (page *)local_94->proc;
        if ((vlinks *)local_94->file == (vlinks *)0x0) {
          local_9c = (page *)(local_a0->file + file_desc.objects_last_page);
          if (local_9c <= local_a0) break;
        }
        else {
          local_9c = (page *)(local_a0->file + file_desc.objects_per_page);
          plVar18 = (lineno_list_t *)local_94->file;
          if (local_9c <= local_a0) goto LAB_00024d54;
        }
        do {
          local_a0->ofile[0].iauxBase = iVar29;
          local_a0->ubyte[0x44] = local_a0->ubyte[0x44] & 0x7f | (bVar14 == BFD_ENDIAN_BIG) << 7;
          ppVar36 = (proc_t *)local_a0->forward[0xb].free;
          if (ppVar36 != (proc_t *)0x0) {
LAB_00024dd0:
            do {
              local_a8 = ppVar36;
              paVar53 = *(aux_t **)((int)local_a8 + 8);
              if (*(forward **)&local_a8->pdr == (forward *)0x0) {
                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc4);
                if (local_ac <= paVar53) break;
              }
              else {
                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc2);
                ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;
                if (local_ac <= paVar53) goto LAB_00024dd0;
              }
              do {
                if ((uint)((int)bufend - (int)bufptr_00) < 4) {
                  bufptr_00 = (tir_ext *)ecoff_add_bytes(local_78,local_74,(char *)bufptr_00,4);
                }
                iVar46 = SUB14(bVar14 == BFD_ENDIAN_BIG,0);
                switch(paVar53->type) {
                case aux_tir:
                  (*backend->swap_tir_out)(iVar46,&(paVar53->data).ti,bufptr_00);
                  break;
                case aux_rndx:
                  (*backend->swap_rndx_out)(iVar46,&(paVar53->data).rndx,(rndx_ext *)bufptr_00);
                  break;
                case aux_dnLow:
                case aux_dnHigh:
                case aux_isym:
                case aux_iss:
                case aux_width:
                case aux_count:
                  iVar46 = (paVar53->data).dnLow;
                  if (bVar14 == BFD_ENDIAN_BIG) {
                    bfd_putb32(iVar46,iVar46 >> 0x1f,bufptr_00);
                  }
                  else {
                    bfd_putl32(iVar46,iVar46 >> 0x1f,bufptr_00);
                  }
                }
                bufptr_00 = bufptr_00 + 1;
                iVar29 = iVar29 + 1;
                paVar53 = paVar53 + 1;
              } while (paVar53 < local_ac);
              ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;
            } while (*(forward **)&local_a8->pdr != (forward *)0x0);
            ppVar36 = (proc_t *)(iVar29 - local_a0->ofile[0].iauxBase);
          }
          local_a0->forward[3].ifd_ptr = (aux_t *)ppVar36;
          local_a0 = (page *)(local_a0->byte + 0x294);
        } while (local_a0 < local_9c);
        plVar18 = (lineno_list_t *)local_94->file;
      } while ((vlinks *)local_94->file != (vlinks *)0x0);
      local_68 = local_68 + iVar29 * 4;
    }
    goto LAB_00024eaa;
  }
  goto LAB_0002554e;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */

uint FUN_00023460(int param_1,undefined4 *param_2,int param_3)

{
  char *pcVar1;
  ushort uVar2;
  int *piVar3;
  undefined4 *****pppppuVar4;
  code *pcVar5;
  undefined4 *puVar6;
  uint *puVar7;
  undefined1 uVar8;
  short sVar9;
  ulonglong uVar10;
  byte bVar11;
  int iVar12;
  undefined4 uVar13;
  char *pcVar14;
  int iVar15;
  uint uVar16;
  undefined4 *****pppppuVar17;
  undefined4 *****pppppuVar18;
  char *pcVar19;
  undefined4 *puVar20;
  int iVar21;
  undefined4 uVar22;
  undefined4 *puVar23;
  char *pcVar24;
  int *piVar25;
  int iVar26;
  undefined4 ******ppppppuVar27;
  char cVar28;
  undefined4 *******pppppppuVar29;
  undefined4 *******pppppppuVar30;
  byte bVar31;
  uint uVar32;
  uint uVar33;
  byte *pbVar34;
  byte *pbVar35;
  uint uVar36;
  char cVar37;
  uint uVar38;
  byte *pbVar39;
  bool bVar40;
  bool bVar41;
  bool bVar42;
  byte bVar43;
  undefined8 uVar44;
  longlong lVar45;
  longlong lVar46;
  undefined4 *******local_b4;
  undefined4 *****local_ac;
  undefined4 ******local_a8;
  undefined4 *****local_a4;
  undefined4 ******local_a0;
  undefined4 *****local_9c;
  undefined4 ******local_98;
  undefined4 *******local_94;
  int local_8c;
  uint local_88;
  uint *local_7c;
  undefined4 *local_70;
  uint local_68;
  int local_64;
  int local_5c;
  uint local_54;
  char *local_38;
  undefined4 *******local_34;
  undefined4 ******local_30;
  undefined4 ******local_2c;
  undefined4 *local_28;
  undefined4 local_24;
  undefined4 local_20;
  undefined4 uStack_14;
  
  bVar43 = 0;
  uStack_14 = 0x23469;
  uVar36 = *(uint *)(param_3 + 0x1c);
  iVar26 = *(int *)(param_3 + 0x20);
  if (DAT_00080ca0 == 0) {
    FUN_00020ec0();
  }
  piVar25 = *(int **)(DAT_000809e4 + 8);
  uVar13 = DAT_000809ec;
  while (DAT_000809ec = uVar13, piVar25 != (int *)0x0) {
    iVar15 = piVar25[1];
    if (piVar25[4] != 0) {
      FUN_00020e40();
      iVar15 = piVar25[1];
    }
    piVar3 = (int *)piVar25[3];
    DAT_00080aa0 = DAT_00080aa0 + 1;
    *(int *)(iVar15 + 0x14) = piVar25[2];
    *piVar25 = DAT_00080a94;
    DAT_00080a94 = (int)piVar25;
    piVar25 = piVar3;
    uVar13 = DAT_000809ec;
  }
  DAT_00080ad8 = DAT_00080ad8 + 1;
  iVar15 = DAT_000809e4;
  *(int *)(DAT_000809e4 + 4) = DAT_00080acc;
  DAT_00080acc = iVar15;
  iVar21 = DAT_000809f0;
  DAT_000809ec = 0;
  for (iVar15 = DAT_000816a4; iVar15 != 0; iVar15 = FUN_00040c00(iVar15)) {
    iVar12 = FUN_00041590(iVar15);
    if (((*(int *)(iVar12 + 0x10) == 0) &&
        (iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0)) &&
       (iVar12 = FUN_000414f0(iVar15), (*(byte *)(iVar12 + 0x11) & 1) == 0)) {
      iVar12 = FUN_00041590(iVar15);
      DAT_000809f0 = *(int *)(iVar12 + 0xc);
      uVar22 = FUN_0003fad0(iVar15);
      FUN_00020930(iVar15,0,0,uVar22,0xfffff);
    }
  }
  uVar8 = false;
  DAT_000809ec = uVar13;
  DAT_000809f0 = iVar21;
  iVar15 = DAT_00080ca0;
joined_r0x000235e4:
  if (iVar15 != 0) {
    piVar25 = *(int **)(iVar15 + 0x6c);
    iVar21 = iVar15;
    DAT_000809f0 = iVar15;
    while (piVar25 != (int *)0x0) {
      while( true ) {
        piVar25 = (int *)*piVar25;
        if (piVar25 == (int *)0x0) {
          FUN_00020930(0,0,0,0,0);
          iVar15 = *(int *)(iVar15 + 200);
          goto joined_r0x000235e4;
        }
        *(int **)(iVar21 + 0x6c) = piVar25;
        if (((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)) break;
        uVar8 = true;
        uVar13 = dcgettext(0,"missing .end or .bend at end of file",5);
        FUN_00031540(uVar13);
        piVar25 = *(int **)(DAT_000809f0 + 0x6c);
        iVar21 = DAT_000809f0;
        if (piVar25 == (int *)0x0) goto LAB_00023650;
      }
    }
LAB_00023650:
    iVar15 = *(int *)(iVar15 + 200);
    goto joined_r0x000235e4;
  }
  pcVar14 = (char *)xmalloc(0x2000);
  pppppppuVar29 = DAT_00080c9c;
  pcVar1 = pcVar14 + 0x2000;
  bVar41 = DAT_00080758 == 3;
  *(undefined4 *)(param_1 + 0x10) = 0;
  *(undefined4 *)(param_1 + 0x14) = 0;
  *(undefined4 *)(param_1 + 4) = 0;
  local_38 = pcVar14;
  local_b4 = pppppppuVar29;
  if ((bVar41) || (DAT_000809e8 == (int *)0x0)) {
    if (pppppppuVar29 != (undefined4 *******)0x0) {
      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;
      goto LAB_00023764;
    }
  }
  else if (pppppppuVar29 != (undefined4 *******)0x0) {
    uVar44 = FUN_0003fad0(*(undefined4 *)(*DAT_000809e8 + 4));
    iVar15 = FUN_0003e1d0(*(undefined4 *)(*DAT_000809e8 + 4));
    if ((int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +
        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c)) == 0 &&
        (uint)uVar44 + *(uint *)(iVar15 + 0x1c) == 0) {
      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;
    }
    else {
      local_30 = pppppppuVar29[1];
      local_24 = 0;
      local_2c = pppppppuVar29[2];
      local_20 = 0;
      local_28 = &DAT_000813a0;
      local_b4 = &local_34;
      local_34 = pppppppuVar29;
    }
LAB_00023764:
    local_9c = (undefined4 *****)0x0;
    local_ac = (undefined4 *****)0x0;
    local_94 = (undefined4 *******)0x0;
    local_a0 = (undefined4 ******)0x0;
    local_98 = (undefined4 ******)0x0;
LAB_000237a6:
    pppppppuVar30 = pppppppuVar29;
    if (pppppppuVar30 == (undefined4 *******)0x0) {
      pppppuVar17 = (undefined4 *****)0x1;
LAB_000237e1:
      ppppppuVar27 = local_b4[1];
      local_a8 = local_b4[2];
      local_a4 = (undefined4 *****)((int)local_9c + (int)pppppuVar17);
      if (ppppppuVar27 == local_a0) {
        if (local_98 != local_a8) {
          if (local_98 != (undefined4 ******)0x0) {
            local_98[0xd] = local_94[5];
          }
          goto LAB_000238a1;
        }
        if ((local_94 != (undefined4 *******)0x0) &&
           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {
          do {
            iVar21 = (int)pppppuVar17 - 1;
            if (iVar21 < 0x10) {
              pppppuVar17 = (undefined4 *****)0x0;
            }
            else {
              pppppuVar17 = pppppuVar17 + -4;
              iVar21 = 0xf;
            }
            if (iVar15 + 7U < 0xf) {
              if (pcVar1 <= local_38) {
                local_38 = (char *)FUN_0001ff00(1);
              }
              local_ac = (undefined4 *****)((int)local_ac + 1);
              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;
              local_38 = local_38 + 1;
              break;
            }
            if ((int)pcVar1 - (int)local_38 < 3) {
              local_38 = (char *)FUN_0001ff00(3);
            }
            *local_38 = (char)iVar21 + -0x80;
            if (iVar15 < -0x8000) {
              iVar15 = iVar15 + 0x8000;
              cVar37 = -0x80;
              cVar28 = '\0';
            }
            else {
              if (iVar15 < 0x8000) goto code_r0x00024a60;
              iVar15 = iVar15 + -0x7fff;
              cVar37 = '\x7f';
              cVar28 = -1;
            }
            local_ac = (undefined4 *****)((int)local_ac + 3);
            pcVar24 = local_38 + 2;
            local_38[1] = cVar37;
            local_38 = local_38 + 3;
            *pcVar24 = cVar28;
          } while( true );
        }
      }
      else {
        bVar41 = local_98 != local_a8;
        if (local_98 != (undefined4 ******)0x0 && bVar41) {
          local_98[0xd] = local_94[5];
          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;
        }
        pppppuVar18 = (undefined4 *****)0x0;
        if (local_a0 != (undefined4 ******)0x0) {
          local_9c = (undefined4 *****)0x0;
          local_a0[0x15] =
               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);
          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);
          local_a0[9] = local_a4;
          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;
          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);
          local_a4 = pppppuVar17;
        }
        ppppppuVar27[8] = pppppuVar18;
        ppppppuVar27[0x12] = local_ac;
        ppppppuVar27[0x13] = (undefined4 *****)0x0;
        local_a0 = ppppppuVar27;
        if (bVar41) {
LAB_000238a1:
          if (local_a8 != (undefined4 ******)0x0) {
            local_a8[0xc] = local_b4[5];
            pppppuVar18 = local_a0[0x12];
            pppppuVar4 = local_a0[0x13];
            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);
            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);
            local_a8[4] = local_9c;
          }
        }
        else {
          local_a8 = local_98;
        }
      }
      goto LAB_000238d0;
    }
    ppppppuVar27 = pppppppuVar30[3];
    uVar33 = (int)pppppppuVar30[4] + (int)*ppppppuVar27;
    uVar38 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27);
    ppppppuVar27 = local_b4[3];
    uVar16 = (int)local_b4[4] + (int)*ppppppuVar27;
    uVar32 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)local_b4[4],(uint)*ppppppuVar27);
    if (uVar32 < uVar38 || uVar32 - uVar38 < (uint)(uVar16 < uVar33)) {
      pppppuVar17 = (undefined4 *****)
                    (uVar33 - uVar16 >> 2 |
                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000);
      goto LAB_000237e1;
    }
    goto LAB_000237a0;
  }
  local_a4 = (undefined4 *****)0x0;
  local_ac = (undefined4 *****)0x0;
LAB_00023a3f:
  *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;
  local_68 = FUN_0001ff70(local_ac,&local_38);
  *(uint *)(param_1 + 0x28) = local_68;
  *(uint *)(param_1 + 8) = local_68 - *(uint *)(param_1 + 0x10);
  uVar16 = DAT_00080ca4;
  *(uint *)(param_1 + 0xc) =
       -(uint)(local_68 < *(uint *)(param_1 + 0x10)) - *(int *)(param_1 + 0x14);
  *(undefined4 *)(param_1 + 0x2c) = 0;
  *(undefined4 *)(param_1 + 0x18) = 0;
  *(undefined4 *)(param_1 + 0x1c) = 0;
  *(undefined4 *)(param_1 + 0x20) = 0;
  *(uint *)(param_1 + 0x24) = uVar16;
  uVar32 = (int)pcVar1 - (int)(pcVar14 + local_68) >> 0x1f;
  uVar33 = (int)((ulonglong)uVar36 * (ulonglong)uVar16 >> 0x20) + iVar26 * uVar16;
  if (uVar32 < uVar33 ||
      uVar32 - uVar33 <
      (uint)((uint)((int)pcVar1 - (int)(pcVar14 + local_68)) <
            (uint)((ulonglong)uVar36 * (ulonglong)uVar16))) {
    FUN_0001ff00(uVar16 * uVar36);
    uVar16 = DAT_00080ca4;
  }
  local_68 = uVar16 * uVar36 + local_68;
  uVar36 = *(uint *)(param_3 + 0x24);
  local_a0 = (undefined4 ******)(pcVar14 + local_68);
  *(uint *)(param_1 + 0x34) = local_68;
  uVar16 = *(uint *)(param_3 + 0x28);
  *(undefined4 *)(param_1 + 0x38) = 0;
  pcVar5 = *(code **)(param_3 + 0x80);
  if (DAT_00078240 != 0) {
    local_8c = 0;
    puVar20 = (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0x180);
    iVar26 = DAT_00078240;
LAB_00023b80:
    local_5c = iVar26;
    local_9c = *(undefined4 ******)(local_5c + 8);
    if (*(int *)(local_5c + 4) == 0) {
      local_54 = (uint)DAT_00078250 * 0x294 + (int)local_9c;
      if (local_54 <= local_9c) {
        local_68 = local_68 + local_8c * uVar36;
        uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),
                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -
                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),
                              *(undefined4 *)(param_3 + 0x28));
        goto LAB_0002441d;
      }
    }
    else {
      local_54 = (uint)DAT_0007824e * 0x294 + (int)local_9c;
      iVar26 = *(int *)(local_5c + 4);
      if (local_54 <= local_9c) goto LAB_00023b80;
    }
LAB_00023bb7:
    *(int *)((int)local_9c + 0x18) = local_8c;
    iVar26 = *(int *)((int)local_9c + 0x8c);
    if (iVar26 != 0) {
      local_a8 = (undefined4 ******)local_8c;
LAB_00023bdc:
      local_64 = iVar26;
      puVar6 = *(undefined4 **)(local_64 + 8);
      if (*(int *)(local_64 + 4) == 0) {
        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10;
        if (local_70 <= puVar6) {
          local_8c = (int)local_a8;
          iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);
          goto LAB_000243a4;
        }
      }
      else {
        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10;
        iVar26 = *(int *)(local_64 + 4);
        if (local_70 <= puVar6) goto LAB_00023bdc;
      }
      uVar32 = puVar6[4];
      do {
        if ((undefined4 *****)uVar32 != local_9c) {
                    /* WARNING: Subroutine does not return */
          FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");
        }
        iVar26 = puVar6[1];
        if (iVar26 == 0) {
          local_b4 = (undefined4 *******)puVar6[6];
          if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;
          piVar25 = (int *)puVar6[8];
          if (piVar25 == (int *)0x0) goto LAB_0002402d;
LAB_00024237:
          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);
          goto LAB_00023ff8;
        }
        if ((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47) {
          if ((int *)puVar6[5] == (int *)0x0) {
                    /* WARNING: Subroutine does not return */
            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");
          }
          uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);
          iVar15 = FUN_0003e1d0(iVar26);
          iVar21 = FUN_0003e1d0(uVar13);
          if (iVar15 != iVar21) {
            uVar22 = dcgettext(0,".begin/.bend in different segments",5);
            FUN_00031540(uVar22);
          }
          lVar45 = FUN_0003fad0(iVar26);
          lVar46 = FUN_0003fad0(uVar13);
          *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;
        }
        else {
          uVar44 = FUN_0003fad0(iVar26);
          iVar21 = FUN_0003e1d0(iVar26);
          uVar33 = (uint)uVar44 + puVar6[2];
          uVar32 = *(uint *)(iVar21 + 0x1c);
          iVar15 = *(int *)(iVar21 + 0x20);
          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);
          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +
                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);
        }
        bVar11 = FUN_0003dc90(iVar26);
        *(byte *)(puVar6 + 10) = *(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04';
        if (((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&
             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&
            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&
           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) {
          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;
        }
        if (((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&
           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||
            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))) {
          puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);
          pbVar35 = (byte *)*puVar23;
          if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||
             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&
               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&
              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {
            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;
          }
          else {
            iVar15 = FUN_000414f0(iVar26);
            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;
          }
          iVar15 = FUN_0003ddd0(iVar26);
          if (iVar15 == 0) {
            iVar21 = FUN_00041590(iVar26);
            iVar15 = *(int *)(iVar21 + 0x18);
            uVar33 = *(uint *)(iVar21 + 0x14);
            if ((iVar15 == 0 && uVar33 == 0) ||
               (uVar32 = bfd_get_gp_size(DAT_00081544),
               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {
              bVar31 = 6;
            }
            else {
              puVar6[0xd] = uVar33;
              bVar31 = 0x15;
              puVar6[0xe] = iVar15;
            }
            iVar21 = FUN_000414f0(iVar26);
            uVar32 = (uint)bVar31;
            *(uint *)(iVar21 + 0x28) = uVar33;
            *(int *)(iVar21 + 0x2c) = iVar15;
          }
          else {
            iVar15 = FUN_0003dd80(iVar26);
            if (iVar15 == 0) {
              uVar32 = 1;
              if (puVar23 != DAT_00081494) {
                uVar32 = 2;
                bVar41 = puVar23 < DAT_000813f0;
                bVar42 = puVar23 == DAT_000813f0;
                if (!bVar42) {
                  iVar15 = 7;
                  uVar32 = 0xf;
                  pbVar34 = pbVar35;
                  pbVar39 = (byte *)".rdata";
                  do {
                    if (iVar15 == 0) break;
                    iVar15 = iVar15 + -1;
                    bVar41 = *pbVar34 < *pbVar39;
                    bVar42 = *pbVar34 == *pbVar39;
                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;
                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;
                  } while (bVar42);
                  bVar40 = false;
                  bVar41 = (!bVar41 && !bVar42) == bVar41;
                  if (!bVar41) {
                    iVar15 = 8;
                    pbVar34 = pbVar35;
                    pbVar39 = (byte *)".rodata";
                    do {
                      if (iVar15 == 0) break;
                      iVar15 = iVar15 + -1;
                      bVar40 = *pbVar34 < *pbVar39;
                      bVar41 = *pbVar34 == *pbVar39;
                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;
                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;
                    } while (bVar41);
                    bVar42 = false;
                    bVar41 = (!bVar40 && !bVar41) == bVar40;
                    if (!bVar41) {
                      iVar15 = 7;
                      uVar32 = 0xd;
                      pbVar34 = pbVar35;
                      pbVar39 = (byte *)".sdata";
                      do {
                        if (iVar15 == 0) break;
                        iVar15 = iVar15 + -1;
                        bVar42 = *pbVar34 < *pbVar39;
                        bVar41 = *pbVar34 == *pbVar39;
                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;
                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;
                      } while (bVar41);
                      if ((!bVar42 && !bVar41) != bVar42) {
                        uVar32 = 3;
                        bVar41 = puVar23 < DAT_0008136c;
                        bVar42 = puVar23 == DAT_0008136c;
                        if (!bVar42) {
                          iVar15 = 6;
                          uVar32 = 0xe;
                          pbVar34 = (byte *)".sbss";
                          do {
                            if (iVar15 == 0) break;
                            iVar15 = iVar15 + -1;
                            bVar41 = *pbVar35 < *pbVar34;
                            bVar42 = *pbVar35 == *pbVar34;
                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;
                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;
                          } while (bVar42);
                          if ((!bVar41 && !bVar42) != bVar41) {
                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
            else {
              lVar45 = FUN_0003fad0(iVar26);
              if (lVar45 != 0) {
                uVar44 = FUN_0003fad0(iVar26);
                iVar15 = (int)((ulonglong)uVar44 >> 0x20);
                uVar33 = bfd_get_gp_size(DAT_00081544);
                uVar32 = 0x12;
                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)
                goto LAB_00023df1;
              }
              uVar32 = 0x11;
            }
          }
LAB_00023df1:
          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;
          *(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);
        }
        iVar15 = FUN_0003dc20(iVar26);
        if (((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&
             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||
            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||
           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)) {
          iVar15 = FUN_0003dd80(iVar26);
          if (iVar15 != 0) goto LAB_0002410f;
          if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||
             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {
            local_b4 = (undefined4 *******)puVar6[6];
            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;
            piVar25 = (int *)puVar6[8];
            if (piVar25 == (int *)0x0) goto LAB_0002402d;
            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);
LAB_00023ff8:
            uVar13 = *(undefined4 *)((int)local_9c + 0x70);
            do {
              iVar15 = piVar25[3];
              *(undefined4 *)(piVar25[2] + 4) = uVar13;
              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;
              piVar25 = (int *)*piVar25;
            } while (piVar25 != (int *)0x0);
          }
          else {
            uVar13 = FUN_000203f0(0);
            puVar6[0xc] = uVar13;
            local_b4 = (undefined4 *******)puVar6[6];
            if (local_b4 == (undefined4 *******)0x0) {
              piVar25 = (int *)puVar6[8];
              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);
joined_r0x00024174:
              if (piVar25 != (int *)0x0) goto LAB_00023ff8;
            }
            else {
LAB_00023e89:
              iVar15 = *(int *)((int)local_b4 + 0x24);
              if (iVar15 == -1) {
                    /* WARNING: Subroutine does not return */
                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");
              }
              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;
              puVar6[0xf] = uVar32;
              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {
                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);
              }
              bVar11 = *(byte *)((int)local_b4 + 0x3c);
              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {
                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);
                *(uint *)((int)local_b4 + 0x3c) =
                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;
                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);
                if ((bVar11 & 0x37) != 6) {
                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {
                    if (iVar26 == 0) {
                    /* WARNING: Subroutine does not return */
                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");
                    }
                    if ((int *)puVar6[5] == (int *)0x0) {
                    /* WARNING: Subroutine does not return */
                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");
                    }
                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);
                    iVar15 = FUN_0003e1d0(iVar26);
                    iVar21 = FUN_0003e1d0(uVar13);
                    if (iVar15 != iVar21) {
                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);
                      FUN_00031540(uVar22);
                    }
                    lVar45 = FUN_0003fad0(iVar26);
                    lVar46 = FUN_0003fad0(uVar13);
                    piVar25 = (int *)puVar6[8];
                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;
                  }
                  else {
                    piVar25 = (int *)puVar6[8];
                  }
                  if (piVar25 == (int *)0x0) goto LAB_0002402d;
                  goto LAB_00023ff8;
                }
              }
              else {
                if (*(int *)((int)local_b4 + 0x1c) == 0) {
                    /* WARNING: Subroutine does not return */
                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");
                }
                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);
                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;
                if ((bVar11 & 0x37) != 6) {
                  piVar25 = (int *)puVar6[8];
                  goto joined_r0x00024174;
                }
              }
              if (iVar26 == 0) {
                    /* WARNING: Subroutine does not return */
                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");
              }
              if (*(int *)((int)local_b4 + 4) == 0) {
                    /* WARNING: Subroutine does not return */
                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");
              }
              iVar15 = FUN_0003e1d0(iVar26);
              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));
              if (iVar15 != iVar21) {
                uVar13 = dcgettext(0,".begin/.bend in different segments",5);
                FUN_00031540(uVar13);
              }
              lVar45 = FUN_0003fad0(iVar26);
              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));
              uVar10 = lVar45 - lVar46;
              if ((uVar10 & 1) == 0) {
                *(ulonglong *)(puVar6 + 0xd) = uVar10;
              }
              else {
                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;
              }
              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));
              uVar13 = puVar6[0xe];
              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];
              *(undefined4 *)(iVar15 + 0x2c) = uVar13;
              piVar25 = (int *)puVar6[8];
              if (piVar25 != (int *)0x0) goto LAB_00024237;
            }
          }
LAB_0002402d:
          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;
          if (uVar32 < uVar16 ||
              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {
            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);
          }
          (*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);
          local_a0 = (undefined4 ******)((int)local_a0 + uVar36);
          puVar6[9] = local_a8;
          puVar7 = (uint *)puVar6[5];
          if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {
            puVar7[3] = (int)local_a8 - local_8c;
          }
          local_a8 = (undefined4 ******)((int)local_a8 + 1);
          if ((iVar26 != 0) &&
             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {
            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {
              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;
            }
            goto LAB_00024347;
          }
        }
        else {
          FUN_0003dd80(iVar26);
LAB_0002410f:
          if (puVar6[6] != 0) {
                    /* WARNING: Subroutine does not return */
            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");
          }
          if (puVar6[8] != 0) {
                    /* WARNING: Subroutine does not return */
            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");
          }
          iVar15 = FUN_00041590(iVar26);
          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {
LAB_00024347:
            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);
            iVar15 = FUN_0003dc20(iVar26);
            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {
              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;
            }
          }
        }
        if (local_70 <= puVar6 + 0x10) goto LAB_00024380;
        uVar32 = puVar6[0x14];
        puVar6 = puVar6 + 0x10;
      } while( true );
    }
    goto LAB_000243a4;
  }
  *(undefined4 *)(param_1 + 0x30) = 0;
LAB_0002554e:
  *(undefined4 *)(param_1 + 0x3c) = 0;
  *(undefined4 *)(param_1 + 0x40) = 0;
  *(undefined4 *)(param_1 + 0x44) = 0;
  *(undefined4 *)(param_1 + 0x50) = 0;
  *(uint *)(param_1 + 0x4c) = local_68;
LAB_00024eaa:
  uVar16 = FUN_0001ff70(local_68,0);
  *(uint *)(param_1 + 0x48) =
       uVar16 - *(uint *)(param_1 + 0x4c) >> 2 |
       (-(uint)(uVar16 < *(uint *)(param_1 + 0x4c)) - *(int *)(param_1 + 0x50)) * 0x40000000;
  *(uint *)(param_1 + 0x58) = uVar16;
  iVar26 = DAT_00078240;
  local_9c = (undefined4 *****)DAT_00078240;
  *(undefined4 *)(param_1 + 0x5c) = 0;
  uVar36 = uVar16;
  if (iVar26 != 0) {
    local_a8 = (undefined4 ******)0x0;
    do {
      uVar2 = DAT_00078250;
      if (*(int *)((int)local_9c + 4) != 0) {
        uVar2 = DAT_0007824e;
      }
      local_b4 = *(undefined4 ********)((int)local_9c + 8);
      uVar32 = (uint)uVar2 * 0x294 + (int)local_b4;
      pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);
      if (local_b4 < uVar32) {
        do {
          *(undefined4 *******)((int)local_b4 + 0xc) = local_a8;
          iVar26 = *(int *)((int)local_b4 + 0x78);
          pcVar24 = pcVar14 + uVar36;
          if (iVar26 == 0) {
            iVar15 = 0;
            iVar26 = 0;
          }
          else {
            iVar15 = 0;
            do {
              if (*(int *)(iVar26 + 4) == 0) {
                uVar2 = *(ushort *)((int)local_b4 + 0x88);
              }
              else {
                uVar2 = *(ushort *)((int)local_b4 + 0x86);
              }
              uVar36 = (uint)uVar2;
              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {
                pcVar24 = (char *)FUN_0001ff00(uVar36);
              }
              iVar15 = iVar15 + uVar36;
              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);
              iVar26 = *(int *)(iVar26 + 4);
              pcVar24 = pcVar24 + uVar36;
            } while (iVar26 != 0);
            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);
            iVar26 = iVar15 >> 0x1f;
            uVar36 = uVar16 + (int)local_a8;
          }
          *(int *)((int)local_b4 + 0x10) = iVar15;
          uVar33 = (int)local_b4 + 0x294;
          *(int *)((int)local_b4 + 0x14) = iVar26;
          local_b4 = (undefined4 *******)uVar33;
        } while (uVar33 < uVar32);
        pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);
      }
      local_9c = pppppuVar17;
    } while (local_9c != (undefined4 *****)0x0);
  }
  local_9c = (undefined4 *****)FUN_0001ff70(uVar36,0);
  uVar36 = *(uint *)(param_3 + 0x38);
  *(undefined4 *)(param_1 + 0x78) = 0;
  *(int *)(param_1 + 0x54) = (int)local_9c - *(int *)(param_1 + 0x58);
  *(undefined4 *)(param_1 + 0x7c) = 0;
  *(undefined4 *)(param_1 + 0x80) = 0;
  *(undefined4 ******)(param_1 + 0x70) = local_9c;
  pcVar24 = pcVar14 + (int)local_9c;
  *(undefined4 *)(param_1 + 0x74) = 0;
  pcVar5 = *(code **)(param_3 + 0x88);
  uVar16 = *(uint *)(param_3 + 0x34);
  if (DAT_00078240 == 0) {
    uVar13 = 0;
  }
  else {
    local_ac = (undefined4 *****)0x0;
    ppppppuVar27 = (undefined4 ******)DAT_00078240;
LAB_000251e2:
    do {
      local_98 = ppppppuVar27;
      uVar32 = *(uint *)((int)local_98 + 8);
      pcVar19 = pcVar24;
      if (*(int *)((int)local_98 + 4) == 0) {
        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);
        if (local_b4 <= uVar32) {
          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);
          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),
                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -
                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),
                                *(undefined4 *)(param_3 + 0x38));
          goto LAB_000252e8;
        }
      }
      else {
        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);
        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);
        if (local_b4 <= uVar32) goto LAB_000251e2;
      }
      do {
        uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;
        if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)
           ) {
          pcVar19 = (char *)FUN_0001ff00(uVar16);
        }
        pcVar24 = pcVar19 + uVar16;
        uVar33 = uVar32 + 0x294;
        (*pcVar5)(DAT_00081544,uVar32,pcVar19);
        local_ac = (undefined4 *****)((int)local_ac + 1);
        pcVar19 = pcVar24;
        uVar32 = uVar33;
      } while (uVar33 < local_b4);
      ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);
    } while (*(int *)((int)local_98 + 4) != 0);
    local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);
    uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),
                          -(uint)(local_9c < *(uint *)(param_1 + 0x70)) - *(int *)(param_1 + 0x74),
                          *(undefined4 *)(param_3 + 0x34),*(undefined4 *)(param_3 + 0x38));
  }
LAB_000252e8:
  *(undefined4 *)(param_1 + 0x6c) = uVar13;
  *(undefined4 *)(param_1 + 0x60) = 0;
  iVar26 = DAT_000816a4;
  *(undefined4 *)(param_1 + 100) = 0;
  *(undefined4 *)(param_1 + 0x68) = 0;
  *(undefined4 *)(param_1 + 0x84) = 0;
  *(undefined4 *)(param_1 + 0x88) = 0;
  *(undefined4 *)(param_1 + 0x8c) = 0;
  for (; iVar26 != 0; iVar26 = FUN_00040c00(iVar26)) {
    iVar15 = FUN_00041590(iVar26);
    if (*(int *)(iVar15 + 0x10) != 0) {
      iVar15 = FUN_0003dc20(iVar26);
      if (((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&
         (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) {
        iVar15 = FUN_00041590(iVar26);
        iVar15 = *(int *)(iVar15 + 0x10);
        *(undefined4 *)(iVar15 + 0x34) = 0;
        *(undefined4 *)(iVar15 + 0x38) = 0;
        *(uint *)(iVar15 + 0x3c) = *(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000;
      }
      iVar15 = FUN_00041590(iVar26);
      FUN_0004ed20(iVar26,*(int *)(iVar15 + 0x10) + 0x28);
    }
  }
  if ((*(int *)(param_3 + 4) - 1U & (uint)local_9c) == 0) {
    *(undefined2 *)(param_1 + 2) = 0x30b;
    *param_2 = pcVar14;
    return (uint)local_9c;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00031740("../../gas/ecoff.c",0x129d,"ecoff_build_debug",local_9c);
code_r0x00024a60:
  local_ac = (undefined4 *****)((int)local_ac + 3);
  pcVar24 = local_38 + 2;
  local_38[1] = (char)((uint)iVar15 >> 8);
  local_38 = local_38 + 3;
  *pcVar24 = (char)iVar15;
LAB_000238d0:
  if (0 < (int)pppppuVar17) {
    uVar16 = (int)pppppuVar17 - 1;
    local_ac = (undefined4 *****)((int)local_ac + 1);
    pppppuVar17 = (undefined4 *****)((uVar16 >> 4) + (int)local_ac);
    if (pcVar1 <= local_38) goto LAB_00023925;
    while (pcVar24 = local_38 + 1, pcVar19 = local_38, local_38 = pcVar24, 0xf < uVar16) {
      while( true ) {
        uVar16 = uVar16 - 0x10;
        *pcVar19 = '\x0f';
        if (pppppuVar17 == local_ac) goto LAB_00023953;
        local_ac = (undefined4 *****)((int)local_ac + 1);
        if (local_38 < pcVar1) break;
LAB_00023925:
        pcVar19 = (char *)FUN_0001ff00(1);
        local_38 = pcVar19 + 1;
        if (uVar16 < 0x10) goto LAB_00023944;
      }
    }
LAB_00023944:
    *pcVar19 = (char)uVar16;
  }
LAB_00023953:
  pppppppuVar30 = (undefined4 *******)*local_b4;
  if (pppppppuVar30 == (undefined4 *******)0x0) goto LAB_00023a10;
  local_9c = local_a4;
  local_94 = local_b4;
  local_98 = local_a8;
LAB_000237a0:
  pppppppuVar29 = (undefined4 *******)*pppppppuVar30;
  local_b4 = pppppppuVar30;
  goto LAB_000237a6;
LAB_00023a10:
  if (local_a8 != (undefined4 ******)0x0) {
    local_a8[0xd] = local_b4[5];
  }
  if (local_a0 != (undefined4 ******)0x0) {
    local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);
    local_a0[0x15] = (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);
    local_a0[9] = local_a4;
  }
  goto LAB_00023a3f;
LAB_00024380:
  iVar26 = *(int *)(local_64 + 4);
  if (*(int *)(local_64 + 4) == 0) goto code_r0x00024393;
  goto LAB_00023bdc;
code_r0x00024393:
  iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);
  local_8c = (int)local_a8;
LAB_000243a4:
  *(int *)((int)local_9c + 0x1c) = iVar26;
  local_9c = (undefined4 *****)((int)local_9c + 0x294);
  if (local_54 <= local_9c) goto code_r0x000243bf;
  goto LAB_00023bb7;
code_r0x000243bf:
  iVar26 = *(int *)(local_5c + 4);
  if (*(int *)(local_5c + 4) == 0) goto code_r0x000243ce;
  goto LAB_00023b80;
code_r0x000243ce:
  local_68 = local_68 + local_8c * uVar36;
  uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),
                        -(uint)(local_68 < *(uint *)(param_1 + 0x34)) - *(int *)(param_1 + 0x38),
                        *(undefined4 *)(param_3 + 0x24),*(undefined4 *)(param_3 + 0x28));
LAB_0002441d:
  puVar20 = (undefined4 *)DAT_00078240;
  *(undefined4 *)(param_1 + 0x30) = uVar13;
  pcVar24 = pcVar14 + *(int *)(param_1 + 0x28);
  uVar36 = *(uint *)(param_3 + 0x1c);
  uVar16 = *(uint *)(param_3 + 0x20);
  pcVar5 = *(code **)(param_3 + 0x7c);
  if (puVar20 != (undefined4 *)0x0) {
    sVar9 = 0;
LAB_00024474:
    do {
      local_70 = puVar20;
      local_a4 = *(undefined4 ******)((int)local_70 + 8);
      if (*(int *)((int)local_70 + 4) == 0) {
        local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5);
        if (local_7c <= local_a4) break;
      }
      else {
        local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);
        puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);
        if (local_7c <= local_a4) goto LAB_00024474;
      }
      do {
        bVar41 = true;
        *(short *)(local_a4 + 0xc) = sVar9;
        uVar32 = (uint)local_a4[0x28];
        if (uVar32 != 0) {
LAB_000244d8:
          do {
            local_88 = uVar32;
            if (*(uint *)(local_88 + 4) == 0) {
              piVar25 = *(int **)(local_88 + 8);
              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);
              if (local_a0 <= piVar25) break;
            }
            else {
              piVar25 = *(int **)(local_88 + 8);
              local_a0 = (undefined4 ******)
                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);
              uVar32 = *(uint *)(local_88 + 4);
              if (local_a0 <= piVar25) goto LAB_000244d8;
            }
            do {
              uVar13 = *(undefined4 *)(*piVar25 + 4);
              iVar26 = FUN_0003fad0(uVar13);
              iVar15 = FUN_0003e1d0(uVar13);
              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);
              if (bVar41) {
                iVar26 = 0;
                *local_a4 = (undefined4 ****)uVar32;
                iVar15 = 0;
                local_a4[1] = (undefined4 ****)0x0;
              }
              else {
                iVar26 = uVar32 - (int)*local_a4;
                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];
              }
              piVar25[1] = iVar26;
              piVar25[2] = iVar15;
              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;
              if (uVar32 < uVar16 ||
                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {
                pcVar24 = (char *)FUN_0001ff00(uVar36);
              }
              piVar3 = piVar25 + 1;
              piVar25 = piVar25 + 0x11;
              (*pcVar5)(DAT_00081544,piVar3,pcVar24);
              pcVar24 = pcVar24 + uVar36;
              bVar41 = false;
              sVar9 = sVar9 + 1;
            } while (piVar25 < local_a0);
            uVar32 = *(uint *)(local_88 + 4);
          } while (*(uint *)(local_88 + 4) != 0);
          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);
        }
        *(short *)((int)local_a4 + 0x32) = (short)uVar32;
        local_a4 = local_a4 + 0xa5;
      } while (local_a4 < local_7c);
      puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);
    } while (*(int *)((int)local_70 + 4) != 0);
    pppppppuVar29 = (undefined4 *******)DAT_00078240;
    *(undefined4 *)(param_1 + 0x3c) = 0;
    *(undefined4 *)(param_1 + 0x40) = 0;
    *(undefined4 *)(param_1 + 0x44) = 0;
    *(undefined4 *)(param_1 + 0x50) = 0;
    *(uint *)(param_1 + 0x4c) = local_68;
    iVar26 = *(int *)(*(int *)(DAT_00081544 + 4) + 8);
    bVar41 = iVar26 == 0;
    pcVar24 = pcVar14 + local_68;
    if (pppppppuVar29 != (undefined4 *******)0x0) {
      iVar15 = 0;
LAB_00024d54:
      do {
        local_94 = pppppppuVar29;
        local_a0 = *(undefined4 *******)((int)local_94 + 8);
        if (*(int *)((int)local_94 + 4) == 0) {
          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);
          if (local_9c <= local_a0) break;
        }
        else {
          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);
          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);
          if (local_9c <= local_a0) goto LAB_00024d54;
        }
        do {
          *(int *)((int)local_a0 + 0x34) = iVar15;
          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;
          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);
          if (ppppppuVar27 != (undefined4 ******)0x0) {
LAB_00024dd0:
            do {
              local_a8 = ppppppuVar27;
              puVar20 = *(undefined4 **)((int)local_a8 + 8);
              if (*(int *)((int)local_a8 + 4) == 0) {
                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)
                ;
                if (local_ac <= puVar20) break;
              }
              else {
                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)
                ;
                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);
                if (local_ac <= puVar20) goto LAB_00024dd0;
              }
              do {
                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {
                  pcVar24 = (char *)FUN_0001ff00(4);
                }
                switch(*puVar20) {
                case 0:
                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);
                  break;
                case 1:
                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);
                  break;
                case 2:
                case 3:
                case 4:
                case 5:
                case 6:
                case 7:
                  iVar21 = puVar20[1];
                  if (iVar26 == 0) {
                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);
                  }
                  else {
                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);
                  }
                }
                pcVar24 = pcVar24 + 4;
                iVar15 = iVar15 + 1;
                puVar20 = puVar20 + 2;
              } while (puVar20 < local_ac);
              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);
            } while (*(int *)((int)local_a8 + 4) != 0);
            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));
          }
          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;
          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);
        } while (local_a0 < local_9c);
        pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);
      } while (*(int *)((int)local_94 + 4) != 0);
      local_68 = local_68 + iVar15 * 4;
    }
    goto LAB_00024eaa;
  }
  goto LAB_0002554e;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00016070
ADD EBX,0x54b97
SUB ESP,0xac
MOV EAX,dword ptr [ESP + 0xc8]
MOV EAX,dword ptr [EAX + 0x1c]
MOV ECX,dword ptr [EBX + 0x8ca0]
MOV dword ptr [ESP + 0x30],EAX
MOV EAX,dword ptr [ESP + 0xc8]
MOV EAX,dword ptr [EAX + 0x20]
MOV dword ptr [ESP + 0x34],EAX
TEST ECX,ECX
JZ 0x00024bc3
MOV EAX,dword ptr [EBX + 0x89e4]
MOV EDI,dword ptr [EAX + 0x8]
TEST EDI,EDI
JZ 0x000234fa
LEA ESI,[0x8a00]
LEA ESI,[ESI]
MOV EDX,dword ptr [EDI + 0x10]
MOV EAX,dword ptr [EDI + 0x4]
TEST EDX,EDX
JZ 0x000234cd
LEA EDX,[EDI + 0x10]
CALL 0x00020e40
MOV EAX,dword ptr [EDI + 0x4]
MOV ECX,dword ptr [EDI + 0x8]
MOV EDX,dword ptr [EDI + 0xc]
ADD dword ptr [ESI + EBX*0x1 + 0xa0],0x1
MOV dword ptr [EAX + 0x14],ECX
MOV EAX,dword ptr [ESI + EBX*0x1 + 0x94]
MOV dword ptr [ESI + EBX*0x1 + 0x94],EDI
MOV dword ptr [EDI],EAX
MOV EDI,EDX
TEST EDX,EDX
JNZ 0x000234b8
MOV EAX,dword ptr [EBX + 0x89e4]
MOV EDX,dword ptr [EBX + 0x8acc]
MOV dword ptr [EBX + 0x8acc],EAX
MOV EDI,dword ptr [EBX + 0x89ec]
ADD dword ptr [EBX + 0x8ad8],0x1
MOV dword ptr [EAX + 0x4],EDX
LEA EAX,[EBX + 0x96a4]
MOV dword ptr [EBX + 0x89ec],0x0
MOV EBP,dword ptr [EBX + 0x89f0]
MOV ESI,dword ptr [EAX]
MOV dword ptr [ESP + 0x6c],EAX
TEST ESI,ESI
JNZ 0x00023552
JMP 0x000235c8
SUB ESP,0xc
PUSH ESI
CALL 0x00040c00
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x000235c8
SUB ESP,0xc
PUSH ESI
CALL 0x00041590
ADD ESP,0x10
MOV EAX,dword ptr [EAX + 0x10]
TEST EAX,EAX
JNZ 0x00023540
SUB ESP,0xc
PUSH ESI
CALL 0x00041590
ADD ESP,0x10
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JZ 0x00023540
SUB ESP,0xc
PUSH ESI
CALL 0x000414f0
ADD ESP,0x10
TEST byte ptr [EAX + 0x11],0x1
JNZ 0x00023540
SUB ESP,0xc
PUSH ESI
CALL 0x00041590
MOV EAX,dword ptr [EAX + 0xc]
MOV dword ptr [ESP],ESI
MOV dword ptr [EBX + 0x89f0],EAX
CALL 0x0003fad0
MOV dword ptr [ESP],0xfffff
XOR ECX,ECX
XOR EDX,EDX
PUSH EAX
XOR EAX,EAX
PUSH 0x0
PUSH 0x0
PUSH ESI
CALL 0x00020930
ADD ESP,0x20
JMP 0x00023540
MOV ESI,dword ptr [EBX + 0x8ca0]
MOV dword ptr [EBX + 0x89ec],EDI
LEA EDI,[EBX + 0xfffe0200]
MOV dword ptr [EBX + 0x89f0],EBP
XOR EBP,EBP
TEST ESI,ESI
JZ 0x0002365a
LEA ESI,[ESI]
LEA ESI,[ESI]
MOV dword ptr [EBX + 0x89f0],ESI
MOV EAX,dword ptr [ESI + 0x6c]
MOV EDX,ESI
LEA ESI,[ESI]
NOP
TEST EAX,EAX
JZ 0x00023650
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JZ 0x00023980
MOV dword ptr [EDX + 0x6c],EAX
TEST EBP,EBP
JNZ 0x00023600
MOV ECX,dword ptr [EDX + 0x60]
TEST ECX,ECX
JNZ 0x00023600
SUB ESP,0x4
MOV EBP,0x1
PUSH 0x5
PUSH EDI
PUSH 0x0
CALL 0x000141e0
MOV dword ptr [ESP],EAX
CALL 0x00031540
MOV EDX,dword ptr [EBX + 0x89f0]
ADD ESP,0x10
MOV EAX,dword ptr [EDX + 0x6c]
TEST EAX,EAX
JNZ 0x00023604
LEA ESI,[ESI]
LEA ESI,[ESI]
MOV ESI,dword ptr [ESI + 0xc8]
TEST ESI,ESI
JNZ 0x000235f0
SUB ESP,0xc
PUSH 0x2000
CALL 0x00014800
MOV EDI,dword ptr [EBX + 0x8c9c]
MOV ESI,dword ptr [ESP + 0xd0]
MOV dword ptr [ESP + 0x8c],EAX
LEA EDX,[EAX + 0x2000]
MOV dword ptr [ESP + 0x94],EAX
LEA EAX,[EBX + 0x8758]
MOV dword ptr [ESP + 0x90],EDX
MOV dword ptr [ESP + 0x18],EDI
ADD ESP,0x10
CMP dword ptr [EAX],0x3
MOV dword ptr [ESI + 0x10],0x0
MOV dword ptr [ESI + 0x14],0x0
MOV dword ptr [ESI + 0x4],0x0
JZ 0x00023756
MOV EAX,dword ptr [EBX + 0x89e8]
TEST EAX,EAX
JZ 0x00023756
MOV EBP,dword ptr [ESP + 0x8]
TEST EBP,EBP
JZ 0x00024b90
MOV EAX,dword ptr [EAX]
SUB ESP,0xc
PUSH dword ptr [EAX + 0x4]
CALL 0x0003fad0
MOV ESI,EAX
POP EAX
MOV EAX,dword ptr [EBX + 0x89e8]
MOV EDI,EDX
MOV EAX,dword ptr [EAX]
PUSH dword ptr [EAX + 0x4]
CALL 0x0003e1d0
ADD ESI,dword ptr [EAX + 0x1c]
ADC EDI,dword ptr [EAX + 0x20]
ADD ESP,0x10
MOV EDX,EDI
OR EDX,ESI
JZ 0x00024bb8
MOV EAX,dword ptr [EBP + 0x4]
MOV dword ptr [ESP + 0x88],EBP
MOV ECX,EBP
MOV dword ptr [ESP + 0x98],0x0
MOV dword ptr [ESP + 0x8c],EAX
MOV EAX,dword ptr [EBP + 0x8]
MOV dword ptr [ESP + 0x9c],0x0
MOV dword ptr [ESP + 0x90],EAX
LEA EAX,[EBX + 0x93a0]
MOV dword ptr [ESP + 0x94],EAX
LEA EAX,[ESP + 0x88]
MOV dword ptr [ESP + 0x8],EAX
JMP 0x00023764
MOV EAX,dword ptr [ESP + 0x8]
TEST EAX,EAX
JZ 0x00024b90
MOV ECX,dword ptr [EAX]
LEA EAX,[ESP + 0x80]
XOR EBP,EBP
MOV dword ptr [ESP + 0x20],0x0
MOV dword ptr [ESP + 0x48],EAX
LEA EAX,[ESP + 0x7c]
MOV dword ptr [ESP + 0x10],0x0
MOV dword ptr [ESP + 0x28],0x0
MOV dword ptr [ESP + 0x1c],0x0
MOV dword ptr [ESP + 0x44],EAX
MOV dword ptr [ESP + 0x24],EBP
JMP 0x000237a6
MOV dword ptr [ESP + 0x8],ECX
MOV ECX,dword ptr [ECX]
TEST ECX,ECX
JZ 0x00023a00
MOV EAX,dword ptr [ECX + 0xc]
XOR EDI,EDI
MOV ESI,dword ptr [ECX + 0x10]
ADD ESI,dword ptr [EAX]
ADC EDI,dword ptr [EAX + 0x4]
XOR EDX,EDX
MOV EAX,dword ptr [ESP + 0x8]
MOV EBP,dword ptr [EAX + 0xc]
MOV EAX,dword ptr [EAX + 0x10]
ADD EAX,dword ptr [EBP]
ADC EDX,dword ptr [EBP + 0x4]
MOV EBP,EDX
CMP EAX,ESI
SBB EBP,EDI
JNC 0x000237a0
SUB ESI,EAX
MOV EAX,ESI
SBB EDI,EDX
SHRD EAX,EDI,0x2
MOV ESI,EAX
MOV EAX,dword ptr [ESP + 0x8]
MOV ECX,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [EAX + 0x8]
MOV dword ptr [ESP + 0x14],EAX
MOV EAX,dword ptr [ESP + 0x20]
ADD EAX,ESI
MOV dword ptr [ESP + 0x18],EAX
CMP ECX,dword ptr [ESP + 0x1c]
JZ 0x000239b8
MOV EDX,dword ptr [ESP + 0x24]
MOV EAX,dword ptr [ESP + 0x14]
CMP EDX,EAX
SETNZ AL
TEST EDX,EDX
MOV EDI,EAX
SETNZ AL
MOV EDX,EDI
AND AL,DL
JZ 0x0002382d
MOV EDI,dword ptr [ESP + 0x28]
MOV EDX,dword ptr [EDI + 0x14]
MOV EDI,dword ptr [ESP + 0x24]
MOV dword ptr [EDI + 0x34],EDX
MOV EDI,EAX
MOV EAX,dword ptr [ESP + 0x10]
MOV EBP,dword ptr [ESP + 0x1c]
MOV dword ptr [ESP + 0x2c],0x0
MOV dword ptr [ESP + 0x28],EAX
XOR EAX,EAX
TEST EBP,EBP
JZ 0x00023882
MOV EAX,dword ptr [ESP + 0x28]
MOV EDX,dword ptr [ESP + 0x2c]
MOV dword ptr [ESP + 0x20],0x0
SUB EAX,dword ptr [EBP + 0x48]
SBB EDX,dword ptr [EBP + 0x4c]
MOV dword ptr [EBP + 0x54],EDX
MOV EDX,dword ptr [ESP + 0x18]
MOV dword ptr [EBP + 0x50],EAX
MOV EAX,EBP
MOV dword ptr [EBP + 0x24],EDX
MOV EBP,dword ptr [ESP + 0xc0]
MOV dword ptr [ESP + 0x18],ESI
ADD dword ptr [EBP + 0x4],EDX
MOV EDX,EAX
MOV EAX,dword ptr [EAX + 0x24]
ADD EAX,dword ptr [EDX + 0x20]
MOV dword ptr [ECX + 0x20],EAX
MOV EAX,dword ptr [ESP + 0x28]
MOV EDX,dword ptr [ESP + 0x2c]
MOV dword ptr [ECX + 0x48],EAX
MOV EAX,EDI
MOV dword ptr [ECX + 0x4c],EDX
TEST AL,AL
JZ 0x000239e8
MOV dword ptr [ESP + 0x1c],ECX
MOV EDI,dword ptr [ESP + 0x14]
TEST EDI,EDI
JZ 0x000238d0
MOV EAX,dword ptr [ESP + 0x8]
MOV ECX,dword ptr [ESP + 0x1c]
XOR EDX,EDX
MOV EAX,dword ptr [EAX + 0x14]
MOV dword ptr [EDI + 0x30],EAX
MOV EAX,dword ptr [ESP + 0x10]
SUB EAX,dword ptr [ECX + 0x48]
SBB EDX,dword ptr [ECX + 0x4c]
MOV dword ptr [EDI + 0x38],EAX
MOV EAX,dword ptr [ESP + 0x20]
MOV dword ptr [EDI + 0x3c],EDX
MOV dword ptr [EDI + 0x10],EAX
TEST ESI,ESI
JLE 0x00023953
SUB ESI,0x1
MOV EDI,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [ESP + 0x84]
MOV EBP,ESI
SHR EBP,0x4
ADD EDI,0x1
ADD EBP,EDI
CMP dword ptr [ESP + 0x80],EAX
JBE 0x00023925
LEA EDX,[EAX + 0x1]
CMP ESI,0xf
JBE 0x00023944
MOV dword ptr [ESP + 0x84],EDX
SUB ESI,0x10
MOV byte ptr [EAX],0xf
CMP EBP,EDI
JZ 0x0002496d
ADD EDI,0x1
MOV EAX,dword ptr [ESP + 0x84]
CMP dword ptr [ESP + 0x80],EAX
JA 0x000238f5
SUB ESP,0xc
MOV ECX,EAX
PUSH 0x1
MOV EDX,dword ptr [ESP + 0x58]
MOV EAX,dword ptr [ESP + 0x54]
CALL 0x0001ff00
ADD ESP,0x10
LEA EDX,[EAX + 0x1]
CMP ESI,0xf
JA 0x000238fd
MOV ECX,ESI
MOV dword ptr [ESP + 0x84],EDX
MOV dword ptr [ESP + 0x10],EDI
MOV byte ptr [EAX],CL
MOV EAX,dword ptr [ESP + 0x8]
MOV ECX,dword ptr [EAX]
TEST ECX,ECX
JZ 0x00023a10
MOV EAX,dword ptr [ESP + 0x18]
MOV dword ptr [ESP + 0x20],EAX
MOV EAX,dword ptr [ESP + 0x8]
MOV dword ptr [ESP + 0x28],EAX
MOV EAX,dword ptr [ESP + 0x14]
MOV dword ptr [ESP + 0x24],EAX
JMP 0x000237a0
SUB ESP,0xc
MOV ECX,0x1
MOV EDX,0x8
XOR EAX,EAX
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x0
CALL 0x00020930
MOV ESI,dword ptr [ESI + 0xc8]
ADD ESP,0x20
TEST ESI,ESI
JNZ 0x000235f0
JMP 0x0002365a
MOV EDI,dword ptr [ESP + 0x14]
CMP dword ptr [ESP + 0x24],EDI
JZ 0x00024976
MOV ECX,dword ptr [ESP + 0x24]
TEST ECX,ECX
JZ 0x000238a1
MOV EAX,dword ptr [ESP + 0x28]
MOV EDI,dword ptr [ESP + 0x24]
MOV EAX,dword ptr [EAX + 0x14]
MOV dword ptr [EDI + 0x34],EAX
JMP 0x000238a1
MOV EAX,dword ptr [ESP + 0x24]
MOV dword ptr [ESP + 0x1c],ECX
MOV dword ptr [ESP + 0x14],EAX
JMP 0x000238d0
MOV ESI,0x1
JMP 0x000237e1
MOV ESI,dword ptr [ESP + 0x14]
TEST ESI,ESI
JZ 0x00023a1e
MOV EAX,dword ptr [EAX + 0x14]
MOV dword ptr [ESI + 0x34],EAX
MOV EDI,dword ptr [ESP + 0x1c]
TEST EDI,EDI
JZ 0x00023a3f
XOR EDX,EDX
MOV EAX,dword ptr [ESP + 0x10]
SUB EAX,dword ptr [EDI + 0x48]
MOV dword ptr [EDI + 0x50],EAX
MOV EAX,dword ptr [ESP + 0x18]
SBB EDX,dword ptr [EDI + 0x4c]
MOV dword ptr [EDI + 0x54],EDX
MOV dword ptr [EDI + 0x24],EAX
MOV EAX,dword ptr [ESP + 0xc0]
MOV ESI,dword ptr [ESP + 0x18]
SUB ESP,0x8
ADD dword ptr [EAX + 0x4],ESI
LEA EAX,[ESP + 0x8c]
PUSH EAX
PUSH dword ptr [ESP + 0x1c]
MOV ECX,dword ptr [ESP + 0x58]
MOV EDX,dword ptr [ESP + 0x54]
MOV EAX,dword ptr [ESP + 0xd8]
CALL 0x0001ff70
MOV EBP,dword ptr [ESP + 0xd0]
XOR EDX,EDX
MOV ECX,dword ptr [ESP + 0x90]
MOV ESI,EAX
MOV EDI,EDX
MOV dword ptr [ESP + 0x20],EAX
SUB ESI,dword ptr [EBP + 0x10]
SBB EDI,dword ptr [EBP + 0x14]
MOV dword ptr [EBP + 0x28],EAX
MOV dword ptr [EBP + 0x8],ESI
MOV ESI,dword ptr [EBX + 0x8ca4]
MOV dword ptr [EBP + 0xc],EDI
MOV EDI,dword ptr [ESP + 0x44]
MOV dword ptr [EBP + 0x2c],EDX
MOV dword ptr [EBP + 0x18],0x0
IMUL EDI,ESI
MOV dword ptr [EBP + 0x1c],0x0
MOV dword ptr [EBP + 0x20],0x0
MOV dword ptr [EBP + 0x24],ESI
MOV EBP,dword ptr [ESP + 0x8c]
LEA EAX,[EBP + EAX*0x1]
SUB ECX,EAX
MOV dword ptr [ESP + 0x24],EAX
MOV EAX,ECX
MOV dword ptr [ESP + 0x18],ECX
SAR EAX,0x1f
MOV dword ptr [ESP + 0x1c],EAX
MOV EAX,dword ptr [ESP + 0x40]
ADD ESP,0x10
MUL ESI
ADD EDX,EDI
CMP ECX,EAX
MOV ECX,dword ptr [ESP + 0xc]
SBB ECX,EDX
JC 0x00024aed
MOV EAX,dword ptr [ESP + 0xc8]
MOV EDI,dword ptr [ESP + 0xc0]
XOR EDX,EDX
IMUL ESI,dword ptr [ESP + 0x30]
ADD ESI,dword ptr [ESP + 0x10]
MOV dword ptr [ESP + 0x3c],EDX
MOV EAX,dword ptr [EAX + 0x24]
ADD EBP,ESI
MOV dword ptr [ESP + 0x54],ESI
MOV dword ptr [ESP + 0x38],ESI
MOV dword ptr [ESP + 0x28],EAX
MOV EAX,dword ptr [ESP + 0xc8]
MOV dword ptr [EDI + 0x34],ESI
MOV EAX,dword ptr [EAX + 0x28]
MOV dword ptr [EDI + 0x38],EDX
MOV dword ptr [ESP + 0x1c],EBP
MOV dword ptr [ESP + 0x50],EAX
MOV EAX,dword ptr [ESP + 0xc8]
MOV EAX,dword ptr [EAX + 0x80]
MOV dword ptr [ESP + 0x40],EAX
MOV EAX,dword ptr [EBX + 0x240]
MOV dword ptr [ESP + 0x60],EAX
TEST EAX,EAX
JZ 0x00025540
LEA EAX,[0x240]
MOV dword ptr [ESP + 0x30],0x0
MOV dword ptr [ESP + 0x5c],EAX
MOV EAX,dword ptr [EBX + 0xffffffa0]
ADD EAX,0x180
MOV dword ptr [ESP + 0x64],EAX
MOV EAX,dword ptr [ESP + 0x60]
MOV EDX,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [EAX + 0x8]
MOV dword ptr [ESP + 0x20],EAX
MOV EAX,dword ptr [ESP + 0x5c]
TEST EDX,EDX
JZ 0x00024b1c
MOVZX EAX,word ptr [EAX + EBX*0x1 + 0xe]
MOV EDI,dword ptr [ESP + 0x20]
IMUL EAX,EAX,0x294
ADD EAX,EDI
MOV dword ptr [ESP + 0x68],EAX
CMP EAX,EDI
JBE 0x00024bf8
MOV EAX,dword ptr [ESP + 0x20]
MOV ESI,dword ptr [ESP + 0x30]
MOV dword ptr [EAX + 0x18],ESI
MOV EAX,dword ptr [EAX + 0x8c]
MOV dword ptr [ESP + 0x58],EAX
TEST EAX,EAX
JZ 0x000243a4
MOV EAX,dword ptr [ESP + 0x30]
MOV dword ptr [ESP + 0x14],EAX
MOV EAX,dword ptr [ESP + 0x58]
MOV EDI,dword ptr [ESP + 0x20]
MOV ECX,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [EAX + 0x8]
MOV EBP,EAX
TEST ECX,ECX
JZ 0x00024920
MOVZX EDX,word ptr [EDI + 0x9a]
SHL EDX,0x6
LEA ESI,[EAX + EDX*0x1]
MOV dword ptr [ESP + 0x4c],ESI
CMP ESI,EAX
JBE 0x00024bd4
MOV ESI,dword ptr [ESP + 0x20]
CMP dword ptr [EAX + 0x10],ESI
JNZ 0x000240c2
LEA ESI,[ESI]
MOV EAX,dword ptr [EBP + 0x4]
MOV dword ptr [ESP + 0x10],EAX
TEST EAX,EAX
JZ 0x00024290
MOVZX EAX,word ptr [EBP + 0x3c]
AND AX,0x7ff
CMP AX,0x47
JNZ 0x00024258
MOV EAX,dword ptr [EBP + 0x14]
TEST EAX,EAX
JZ 0x00024c52
MOV EAX,dword ptr [EAX]
SUB ESP,0xc
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [ESP + 0x14],EAX
MOV EDI,EAX
PUSH dword ptr [ESP + 0x1c]
CALL 0x0003e1d0
MOV dword ptr [ESP],EDI
MOV ESI,EAX
CALL 0x0003e1d0
ADD ESP,0x10
CMP ESI,EAX
JZ 0x00023c92
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe0228]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141e0
MOV dword ptr [ESP],EAX
CALL 0x00031540
ADD ESP,0x10
SUB ESP,0xc
PUSH dword ptr [ESP + 0x1c]
CALL 0x0003fad0
MOV ESI,EAX
POP EAX
PUSH dword ptr [ESP + 0x14]
MOV EDI,EDX
CALL 0x0003fad0
SUB ESI,EAX
SBB EDI,EDX
MOV dword ptr [EBP + 0x34],ESI
ADD ESP,0x10
MOV dword ptr [EBP + 0x38],EDI
SUB ESP,0xc
PUSH dword ptr [ESP + 0x1c]
CALL 0x0003dc90
ADD ESP,0x10
AND EAX,0x1
LEA EDX,[EAX*0x4 + 0x0]
MOVZX EAX,byte ptr [EBP + 0x28]
AND EAX,0xfffffffb
OR EAX,EDX
MOV byte ptr [EBP + 0x28],AL
MOVZX EAX,byte ptr [EBP + 0x3c]
AND EAX,0x3f
CMP AL,0x6
JZ 0x00024600
TEST word ptr [EBP + 0x3c],0x7ff
JNZ 0x00023e1d
MOV EAX,dword ptr [EBP + 0x3c]
SHR EAX,0xc
MOV EDX,EAX
AND EDX,0xfff00
CMP EDX,0x8f300
JNZ 0x00023d1f
AND EAX,0xfffdf
CMP EAX,0x8f3c0
JZ 0x00023e1d
SUB ESP,0xc
MOV ESI,dword ptr [ESP + 0x1c]
PUSH ESI
CALL 0x0003e1d0
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESP + 0x34],EAX
MOV EAX,dword ptr [EBP + 0x3c]
ADD ESP,0x10
SHR EAX,0xc
AND EAX,0xfff00
CMP EAX,0x8f300
JZ 0x000245e0
SUB ESP,0xc
PUSH ESI
CALL 0x0003dc20
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00023d76
SUB ESP,0xc
PUSH dword ptr [ESP + 0x1c]
CALL 0x0003dc90
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000245c0
SUB ESP,0xc
PUSH dword ptr [ESP + 0x1c]
CALL 0x000414f0
ADD ESP,0x10
MOV EAX,dword ptr [EAX + 0x10]
AND EAX,0x8
CMP EAX,0x1
SBB EAX,EAX
AND EAX,0xfffffffb
ADD EAX,0x6
MOV byte ptr [ESP + 0x18],AL
SUB ESP,0xc
MOV EDI,dword ptr [ESP + 0x1c]
PUSH EDI
CALL 0x0003ddd0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00024690
SUB ESP,0xc
PUSH EDI
CALL 0x00041590
ADD ESP,0x10
MOV EDI,dword ptr [EAX + 0x18]
MOV ESI,dword ptr [EAX + 0x14]
MOV EAX,EDI
OR EAX,ESI
JNZ 0x00024828
MOV EDX,0x6
MOV byte ptr [ESP + 0x8],DL
SUB ESP,0xc
PUSH dword ptr [ESP + 0x1c]
CALL 0x000414f0
ADD ESP,0x10
MOVZX EDX,byte ptr [ESP + 0x8]
MOV dword ptr [EAX + 0x28],ESI
MOV dword ptr [EAX + 0x2c],EDI
MOVZX EAX,byte ptr [EBP + 0x3c]
MOVZX ECX,byte ptr [ESP + 0x18]
AND EAX,0xffffffc0
AND ECX,0x3f
OR EAX,ECX
MOV byte ptr [EBP + 0x3c],AL
MOV EAX,EDX
AND EAX,0x1f
SHL EAX,0x6
MOV EDX,EAX
MOVZX EAX,word ptr [EBP + 0x3c]
AND AX,0xf83f
OR EAX,EDX
MOV word ptr [EBP + 0x3c],AX
SUB ESP,0xc
PUSH dword ptr [ESP + 0x1c]
CALL 0x0003dc20
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000242c0
MOV ECX,dword ptr [EBP + 0x14]
TEST ECX,ECX
JZ 0x000240e0
SUB ESP,0xc
PUSH dword ptr [ESP + 0x1c]
CALL 0x0003dd80
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0002410f
MOVZX EAX,byte ptr [EBP + 0x3c]
AND EAX,0x3f
CMP AL,0x8
JZ 0x00023e7a
MOV ESI,dword ptr [EBP]
SUB ESP,0x8
PUSH 0x1
PUSH ESI
CALL 0x00014470
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00024888
MOV EAX,dword ptr [EBP + 0x18]
MOV dword ptr [ESP + 0x8],EAX
TEST EAX,EAX
JZ 0x000247b0
MOV EAX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [EAX + 0x24]
CMP EAX,-0x1
JZ 0x00024bdd
MOV EDX,dword ptr [EBP + 0x3c]
MOV ECX,EAX
SHL ECX,0xc
AND EDX,0xfff
OR EDX,ECX
MOV dword ptr [EBP + 0x3c],EDX
AND DX,0x7c0
CMP DX,0x2c0
JZ 0x00023ec2
MOV ECX,dword ptr [ESP + 0x8]
MOV EDX,dword ptr [ECX + 0x30]
MOV dword ptr [EBP + 0x30],EDX
MOV ESI,dword ptr [ESP + 0x8]
MOVZX ECX,byte ptr [ESI + 0x3c]
MOV EDX,ECX
MOV byte ptr [ESP + 0x34],CL
AND EDX,0x3f
MOV ECX,EDX
MOV byte ptr [ESP + 0x38],DL
LEA EDX,[ECX + 0x39]
AND EDX,0x3b
JNZ 0x00024138
MOV EDI,dword ptr [ESP + 0x14]
SUB EDI,dword ptr [ESP + 0x30]
SUB ESP,0x4
MOV dword ptr [ESP + 0x1c],EDI
LEA ECX,[EDI + 0x1]
MOV EDI,ESI
MOV ESI,dword ptr [ESI + 0x3c]
SHL ECX,0xc
AND ESI,0xfff
MOV EDX,ESI
OR EDX,ECX
MOV dword ptr [EDI + 0x3c],EDX
IMUL EAX,dword ptr [ESP + 0x2c]
ADD EAX,dword ptr [ESP + 0x58]
ADD EAX,dword ptr [ESP + 0x80]
PUSH EAX
LEA EAX,[EDI + 0x30]
PUSH EAX
LEA EAX,[EBX + 0x9544]
MOV dword ptr [ESP + 0x30],EAX
PUSH dword ptr [EAX]
MOV EAX,dword ptr [ESP + 0x50]
CALL EAX
MOVZX EAX,byte ptr [ESP + 0x44]
AND EAX,0x37
ADD ESP,0x10
CMP AL,0x6
JZ 0x00024180
CMP byte ptr [ESP + 0x38],0x7
JNZ 0x000247a0
MOVZX EAX,word ptr [EBP + 0x3c]
AND AX,0x7c0
CMP AX,0x2c0
JZ 0x000247a0
MOV EAX,dword ptr [ESP + 0x10]
TEST EAX,EAX
JZ 0x0002557f
MOV EAX,dword ptr [EBP + 0x14]
TEST EAX,EAX
JZ 0x0002559a
MOV EAX,dword ptr [EAX]
SUB ESP,0xc
MOV ESI,dword ptr [EAX + 0x4]
PUSH dword ptr [ESP + 0x1c]
CALL 0x0003e1d0
MOV dword ptr [ESP],ESI
MOV EDI,EAX
CALL 0x0003e1d0
ADD ESP,0x10
CMP EDI,EAX
JZ 0x00023fba
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe0228]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141e0
MOV dword ptr [ESP],EAX
CALL 0x00031540
ADD ESP,0x10
SUB ESP,0xc
PUSH dword ptr [ESP + 0x1c]
CALL 0x0003fad0
MOV dword ptr [ESP],ESI
MOV dword ptr [ESP + 0x18],EAX
MOV dword ptr [ESP + 0x1c],EDX
CALL 0x0003fad0
MOV ESI,dword ptr [ESP + 0x18]
MOV EDI,dword ptr [ESP + 0x1c]
SUB ESI,EAX
MOV EAX,dword ptr [EBP + 0x20]
SBB EDI,EDX
MOV dword ptr [EBP + 0x34],ESI
ADD ESP,0x10
MOV dword ptr [EBP + 0x38],EDI
TEST EAX,EAX
JZ 0x0002402d
LEA ESI,[ESI]
MOV EDI,dword ptr [ESP + 0x20]
MOV ESI,dword ptr [EDI + 0x70]
MOV EDI,dword ptr [ESP + 0x18]
SHL EDI,0xc
LEA ESI,[ESI]
LEA ESI,[ESI]
MOV EDX,dword ptr [EAX + 0x8]
MOV ECX,dword ptr [EAX + 0xc]
MOV dword ptr [EDX + 0x4],ESI
MOV EDX,dword ptr [ECX + 0x4]
AND EDX,0xfff
OR EDX,EDI
MOV dword ptr [ECX + 0x4],EDX
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JNZ 0x00024010
MOV ECX,dword ptr [ESP + 0x80]
SUB ECX,dword ptr [ESP + 0x1c]
MOV EAX,ECX
CDQ
CMP ECX,dword ptr [ESP + 0x28]
MOV EAX,EDX
SBB EAX,dword ptr [ESP + 0x50]
JC 0x00024310
SUB ESP,0x4
LEA EAX,[EBP + 0x30]
MOV EDI,dword ptr [ESP + 0x20]
PUSH EDI
PUSH EAX
MOV EAX,dword ptr [ESP + 0x30]
PUSH dword ptr [EAX]
MOV EAX,dword ptr [ESP + 0x50]
CALL EAX
MOV EAX,dword ptr [ESP + 0x38]
ADD EDI,EAX
MOV EAX,dword ptr [ESP + 0x24]
MOV dword ptr [ESP + 0x2c],EDI
ADD ESP,0x10
MOV dword ptr [EBP + 0x24],EAX
MOV EAX,dword ptr [EBP + 0x14]
TEST EAX,EAX
JZ 0x00024086
CMP dword ptr [EAX],EBP
JZ 0x00024788
MOV EAX,dword ptr [ESP + 0x10]
ADD dword ptr [ESP + 0x14],0x1
TEST EAX,EAX
JZ 0x000240a8
SUB ESP,0xc
PUSH EAX
CALL 0x00041590
ADD ESP,0x10
CMP dword ptr [EAX + 0x10],EBP
JZ 0x00024338
ADD EBP,0x40
CMP dword ptr [ESP + 0x4c],EBP
JBE 0x00024380
MOV EAX,dword ptr [ESP + 0x20]
CMP dword ptr [EBP + 0x10],EAX
JZ 0x00023c20
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe02c0]
PUSH EAX
LEA EAX,[EBX + 0xfffdfc62]
PUSH 0xf6b
PUSH EAX
CALL 0x00031740
TEST byte ptr [EBP + 0x3c],0x3f
JZ 0x00023e3f
MOV EAX,dword ptr [EBP + 0x3c]
SHR EAX,0xc
AND EAX,0xfff00
CMP EAX,0x8f300
JZ 0x00023e3f
SUB ESP,0xc
PUSH dword ptr [ESP + 0x1c]
CALL 0x0003dd80
ADD ESP,0x10
MOV EDX,dword ptr [EBP + 0x18]
TEST EDX,EDX
JZ 0x00024660
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe02c0]
PUSH EAX
LEA EAX,[EBX + 0xfffdfc62]
PUSH 0x101e
PUSH EAX
CALL 0x00031740
MOV EAX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [EAX + 0x1c]
TEST EAX,EAX
JZ 0x00024c1c
MOV EDI,dword ptr [ESP + 0x14]
SUB EDI,dword ptr [ESP + 0x30]
LEA EDX,[EDI + 0x1]
MOV dword ptr [ESP + 0x18],EDI
MOV dword ptr [EAX + 0x4],EDX
MOVZX EAX,byte ptr [ESP + 0x34]
AND EAX,0x37
CMP AL,0x6
JZ 0x00024180
LEA ESI,[EBX + 0x9544]
MOV EAX,dword ptr [EBP + 0x20]
MOV dword ptr [ESP + 0x24],ESI
TEST EAX,EAX
JNZ 0x00023ff8
JMP 0x0002402d
MOV EAX,dword ptr [ESP + 0x10]
TEST EAX,EAX
JZ 0x00024c37
MOV EAX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [EAX + 0x4]
TEST EAX,EAX
JZ 0x00024c01
SUB ESP,0xc
PUSH dword ptr [ESP + 0x1c]
CALL 0x0003e1d0
MOV EDI,EAX
POP EAX
MOV EAX,dword ptr [ESP + 0x14]
PUSH dword ptr [EAX + 0x4]
CALL 0x0003e1d0
ADD ESP,0x10
CMP EDI,EAX
JZ 0x000241db
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe0228]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141e0
MOV dword ptr [ESP],EAX
CALL 0x00031540
ADD ESP,0x10
SUB ESP,0xc
PUSH dword ptr [ESP + 0x1c]
CALL 0x0003fad0
MOV ESI,EAX
POP EAX
MOV EAX,dword ptr [ESP + 0x14]
MOV EDI,EDX
PUSH dword ptr [EAX + 0x4]
CALL 0x0003fad0
SUB ESI,EAX
MOV EAX,ESI
SBB EDI,EDX
ADD ESP,0x10
AND EAX,0x1
TEST EAX,EAX
JNZ 0x000242f8
MOV dword ptr [EBP + 0x34],ESI
MOV dword ptr [EBP + 0x38],EDI
SUB ESP,0xc
MOV EAX,dword ptr [ESP + 0x14]
PUSH dword ptr [EAX + 0x4]
CALL 0x000414f0
MOV ESI,dword ptr [EBP + 0x34]
MOV EDI,dword ptr [EBP + 0x38]
ADD ESP,0x10
MOV dword ptr [EAX + 0x28],ESI
MOV dword ptr [EAX + 0x2c],EDI
MOV EAX,dword ptr [EBP + 0x20]
TEST EAX,EAX
JZ 0x000242b0
MOV EDI,dword ptr [ESP + 0x14]
SUB EDI,dword ptr [ESP + 0x30]
MOV dword ptr [ESP + 0x18],EDI
LEA EDI,[EBX + 0x9544]
MOV dword ptr [ESP + 0x24],EDI
JMP 0x00023ff8
SUB ESP,0xc
PUSH dword ptr [ESP + 0x1c]
CALL 0x0003fad0
MOV ESI,EAX
POP EAX
PUSH dword ptr [ESP + 0x1c]
MOV EDI,EDX
CALL 0x0003e1d0
ADD ESI,dword ptr [EBP + 0x8]
ADC EDI,dword ptr [EBP + 0xc]
ADD ESI,dword ptr [EAX + 0x1c]
ADC EDI,dword ptr [EAX + 0x20]
ADD ESP,0x10
MOV dword ptr [EBP + 0x34],ESI
MOV dword ptr [EBP + 0x38],EDI
JMP 0x00023cb9
MOV EAX,dword ptr [EBP + 0x18]
MOV dword ptr [ESP + 0x8],EAX
TEST EAX,EAX
JNZ 0x00023e89
MOV EAX,dword ptr [EBP + 0x20]
TEST EAX,EAX
JNZ 0x00024237
LEA ESI,[ESI]
LEA ESI,[ESI]
LEA EAX,[EBX + 0x9544]
MOV dword ptr [ESP + 0x24],EAX
JMP 0x0002402d
SUB ESP,0xc
PUSH dword ptr [ESP + 0x1c]
CALL 0x0003dc90
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00023e34
SUB ESP,0xc
PUSH dword ptr [ESP + 0x1c]
CALL 0x0003ddd0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00023e34
JMP 0x00023e3f
MOV EAX,ESI
MOV EDX,EDI
ADD EAX,0x1
ADC EDX,0x0
MOV dword ptr [EBP + 0x34],EAX
MOV dword ptr [EBP + 0x38],EDX
JMP 0x00024212
SUB ESP,0xc
PUSH dword ptr [ESP + 0x34]
MOV ECX,dword ptr [ESP + 0x2c]
MOV EDX,dword ptr [ESP + 0x58]
MOV EAX,dword ptr [ESP + 0x54]
CALL 0x0001ff00
MOV dword ptr [ESP + 0x2c],EAX
ADD ESP,0x10
JMP 0x0002404b
MOVZX EAX,byte ptr [EBP + 0x3c]
AND EAX,0x37
CMP AL,0x6
JZ 0x00024860
MOV EAX,dword ptr [ESP + 0x20]
SUB ESP,0xc
MOV EAX,dword ptr [EAX + 0x70]
MOV dword ptr [EBP + 0x2c],EAX
PUSH dword ptr [ESP + 0x1c]
CALL 0x0003dc20
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000247e0
MOV EAX,dword ptr [ESP + 0x20]
ADD EBP,0x40
AND byte ptr [EAX + 0x44],0xdf
CMP dword ptr [ESP + 0x4c],EBP
JA 0x000240b5
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x58]
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [ESP + 0x58],EAX
TEST EAX,EAX
JNZ 0x00023bdc
MOV EDI,dword ptr [ESP + 0x14]
MOV ECX,dword ptr [ESP + 0x20]
MOV dword ptr [ESP + 0x30],EDI
MOV EAX,EDI
SUB EAX,dword ptr [ECX + 0x18]
MOV EDI,dword ptr [ESP + 0x20]
MOV dword ptr [EDI + 0x1c],EAX
ADD EDI,0x294
MOV dword ptr [ESP + 0x20],EDI
CMP dword ptr [ESP + 0x68],EDI
JA 0x00023bb7
MOV EAX,dword ptr [ESP + 0x60]
MOV EDX,dword ptr [EAX + 0x4]
TEST EDX,EDX
JNZ 0x00024bf8
MOV EAX,dword ptr [ESP + 0x30]
IMUL EAX,dword ptr [ESP + 0x28]
XOR EDX,EDX
ADD dword ptr [ESP + 0x54],EAX
MOV ECX,dword ptr [ESP + 0x54]
MOV ESI,dword ptr [ESP + 0xc8]
MOV dword ptr [ESP + 0x3c],EDX
MOV dword ptr [ESP + 0x38],ECX
MOV EAX,ECX
MOV ECX,dword ptr [ESP + 0xc0]
SUB EAX,dword ptr [ECX + 0x34]
SBB EDX,dword ptr [ECX + 0x38]
PUSH dword ptr [ESI + 0x28]
PUSH dword ptr [ESI + 0x24]
PUSH EDX
PUSH EAX
CALL 0x000548c0
MOV EDI,dword ptr [EBX + 0x240]
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x7c]
MOV dword ptr [ESP + 0x4c],EDI
MOV ECX,dword ptr [ESP + 0xc0]
MOV EDI,dword ptr [ESP + 0x4c]
MOV dword ptr [ECX + 0x30],EAX
MOV EAX,dword ptr [ESP + 0xc8]
ADD EDX,dword ptr [ECX + 0x28]
MOV EAX,dword ptr [EAX + 0x1c]
MOV EBP,EDX
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,dword ptr [ESP + 0xc8]
MOV EAX,dword ptr [EAX + 0x20]
MOV dword ptr [ESP + 0x30],EAX
MOV EAX,dword ptr [ESP + 0xc8]
MOV EAX,dword ptr [EAX + 0x7c]
MOV dword ptr [ESP + 0x28],EAX
TEST EDI,EDI
JZ 0x0002554e
LEA EAX,[EBX + 0x9544]
MOV dword ptr [ESP + 0x20],0x0
MOV dword ptr [ESP + 0x24],EAX
MOV EDI,dword ptr [ESP + 0x4c]
MOV ESI,dword ptr [EDI + 0x8]
MOV EAX,dword ptr [EDI + 0x4]
MOV dword ptr [ESP + 0x18],ESI
TEST EAX,EAX
JZ 0x000253e9
MOV ESI,dword ptr [ESP + 0x5c]
MOVZX EDX,word ptr [ESI + EBX*0x1 + 0xe]
MOV ESI,dword ptr [ESP + 0x18]
IMUL EDX,EDX,0x294
MOV EDI,EDX
ADD EDI,ESI
MOV dword ptr [ESP + 0x40],EDI
CMP EDI,ESI
JBE 0x00025500
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x18]
MOVZX ESI,word ptr [ESP + 0x20]
MOV ECX,0x1
MOV word ptr [EAX + 0x30],SI
MOV EAX,dword ptr [EAX + 0xa0]
MOV dword ptr [ESP + 0x34],EAX
TEST EAX,EAX
JZ 0x00024cb0
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x34]
MOV EDX,dword ptr [EAX + 0x4]
TEST EDX,EDX
JZ 0x00025070
MOV EAX,dword ptr [ESP + 0x34]
MOV ESI,dword ptr [EAX + 0x8]
MOV EAX,dword ptr [ESP + 0x18]
MOVZX EAX,word ptr [EAX + 0xae]
IMUL EAX,EAX,0x44
ADD EAX,ESI
MOV dword ptr [ESP + 0x1c],EAX
CMP EAX,ESI
JA 0x0002456c
JMP 0x00025280
MOV EDI,dword ptr [ESP + 0x18]
XOR EDX,EDX
SUB EAX,dword ptr [EDI]
SBB EDX,dword ptr [EDI + 0x4]
MOV ECX,dword ptr [ESP + 0x80]
MOV dword ptr [ESI + 0x4],EAX
MOV dword ptr [ESI + 0x8],EDX
SUB ECX,EBP
MOV EAX,ECX
CDQ
CMP ECX,dword ptr [ESP + 0x10]
MOV EAX,EDX
SBB EAX,dword ptr [ESP + 0x30]
JC 0x00024c70
SUB ESP,0x4
LEA EAX,[ESI + 0x4]
ADD ESI,0x44
PUSH EBP
PUSH EAX
MOV EAX,dword ptr [ESP + 0x30]
PUSH dword ptr [EAX]
MOV EAX,dword ptr [ESP + 0x38]
CALL EAX
ADD EBP,dword ptr [ESP + 0x20]
XOR ECX,ECX
ADD dword ptr [ESP + 0x30],0x1
ADD ESP,0x10
CMP ESI,dword ptr [ESP + 0x1c]
JNC 0x00024c90
MOV EAX,dword ptr [ESI]
MOV dword ptr [ESP + 0x14],ECX
SUB ESP,0xc
MOV EDI,dword ptr [EAX + 0x4]
PUSH EDI
CALL 0x0003fad0
MOV dword ptr [ESP],EDI
MOV dword ptr [ESP + 0x18],EAX
CALL 0x0003e1d0
MOV EDX,dword ptr [ESP + 0x18]
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x14]
ADD EDX,dword ptr [EAX + 0x1c]
MOV EAX,EDX
TEST ECX,ECX
JZ 0x00024510
MOV EDI,dword ptr [ESP + 0x18]
XOR EAX,EAX
MOV dword ptr [EDI],EDX
XOR EDX,EDX
MOV dword ptr [EDI + 0x4],0x0
JMP 0x0002451b
SUB ESP,0xc
PUSH dword ptr [ESP + 0x1c]
CALL 0x0003ddd0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00023d76
LEA ESI,[ESI]
NOP
LEA EAX,[EBX + 0x9494]
MOV EDI,dword ptr [ESP + 0x8]
CMP EDI,dword ptr [EAX]
SETZ AL
LEA EAX,[EAX + EAX*0x2 + 0x2]
MOV byte ptr [ESP + 0x18],AL
JMP 0x00023d9a
SUB ESP,0xc
PUSH dword ptr [ESP + 0x1c]
CALL 0x0003ddd0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00023ced
SUB ESP,0xc
PUSH dword ptr [ESP + 0x1c]
CALL 0x0003dc20
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00023ced
SUB ESP,0xc
PUSH dword ptr [ESP + 0x1c]
CALL 0x0003dc90
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00023ced
MOVZX EAX,byte ptr [EBP + 0x3c]
AND EAX,0xffffffc0
OR EAX,0xe
MOV byte ptr [EBP + 0x3c],AL
JMP 0x00023ced
MOV EAX,dword ptr [EBP + 0x20]
TEST EAX,EAX
JZ 0x00024950
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe02c0]
PUSH EAX
LEA EAX,[EBX + 0xfffdfc62]
PUSH 0x1069
PUSH EAX
CALL 0x00031740
SUB ESP,0xc
PUSH dword ptr [ESP + 0x1c]
CALL 0x0003dd80
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00024800
LEA EAX,[EBX + 0x9494]
MOV EDX,0x1
MOV ESI,dword ptr [ESP + 0x8]
CMP ESI,dword ptr [EAX]
JZ 0x00023df1
LEA EAX,[EBX + 0x93f0]
MOV EDX,0x2
CMP ESI,dword ptr [EAX]
JZ 0x00023df1
MOV ESI,dword ptr [ESP + 0x24]
MOV ECX,0x7
LEA EDI,[EBX + 0xfffdfc74]
MOV EDX,0xf
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x00023df1
MOV ESI,dword ptr [ESP + 0x24]
MOV ECX,0x8
LEA EDI,[EBX + 0xfffdfc7b]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x00023df1
MOV ESI,dword ptr [ESP + 0x24]
MOV ECX,0x7
LEA EDI,[EBX + 0xfffdfc83]
MOV EDX,0xd
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x00023df1
LEA EAX,[EBX + 0x936c]
MOV EDX,0x3
MOV EDI,dword ptr [ESP + 0x8]
CMP EDI,dword ptr [EAX]
JZ 0x00023df1
MOV ESI,dword ptr [ESP + 0x24]
MOV ECX,0x6
LEA EDI,[EBX + 0xfffdfc8a]
MOV EDX,0xe
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x00023df1
MOV EAX,dword ptr [ESP + 0x64]
CMP dword ptr [ESP + 0x8],EAX
SETZ DL
LEA EDX,[EDX + EDX*0x2 + 0x2]
JMP 0x00023df1
MOV EDX,dword ptr [ESP + 0x14]
SUB EDX,dword ptr [ESP + 0x30]
MOV dword ptr [EAX + 0xc],EDX
JMP 0x00024086
MOV EAX,dword ptr [EBP + 0x20]
TEST EAX,EAX
JNZ 0x00023ff8
JMP 0x0002402d
MOV EAX,dword ptr [EBP + 0x20]
TEST EAX,EAX
JZ 0x000242b0
LEA ESI,[EBX + 0x9544]
MOV EDI,dword ptr [ESP + 0x14]
SUB EDI,dword ptr [ESP + 0x30]
MOV dword ptr [ESP + 0x18],EDI
MOV dword ptr [ESP + 0x24],ESI
JMP 0x00023ff8
SUB ESP,0xc
PUSH dword ptr [ESP + 0x1c]
CALL 0x0003dc90
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00024368
JMP 0x000240a8
SUB ESP,0xc
PUSH dword ptr [ESP + 0x1c]
CALL 0x0003fad0
ADD ESP,0x10
OR EDX,EAX
JNZ 0x000248e0
MOV EDX,0x11
JMP 0x00023df1
LEA EAX,[EBX + 0x9544]
SUB ESP,0xc
PUSH dword ptr [EAX]
CALL 0x00014330
XOR ECX,ECX
ADD ESP,0x10
CMP EAX,ESI
MOV EAX,ECX
SBB EAX,EDI
JC 0x00023dce
MOV dword ptr [EBP + 0x34],ESI
MOV EDX,0x15
MOV dword ptr [EBP + 0x38],EDI
JMP 0x00023dd3
MOV EAX,dword ptr [ESP + 0x14]
SUB EAX,dword ptr [ESP + 0x30]
SUB EAX,0x1
SHL EAX,0xc
MOV EDX,EAX
MOV EAX,dword ptr [EBP + 0x3c]
AND EAX,0xfff
OR EAX,EDX
MOV dword ptr [EBP + 0x3c],EAX
JMP 0x00024347
MOV EAX,dword ptr [ESP + 0x20]
SUB ESP,0xc
MOV ECX,ESI
MOV EDX,dword ptr [EAX + 0xcc]
PUSH 0x0
ADD EAX,0x78
CALL 0x000203f0
MOV dword ptr [EBP + 0x30],EAX
MOV EAX,dword ptr [EBP + 0x18]
MOV dword ptr [ESP + 0x18],EAX
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00023e89
LEA ECX,[EBX + 0x9544]
MOV EAX,dword ptr [EBP + 0x20]
MOV EDI,dword ptr [ESP + 0x14]
SUB EDI,dword ptr [ESP + 0x30]
MOV dword ptr [ESP + 0x18],EDI
MOV dword ptr [ESP + 0x24],ECX
TEST EAX,EAX
JNZ 0x00023ff8
JMP 0x0002402d
SUB ESP,0xc
PUSH dword ptr [ESP + 0x1c]
CALL 0x0003fad0
MOV ESI,EAX
POP EAX
LEA EAX,[EBX + 0x9544]
MOV EDI,EDX
PUSH dword ptr [EAX]
CALL 0x00014330
XOR ECX,ECX
ADD ESP,0x10
MOV EDX,0x12
CMP EAX,ESI
MOV EAX,ECX
SBB EAX,EDI
JNC 0x00023df1
JMP 0x00024817
MOVZX EDX,word ptr [EDI + 0x9c]
SHL EDX,0x6
LEA ESI,[EAX + EDX*0x1]
MOV dword ptr [ESP + 0x4c],ESI
CMP ESI,EAX
JA 0x00023c0d
MOV ECX,dword ptr [ESP + 0x14]
MOV EAX,ECX
MOV dword ptr [ESP + 0x30],ECX
SUB EAX,dword ptr [EDI + 0x18]
JMP 0x000243a4
SUB ESP,0xc
PUSH dword ptr [ESP + 0x1c]
CALL 0x00041590
ADD ESP,0x10
CMP EBP,dword ptr [EAX + 0x10]
JNZ 0x000240a8
JMP 0x00024347
MOV dword ptr [ESP + 0x10],EDI
JMP 0x00023953
MOV EDI,dword ptr [ESP + 0x28]
TEST EDI,EDI
JZ 0x000238d0
MOV EAX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [EAX + 0x14]
SUB EAX,dword ptr [EDI + 0x14]
MOV EBP,EAX
JZ 0x000238d0
LEA ESI,[ESI]
LEA EDI,[ESI + -0x1]
CMP EDI,0xf
JG 0x000249e0
XOR ESI,ESI
LEA ECX,[EBP + 0x7]
MOV EDX,dword ptr [ESP + 0x80]
MOV EAX,dword ptr [ESP + 0x84]
CMP ECX,0xe
JA 0x000249f0
CMP EDX,EAX
JBE 0x00024ab8
LEA EDX,[EAX + 0x1]
SHL EBP,0x4
ADD dword ptr [ESP + 0x10],0x1
MOV dword ptr [ESP + 0x84],EDX
LEA EDX,[EBP + EDI*0x1]
MOV byte ptr [EAX],DL
JMP 0x000238d0
SUB ESI,0x10
MOV EDI,0xf
JMP 0x000249a2
SUB EDX,EAX
CMP EDX,0x2
JLE 0x00024a98
LEA EDX,[EAX + 0x1]
MOV dword ptr [ESP + 0x84],EDX
LEA EDX,[EDI + -0x80]
MOV byte ptr [EAX],DL
CMP EBP,0xffff8000
JGE 0x00024a58
ADD EBP,0x8000
MOV EDI,0xffffff80
XOR ECX,ECX
MOV EAX,dword ptr [ESP + 0x84]
ADD dword ptr [ESP + 0x10],0x3
LEA EDX,[EAX + 0x1]
MOV dword ptr [ESP + 0x84],EDX
MOV EDX,EDI
MOV byte ptr [EAX],DL
MOV EAX,dword ptr [ESP + 0x84]
LEA EDX,[EAX + 0x1]
MOV dword ptr [ESP + 0x84],EDX
MOV byte ptr [EAX],CL
JMP 0x00024998
CMP EBP,0x7fff
JG 0x00024ad8
MOV EAX,dword ptr [ESP + 0x84]
MOV ECX,EBP
ADD dword ptr [ESP + 0x10],0x3
LEA EDX,[EAX + 0x1]
MOV dword ptr [ESP + 0x84],EDX
MOV byte ptr [EAX],CH
MOV EAX,dword ptr [ESP + 0x84]
LEA EDX,[EAX + 0x1]
MOV dword ptr [ESP + 0x84],EDX
MOV byte ptr [EAX],CL
JMP 0x000238d0
SUB ESP,0xc
MOV ECX,EAX
PUSH 0x3
MOV EDX,dword ptr [ESP + 0x58]
MOV EAX,dword ptr [ESP + 0x54]
CALL 0x0001ff00
ADD ESP,0x10
JMP 0x000249fb
SUB ESP,0xc
MOV ECX,EAX
PUSH 0x1
MOV EDX,dword ptr [ESP + 0x58]
MOV EAX,dword ptr [ESP + 0x54]
CALL 0x0001ff00
ADD ESP,0x10
JMP 0x000249c0
SUB EBP,0x7fff
MOV EDI,0x7f
MOV ECX,0xffffffff
JMP 0x00024a1f
SUB ESP,0xc
IMUL ESI,dword ptr [ESP + 0x3c]
PUSH ESI
MOV ECX,dword ptr [ESP + 0x24]
MOV EDX,dword ptr [ESP + 0x58]
MOV EAX,dword ptr [ESP + 0x54]
CALL 0x0001ff00
MOV EBP,dword ptr [ESP + 0x8c]
ADD ESP,0x10
MOV ESI,dword ptr [EBX + 0x8ca4]
JMP 0x00023af6
MOVZX EAX,word ptr [EAX + EBX*0x1 + 0x10]
MOV ESI,dword ptr [ESP + 0x20]
IMUL EAX,EAX,0x294
ADD EAX,ESI
MOV dword ptr [ESP + 0x68],EAX
CMP EAX,ESI
JA 0x00023bb7
MOV EDI,dword ptr [ESP + 0xc0]
MOV EAX,dword ptr [ESP + 0x30]
XOR EDX,EDX
IMUL EAX,dword ptr [ESP + 0x28]
ADD dword ptr [ESP + 0x54],EAX
MOV ESI,dword ptr [ESP + 0x54]
MOV dword ptr [ESP + 0x3c],EDX
MOV EAX,ESI
SUB EAX,dword ptr [EDI + 0x34]
SBB EDX,dword ptr [EDI + 0x38]
MOV dword ptr [ESP + 0x38],ESI
MOV EDI,dword ptr [ESP + 0xc8]
PUSH dword ptr [EDI + 0x28]
PUSH dword ptr [EDI + 0x24]
PUSH EDX
PUSH EAX
CALL 0x000548c0
ADD ESP,0x10
MOV EDI,dword ptr [ESP + 0x5c]
MOV EDX,dword ptr [ESP + 0x7c]
MOV EDI,dword ptr [EDI + EBX*0x1]
MOV dword ptr [ESP + 0x4c],EDI
JMP 0x0002441d
LEA EAX,[ESP + 0x80]
MOV dword ptr [ESP + 0x18],0x0
MOV dword ptr [ESP + 0x48],EAX
LEA EAX,[ESP + 0x7c]
MOV dword ptr [ESP + 0x10],0x0
MOV dword ptr [ESP + 0x44],EAX
JMP 0x00023a3f
MOV EAX,dword ptr [ESP + 0x8]
MOV ECX,dword ptr [EAX]
JMP 0x00023764
MOV EDX,0x1
XOR EAX,EAX
CALL 0x00020ec0
JMP 0x0002349f
MOV dword ptr [ESP + 0x58],ECX
JMP 0x00023bdc
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe02c0]
PUSH EAX
LEA EAX,[EBX + 0xfffdfc62]
PUSH 0x1020
PUSH EAX
CALL 0x00031740
MOV dword ptr [ESP + 0x60],EDX
JMP 0x00023b80
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe02c0]
PUSH EAX
LEA EAX,[EBX + 0xfffdfc62]
PUSH 0x1043
PUSH EAX
CALL 0x00031740
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe02c0]
PUSH EAX
LEA EAX,[EBX + 0xfffdfc62]
PUSH 0x1035
PUSH EAX
CALL 0x00031740
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe02c0]
PUSH EAX
LEA EAX,[EBX + 0xfffdfc62]
PUSH 0x1042
PUSH EAX
CALL 0x00031740
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe02c0]
PUSH EAX
LEA EAX,[EBX + 0xfffdfc62]
PUSH 0xf85
PUSH EAX
CALL 0x00031740
SUB ESP,0xc
MOV ECX,EBP
PUSH dword ptr [ESP + 0x1c]
MOV EDX,dword ptr [ESP + 0x58]
MOV EAX,dword ptr [ESP + 0x54]
CALL 0x0001ff00
ADD ESP,0x10
MOV EBP,EAX
JMP 0x0002453d
MOV EAX,dword ptr [ESP + 0x34]
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [ESP + 0x34],EAX
TEST EAX,EAX
JNZ 0x000244d8
MOV ESI,dword ptr [ESP + 0x18]
MOVZX EAX,word ptr [ESP + 0x20]
SUB AX,word ptr [ESI + 0x30]
MOV ESI,dword ptr [ESP + 0x18]
MOV word ptr [ESI + 0x32],AX
ADD ESI,0x294
MOV dword ptr [ESP + 0x18],ESI
CMP ESI,dword ptr [ESP + 0x40]
JC 0x000244b0
MOV EAX,dword ptr [ESP + 0x4c]
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [ESP + 0x4c],EAX
TEST EAX,EAX
JNZ 0x00024474
MOV EAX,dword ptr [EBX + 0x240]
MOV ECX,dword ptr [ESP + 0x7c]
MOV dword ptr [ESP + 0x28],EAX
MOV EAX,dword ptr [ESP + 0xc0]
MOV EDX,dword ptr [ESP + 0x3c]
MOV ESI,dword ptr [ESP + 0x28]
MOV EDI,EAX
MOV dword ptr [EAX + 0x3c],0x0
MOV dword ptr [EAX + 0x40],0x0
MOV dword ptr [EAX + 0x44],0x0
MOV EAX,dword ptr [ESP + 0x38]
MOV dword ptr [EDI + 0x50],EDX
MOV dword ptr [EDI + 0x4c],EAX
MOV EAX,dword ptr [ESP + 0x24]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
MOV dword ptr [ESP + 0x8],EAX
SETZ byte ptr [ESP + 0x30]
MOVZX EAX,byte ptr [ESP + 0x30]
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [ESP + 0x54]
LEA EDI,[ECX + EAX*0x1]
TEST ESI,ESI
JZ 0x00024eaa
XOR EBP,EBP
MOV EAX,EBP
MOV EBP,EDI
MOV EDI,EAX
MOV EAX,dword ptr [ESP + 0x28]
MOV EDX,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [EAX + 0x8]
MOV dword ptr [ESP + 0x1c],EAX
MOV EAX,dword ptr [ESP + 0x5c]
TEST EDX,EDX
JZ 0x0002541a
MOVZX EAX,word ptr [EAX + EBX*0x1 + 0xe]
MOV ESI,dword ptr [ESP + 0x1c]
IMUL EAX,EAX,0x294
ADD EAX,ESI
MOV dword ptr [ESP + 0x20],EAX
CMP EAX,ESI
JBE 0x00025509
MOVZX EAX,byte ptr [ESP + 0x30]
SHL EAX,0x7
MOV byte ptr [ESP + 0x24],AL
LEA ESI,[ESI]
NOP
MOV ESI,dword ptr [ESP + 0x1c]
MOVZX EAX,byte ptr [ESI + 0x44]
MOV dword ptr [ESI + 0x34],EDI
MOV byte ptr [ESP + 0x10],AL
AND EAX,0x7f
OR AL,byte ptr [ESP + 0x24]
MOV byte ptr [ESI + 0x44],AL
MOV EAX,dword ptr [ESI + 0xb4]
MOV dword ptr [ESP + 0x14],EAX
TEST EAX,EAX
JZ 0x00024e71
LEA ESI,[ESI]
NOP
MOV ESI,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [ESI + 0x4]
MOV ESI,dword ptr [ESI + 0x8]
TEST EAX,EAX
JZ 0x000250a8
MOV ECX,dword ptr [ESP + 0x1c]
MOVZX EDX,word ptr [ECX + 0xc2]
LEA ECX,[ESI + EDX*0x8]
MOV dword ptr [ESP + 0x10],ECX
CMP ECX,ESI
JBE 0x00025289
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x80]
SUB EAX,EBP
CMP EAX,0x3
JBE 0x00025048
CMP dword ptr [ESI],0x7
JA 0x00024e46
MOV EAX,dword ptr [ESI]
MOV ECX,dword ptr [EBX + EAX*0x4 + 0xfffe02a0]
ADD ECX,EBX
JMP ECX
ADD EBP,0x4
ADD EDI,0x1
ADD ESI,0x8
CMP ESI,dword ptr [ESP + 0x10]
JC 0x00024e00
MOV EAX,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [ESP + 0x14],EAX
TEST EAX,EAX
JNZ 0x00024dd0
MOV ESI,dword ptr [ESP + 0x1c]
MOV EAX,EDI
SUB EAX,dword ptr [ESI + 0x34]
MOV ESI,dword ptr [ESP + 0x1c]
MOV dword ptr [ESI + 0x38],EAX
ADD ESI,0x294
MOV dword ptr [ESP + 0x1c],ESI
CMP ESI,dword ptr [ESP + 0x20]
JC 0x00024da0
MOV EAX,dword ptr [ESP + 0x28]
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [ESP + 0x28],EAX
TEST EAX,EAX
JNZ 0x00024d54
MOV EAX,dword ptr [ESP + 0x54]
LEA EAX,[EAX + EDI*0x4]
MOV dword ptr [ESP + 0x54],EAX
SUB ESP,0x8
XOR EDI,EDI
PUSH 0x0
PUSH dword ptr [ESP + 0x60]
MOV ECX,dword ptr [ESP + 0x58]
MOV EDX,dword ptr [ESP + 0x54]
MOV EAX,dword ptr [ESP + 0xd8]
CALL 0x0001ff70
MOV EBP,dword ptr [ESP + 0xd0]
MOV EDX,EDI
MOV ECX,EAX
MOV dword ptr [ESP + 0x2c],EAX
MOV ESI,EAX
SUB EAX,dword ptr [EBP + 0x4c]
SBB EDX,dword ptr [EBP + 0x50]
SHRD EAX,EDX,0x2
MOV dword ptr [EBP + 0x48],EAX
MOV EAX,EBP
MOV dword ptr [EAX + 0x58],ECX
MOV EAX,dword ptr [EBX + 0x240]
MOV dword ptr [EBP + 0x5c],EDI
MOV dword ptr [ESP + 0x30],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00025530
LEA EAX,[0x240]
MOV dword ptr [ESP + 0x14],0x0
MOV dword ptr [ESP + 0x5c],EAX
MOV EAX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [EAX + 0x4]
TEST EAX,EAX
JZ 0x0002543c
MOV EDI,dword ptr [ESP + 0x5c]
MOVZX EDX,word ptr [EDI + EBX*0x1 + 0xe]
MOV ECX,dword ptr [ESP + 0x20]
IMUL EDX,EDX,0x294
MOV EDI,dword ptr [ECX + 0x8]
ADD EDX,EDI
MOV dword ptr [ESP + 0x8],EDI
MOV dword ptr [ESP + 0x18],EDX
CMP EDI,EDX
JNC 0x000254aa
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x8]
MOV ECX,dword ptr [ESP + 0x14]
MOV EBP,ESI
MOV dword ptr [EAX + 0xc],ECX
MOV EDI,dword ptr [EAX + 0x78]
MOV ECX,dword ptr [ESP + 0x7c]
ADD ECX,ESI
TEST EDI,EDI
JZ 0x000253e0
XOR EBP,EBP
JMP 0x00024fa0
MOV EAX,dword ptr [EDI + 0x8]
SUB ESP,0x4
ADD EBP,ESI
PUSH ESI
PUSH EAX
PUSH ECX
MOV dword ptr [ESP + 0x20],ECX
CALL 0x000140f0
MOV ECX,dword ptr [ESP + 0x20]
MOV EDI,dword ptr [EDI + 0x4]
ADD ESP,0x10
ADD ECX,ESI
TEST EDI,EDI
JZ 0x000250d0
MOV EDX,dword ptr [EDI + 0x4]
MOV EAX,dword ptr [ESP + 0x8]
TEST EDX,EDX
JZ 0x00025098
MOVZX ESI,word ptr [EAX + 0x86]
MOV EAX,dword ptr [ESP + 0x80]
SUB EAX,ECX
CMP EAX,ESI
JNC 0x00024f78
SUB ESP,0xc
PUSH ESI
MOV EDX,dword ptr [ESP + 0x58]
MOV EAX,dword ptr [ESP + 0x54]
CALL 0x0001ff00
ADD ESP,0x10
MOV ECX,EAX
JMP 0x00024f78
SUB ESP,0xc
MOV ECX,EBP
PUSH 0x4
MOV EDX,dword ptr [ESP + 0x58]
MOV EAX,dword ptr [ESP + 0x54]
CALL 0x0001ff00
ADD ESP,0x10
MOV EBP,EAX
JMP 0x00024e12
MOV ESI,dword ptr [EAX + 0x8]
MOV EAX,dword ptr [ESP + 0x18]
MOVZX EAX,word ptr [EAX + 0xb0]
IMUL EAX,EAX,0x44
ADD EAX,ESI
MOV dword ptr [ESP + 0x1c],EAX
CMP EAX,ESI
JA 0x0002456c
JMP 0x00024ca3
MOVZX ESI,word ptr [EAX + 0x88]
JMP 0x00024fb6
MOV EAX,dword ptr [ESP + 0x1c]
MOVZX EAX,word ptr [EAX + 0xc4]
LEA EAX,[ESI + EAX*0x8]
MOV dword ptr [ESP + 0x10],EAX
CMP EAX,ESI
JA 0x00024e00
JMP 0x00024e68
ADD dword ptr [ESP + 0x14],EBP
MOV ESI,dword ptr [ESP + 0x1c]
MOV EAX,EBP
MOV EDI,dword ptr [ESP + 0x14]
CDQ
ADD ESI,EDI
MOV EBP,ESI
MOV EDI,dword ptr [ESP + 0x8]
MOV dword ptr [EDI + 0x10],EAX
ADD EDI,0x294
MOV dword ptr [EDI + 0xfffffd80],EDX
MOV dword ptr [ESP + 0x8],EDI
CMP dword ptr [ESP + 0x18],EDI
JA 0x00024f50
MOV EAX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [ESP + 0x20],EAX
MOV EAX,dword ptr [ESP + 0x20]
TEST EAX,EAX
JNZ 0x00024f16
SUB ESP,0x8
PUSH 0x0
PUSH EBP
MOV ECX,dword ptr [ESP + 0x58]
MOV EDX,dword ptr [ESP + 0x54]
MOV EAX,dword ptr [ESP + 0xd8]
CALL 0x0001ff70
MOV ESI,dword ptr [ESP + 0xd0]
MOV EDX,dword ptr [ESP + 0xd8]
MOV EDI,EAX
MOV ECX,dword ptr [ESP + 0xd0]
MOV dword ptr [ESP + 0x30],EAX
MOV EDX,dword ptr [EDX + 0x38]
SUB EAX,dword ptr [ESI + 0x58]
MOV dword ptr [ESI + 0x78],0x0
MOV dword ptr [ESI + 0x54],EAX
MOV EAX,EDI
MOV dword ptr [ESI + 0x7c],0x0
MOV dword ptr [ESI + 0x80],0x0
MOV ESI,EDI
XOR EDI,EDI
MOV dword ptr [ECX + 0x70],EAX
ADD EAX,dword ptr [ESP + 0x8c]
MOV dword ptr [ESP + 0x28],EDX
MOV EDX,dword ptr [ESP + 0xd8]
MOV EBP,EAX
MOV dword ptr [ECX + 0x74],EDI
MOV ECX,dword ptr [ESP + 0xd8]
MOV EDX,dword ptr [EDX + 0x88]
MOV EAX,dword ptr [EBX + 0x240]
MOV ECX,dword ptr [ECX + 0x34]
MOV dword ptr [ESP + 0x24],EDX
MOV dword ptr [ESP + 0x40],ECX
MOV dword ptr [ESP + 0x34],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00025539
LEA EAX,[0x240]
MOV dword ptr [ESP + 0x10],0x0
MOV EDI,ECX
MOV dword ptr [ESP + 0x5c],EAX
LEA EAX,[EBX + 0x9544]
MOV dword ptr [ESP + 0x28],EBX
MOV dword ptr [ESP + 0x1c],EAX
MOV EAX,EBP
MOV EBX,dword ptr [ESP + 0x24]
MOV ECX,dword ptr [EBX + 0x4]
MOV ESI,dword ptr [EBX + 0x8]
MOV EBX,dword ptr [ESP + 0x5c]
TEST ECX,ECX
JZ 0x0002544a
MOV EDX,dword ptr [ESP + 0x28]
MOVZX EDX,word ptr [EBX + EDX*0x1 + 0xe]
IMUL EDX,EDX,0x294
LEA EBX,[ESI + EDX*0x1]
MOV dword ptr [ESP + 0x8],EBX
CMP EBX,ESI
JBE 0x00025277
MOV EBX,EAX
JMP 0x00025247
SUB ESP,0x4
PUSH EBX
ADD EBX,EDI
PUSH ESI
MOV EAX,dword ptr [ESP + 0x28]
ADD ESI,0x294
PUSH dword ptr [EAX]
MOV EAX,dword ptr [ESP + 0x24]
CALL EAX
ADD dword ptr [ESP + 0x20],0x1
ADD ESP,0x10
CMP ESI,dword ptr [ESP + 0x8]
JNC 0x00025292
MOV EBP,dword ptr [ESP + 0x80]
SUB EBP,EBX
MOV EAX,EBP
CDQ
CMP EBP,EDI
MOV EAX,EDX
SBB EAX,dword ptr [ESP + 0x18]
JNC 0x00025220
SUB ESP,0xc
MOV ECX,EBX
PUSH EDI
MOV EDX,dword ptr [ESP + 0x58]
MOV EAX,dword ptr [ESP + 0x54]
CALL 0x0001ff00
ADD ESP,0x10
MOV EBX,EAX
JMP 0x00025220
MOV dword ptr [ESP + 0x24],ECX
JMP 0x000251e2
MOV dword ptr [ESP + 0x34],EDX
JMP 0x000244d8
MOV dword ptr [ESP + 0x14],EAX
JMP 0x00024dd0
MOV EAX,EBX
MOV EBX,dword ptr [ESP + 0x24]
MOV EBX,dword ptr [EBX + 0x4]
MOV dword ptr [ESP + 0x24],EBX
TEST EBX,EBX
JNZ 0x000251e2
MOV EAX,dword ptr [ESP + 0x10]
IMUL EAX,dword ptr [ESP + 0x30]
XOR EDI,EDI
ADD dword ptr [ESP + 0x20],EAX
MOV ECX,dword ptr [ESP + 0x20]
MOV EDX,EDI
MOV EBX,dword ptr [ESP + 0x28]
MOV ESI,ECX
MOV ECX,dword ptr [ESP + 0xc0]
MOV EAX,ESI
SUB EAX,dword ptr [ECX + 0x70]
SBB EDX,dword ptr [ECX + 0x74]
MOV ECX,dword ptr [ESP + 0xc8]
PUSH dword ptr [ECX + 0x38]
PUSH dword ptr [ECX + 0x34]
PUSH EDX
PUSH EAX
CALL 0x000548c0
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0xc0]
MOV dword ptr [ECX + 0x6c],EAX
MOV EAX,dword ptr [ESP + 0x6c]
MOV dword ptr [ECX + 0x60],0x0
MOV EBP,dword ptr [EAX]
MOV dword ptr [ECX + 0x64],0x0
MOV dword ptr [ECX + 0x68],0x0
MOV dword ptr [ECX + 0x84],0x0
MOV dword ptr [ECX + 0x88],0x0
MOV dword ptr [ECX + 0x8c],0x0
TEST EBP,EBP
JNZ 0x00025369
JMP 0x000254b5
SUB ESP,0xc
PUSH EBP
CALL 0x00041590
POP EDX
POP ECX
MOV EAX,dword ptr [EAX + 0x10]
ADD EAX,0x28
PUSH EAX
PUSH EBP
CALL 0x0004ed20
ADD ESP,0x10
SUB ESP,0xc
PUSH EBP
CALL 0x00040c00
ADD ESP,0x10
MOV EBP,EAX
TEST EAX,EAX
JZ 0x000254b5
SUB ESP,0xc
PUSH EBP
CALL 0x00041590
ADD ESP,0x10
MOV EAX,dword ptr [EAX + 0x10]
TEST EAX,EAX
JZ 0x00025353
SUB ESP,0xc
PUSH EBP
CALL 0x0003dc20
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00025338
SUB ESP,0xc
PUSH EBP
CALL 0x0003dc90
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00025338
SUB ESP,0xc
PUSH EBP
CALL 0x0003ddd0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00025338
SUB ESP,0xc
PUSH EBP
CALL 0x00041590
ADD ESP,0x10
MOV EDX,dword ptr [EAX + 0x10]
MOV EAX,dword ptr [EDX + 0x3c]
MOV dword ptr [EDX + 0x34],0x0
MOV dword ptr [EDX + 0x38],0x0
AND EAX,0x800
OR EAX,0xfffff000
MOV dword ptr [EDX + 0x3c],EAX
JMP 0x00025338
XOR EAX,EAX
XOR EDX,EDX
JMP 0x000250e3
MOV EAX,dword ptr [ESP + 0x5c]
MOVZX EAX,word ptr [EAX + EBX*0x1 + 0x10]
IMUL EAX,EAX,0x294
ADD EAX,ESI
MOV dword ptr [ESP + 0x40],EAX
CMP EAX,ESI
JA 0x000244b0
MOV EAX,dword ptr [ESP + 0x5c]
MOV ECX,dword ptr [ESP + 0x7c]
MOV EAX,dword ptr [EAX + EBX*0x1]
MOV dword ptr [ESP + 0x28],EAX
JMP 0x00024ced
MOVZX EAX,word ptr [EAX + EBX*0x1 + 0x10]
MOV ECX,dword ptr [ESP + 0x1c]
IMUL EAX,EAX,0x294
ADD EAX,ECX
MOV dword ptr [ESP + 0x20],EAX
CMP EAX,ECX
JA 0x00024d8b
JMP 0x00024e9f
MOV ECX,dword ptr [ESP + 0x5c]
MOVZX EDX,word ptr [ECX + EBX*0x1 + 0x10]
JMP 0x00024f2e
MOV ECX,dword ptr [ESP + 0x28]
MOVZX EDX,word ptr [EBX + ECX*0x1 + 0x10]
IMUL EDX,EDX,0x294
LEA EBX,[ESI + EDX*0x1]
MOV dword ptr [ESP + 0x8],EBX
CMP EBX,ESI
JA 0x00025212
MOV EAX,dword ptr [ESP + 0x10]
MOV EBX,ECX
IMUL EAX,dword ptr [ESP + 0x30]
XOR EDI,EDI
ADD dword ptr [ESP + 0x20],EAX
MOV ECX,dword ptr [ESP + 0xc0]
MOV EDX,EDI
MOV ESI,dword ptr [ESP + 0x20]
MOV EAX,ESI
SUB EAX,dword ptr [ECX + 0x70]
SBB EDX,dword ptr [ECX + 0x74]
MOV ECX,dword ptr [ESP + 0xc8]
PUSH dword ptr [ECX + 0x38]
PUSH dword ptr [ECX + 0x34]
PUSH EDX
PUSH EAX
CALL 0x000548c0
ADD ESP,0x10
JMP 0x000252e8
MOV EBP,ESI
MOV dword ptr [ESP + 0x20],EAX
JMP 0x0002510f
MOV EAX,dword ptr [ESP + 0xc8]
MOV EDX,dword ptr [EAX + 0x8]
MOV EAX,dword ptr [EAX + 0x4]
ADD EAX,-0x1
ADC EDX,-0x1
AND EAX,ESI
MOV ECX,EDX
MOV EDX,ECX
AND EDX,EDI
OR EDX,EAX
JNZ 0x00025512
MOV EAX,dword ptr [ESP + 0xc0]
MOV EDX,0x30b
MOV word ptr [EAX + 0x2],DX
MOV EAX,dword ptr [ESP + 0xc4]
MOV EDX,dword ptr [ESP + 0x7c]
MOV dword ptr [EAX],EDX
MOV EAX,dword ptr [ESP + 0x20]
ADD ESP,0xac
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV dword ptr [ESP + 0x4c],EAX
JMP 0x00024474
MOV dword ptr [ESP + 0x28],EDX
JMP 0x00024d54
LEA EAX,[EBX + 0xfffe02d4]
PUSH ESI
PUSH EAX
LEA EAX,[EBX + 0xfffdfc62]
PUSH 0x129d
PUSH EAX
CALL 0x00031740
MOV EBP,dword ptr [ESP + 0x1c]
JMP 0x0002511b
XOR EAX,EAX
JMP 0x000252e8
MOV EAX,dword ptr [ESP + 0xc0]
MOV dword ptr [EAX + 0x30],0x0
MOV EAX,dword ptr [ESP + 0xc0]
MOV EDX,dword ptr [ESP + 0x3c]
MOV dword ptr [EAX + 0x3c],0x0
MOV EDI,EAX
MOV dword ptr [EAX + 0x40],0x0
MOV dword ptr [EAX + 0x44],0x0
MOV EAX,dword ptr [ESP + 0x38]
MOV dword ptr [EDI + 0x50],EDX
MOV dword ptr [EDI + 0x4c],EAX
JMP 0x00024eaa
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe02c0]
PUSH EAX
LEA EAX,[EBX + 0xfffdfc62]
PUSH 0x105a
PUSH EAX
CALL 0x00031740
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe02c0]
PUSH EAX
LEA EAX,[EBX + 0xfffdfc62]
PUSH 0x105b
PUSH EAX
CALL 0x00031740
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Type propagation algorithm not settling */\n\nuint FUN_00023460(int param_1,undefined4 *param_2,int param_3)\n\n{\n  char *pcVar1;\n  ushort uVar2;\n  int *piVar3;\n  undefined4 *****pppppuVar4;\n  code *pcVar5;\n  undefined4 *puVar6;\n  uint *puVar7;\n  undefined1 uVar8;\n  short sVar9;\n  ulonglong uVar10;\n  byte bVar11;\n  int iVar12;\n  undefined4 uVar13;\n  char *pcVar14;\n  int iVar15;\n  uint uVar16;\n  undefined4 *****pppppuVar17;\n  undefined4 *****pppppuVar18;\n  char *pcVar19;\n  undefined4 *puVar20;\n  int iVar21;\n  undefined4 uVar22;\n  undefined4 *puVar23;\n  char *pcVar24;\n  int *piVar25;\n  int iVar26;\n  undefined4 ******ppppppuVar27;\n  char cVar28;\n  undefined4 *******pppppppuVar29;\n  undefined4 *******pppppppuVar30;\n  byte bVar31;\n  uint uVar32;\n  uint uVar33;\n  byte *pbVar34;\n  byte *pbVar35;\n  uint uVar36;\n  char cVar37;\n  uint uVar38;\n  byte *pbVar39;\n  bool bVar40;\n  bool bVar41;\n  bool bVar42;\n  byte bVar43;\n  undefined8 uVar44;\n  longlong lVar45;\n  longlong lVar46;\n  undefined4 *******local_b4;\n  undefined4 *****local_ac;\n  undefined4 ******local_a8;\n  undefined4 *****local_a4;\n  undefined4 ******local_a0;\n  undefined4 *****local_9c;\n  undefined4 ******local_98;\n  undefined4 *******local_94;\n  int local_8c;\n  uint local_88;\n  uint *local_7c;\n  undefined4 *local_70;\n  uint local_68;\n  int local_64;\n  int local_5c;\n  uint local_54;\n  char *local_38;\n  undefined4 *******local_34;\n  undefined4 ******local_30;\n  undefined4 ******local_2c;\n  undefined4 *local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar43 = 0;\n  uStack_14 = 0x23469;\n  uVar36 = *(uint *)(param_3 + 0x1c);\n  iVar26 = *(int *)(param_3 + 0x20);\n  if (DAT_00080ca0 == 0) {\n    FUN_00020ec0();\n  }\n  piVar25 = *(int **)(DAT_000809e4 + 8);\n  uVar13 = DAT_000809ec;\n  while (DAT_000809ec = uVar13, piVar25 != (int *)0x0) {\n    iVar15 = piVar25[1];\n    if (piVar25[4] != 0) {\n      FUN_00020e40();\n      iVar15 = piVar25[1];\n    }\n    piVar3 = (int *)piVar25[3];\n    DAT_00080aa0 = DAT_00080aa0 + 1;\n    *(int *)(iVar15 + 0x14) = piVar25[2];\n    *piVar25 = DAT_00080a94;\n    DAT_00080a94 = (int)piVar25;\n    piVar25 = piVar3;\n    uVar13 = DAT_000809ec;\n  }\n  DAT_00080ad8 = DAT_00080ad8 + 1;\n  iVar15 = DAT_000809e4;\n  *(int *)(DAT_000809e4 + 4) = DAT_00080acc;\n  DAT_00080acc = iVar15;\n  iVar21 = DAT_000809f0;\n  DAT_000809ec = 0;\n  for (iVar15 = DAT_000816a4; iVar15 != 0; iVar15 = FUN_00040c00(iVar15)) {\n    iVar12 = FUN_00041590(iVar15);\n    if (((*(int *)(iVar12 + 0x10) == 0) &&\n        (iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0)) &&\n       (iVar12 = FUN_000414f0(iVar15), (*(byte *)(iVar12 + 0x11) & 1) == 0)) {\n      iVar12 = FUN_00041590(iVar15);\n      DAT_000809f0 = *(int *)(iVar12 + 0xc);\n      uVar22 = FUN_0003fad0(iVar15);\n      FUN_00020930(iVar15,0,0,uVar22,0xfffff);\n    }\n  }\n  uVar8 = false;\n  DAT_000809ec = uVar13;\n  DAT_000809f0 = iVar21;\n  iVar15 = DAT_00080ca0;\njoined_r0x000235e4:\n  if (iVar15 != 0) {\n    piVar25 = *(int **)(iVar15 + 0x6c);\n    iVar21 = iVar15;\n    DAT_000809f0 = iVar15;\n    while (piVar25 != (int *)0x0) {\n      while( true ) {\n        piVar25 = (int *)*piVar25;\n        if (piVar25 == (int *)0x0) {\n          FUN_00020930(0,0,0,0,0);\n          iVar15 = *(int *)(iVar15 + 200);\n          goto joined_r0x000235e4;\n        }\n        *(int **)(iVar21 + 0x6c) = piVar25;\n        if (((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)) break;\n        uVar8 = true;\n        uVar13 = dcgettext(0,"missing .end or .bend at end of file",5);\n        FUN_00031540(uVar13);\n        piVar25 = *(int **)(DAT_000809f0 + 0x6c);\n        iVar21 = DAT_000809f0;\n        if (piVar25 == (int *)0x0) goto LAB_00023650;\n      }\n    }\nLAB_00023650:\n    iVar15 = *(int *)(iVar15 + 200);\n    goto joined_r0x000235e4;\n  }\n  pcVar14 = (char *)xmalloc(0x2000);\n  pppppppuVar29 = DAT_00080c9c;\n  pcVar1 = pcVar14 + 0x2000;\n  bVar41 = DAT_00080758 == 3;\n  *(undefined4 *)(param_1 + 0x10) = 0;\n  *(undefined4 *)(param_1 + 0x14) = 0;\n  *(undefined4 *)(param_1 + 4) = 0;\n  local_38 = pcVar14;\n  local_b4 = pppppppuVar29;\n  if ((bVar41) || (DAT_000809e8 == (int *)0x0)) {\n    if (pppppppuVar29 != (undefined4 *******)0x0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n      goto LAB_00023764;\n    }\n  }\n  else if (pppppppuVar29 != (undefined4 *******)0x0) {\n    uVar44 = FUN_0003fad0(*(undefined4 *)(*DAT_000809e8 + 4));\n    iVar15 = FUN_0003e1d0(*(undefined4 *)(*DAT_000809e8 + 4));\n    if ((int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +\n        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c)) == 0 &&\n        (uint)uVar44 + *(uint *)(iVar15 + 0x1c) == 0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n    }\n    else {\n      local_30 = pppppppuVar29[1];\n      local_24 = 0;\n      local_2c = pppppppuVar29[2];\n      local_20 = 0;\n      local_28 = &DAT_000813a0;\n      local_b4 = &local_34;\n      local_34 = pppppppuVar29;\n    }\nLAB_00023764:\n    local_9c = (undefined4 *****)0x0;\n    local_ac = (undefined4 *****)0x0;\n    local_94 = (undefined4 *******)0x0;\n    local_a0 = (undefined4 ******)0x0;\n    local_98 = (undefined4 ******)0x0;\nLAB_000237a6:\n    pppppppuVar30 = pppppppuVar29;\n    if (pppppppuVar30 == (undefined4 *******)0x0) {\n      pppppuVar17 = (undefined4 *****)0x1;\nLAB_000237e1:\n      ppppppuVar27 = local_b4[1];\n      local_a8 = local_b4[2];\n      local_a4 = (undefined4 *****)((int)local_9c + (int)pppppuVar17);\n      if (ppppppuVar27 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }\n      }\n      else {\n        bVar41 = local_98 != local_a8;\n        if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }\n        pppppuVar18 = (undefined4 *****)0x0;\n        if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }\n        ppppppuVar27[8] = pppppuVar18;\n        ppppppuVar27[0x12] = local_ac;\n        ppppppuVar27[0x13] = (undefined4 *****)0x0;\n        local_a0 = ppppppuVar27;\n        if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }\n      goto LAB_000238d0;\n    }\n    ppppppuVar27 = pppppppuVar30[3];\n    uVar33 = (int)pppppppuVar30[4] + (int)*ppppppuVar27;\n    uVar38 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27);\n    ppppppuVar27 = local_b4[3];\n    uVar16 = (int)local_b4[4] + (int)*ppppppuVar27;\n    uVar32 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)local_b4[4],(uint)*ppppppuVar27);\n    if (uVar32 < uVar38 || uVar32 - uVar38 < (uint)(uVar16 < uVar33)) {\n      pppppuVar17 = (undefined4 *****)\n                    (uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000);\n      goto LAB_000237e1;\n    }\n    goto LAB_000237a0;\n  }\n  local_a4 = (undefined4 *****)0x0;\n  local_ac = (undefined4 *****)0x0;\nLAB_00023a3f:\n  *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n  local_68 = FUN_0001ff70(local_ac,&local_38);\n  *(uint *)(param_1 + 0x28) = local_68;\n  *(uint *)(param_1 + 8) = local_68 - *(uint *)(param_1 + 0x10);\n  uVar16 = DAT_00080ca4;\n  *(uint *)(param_1 + 0xc) =\n       -(uint)(local_68 < *(uint *)(param_1 + 0x10)) - *(int *)(param_1 + 0x14);\n  *(undefined4 *)(param_1 + 0x2c) = 0;\n  *(undefined4 *)(param_1 + 0x18) = 0;\n  *(undefined4 *)(param_1 + 0x1c) = 0;\n  *(undefined4 *)(param_1 + 0x20) = 0;\n  *(uint *)(param_1 + 0x24) = uVar16;\n  uVar32 = (int)pcVar1 - (int)(pcVar14 + local_68) >> 0x1f;\n  uVar33 = (int)((ulonglong)uVar36 * (ulonglong)uVar16 >> 0x20) + iVar26 * uVar16;\n  if (uVar32 < uVar33 ||\n      uVar32 - uVar33 <\n      (uint)((uint)((int)pcVar1 - (int)(pcVar14 + local_68)) <\n            (uint)((ulonglong)uVar36 * (ulonglong)uVar16))) {\n    FUN_0001ff00(uVar16 * uVar36);\n    uVar16 = DAT_00080ca4;\n  }\n  local_68 = uVar16 * uVar36 + local_68;\n  uVar36 = *(uint *)(param_3 + 0x24);\n  local_a0 = (undefined4 ******)(pcVar14 + local_68);\n  *(uint *)(param_1 + 0x34) = local_68;\n  uVar16 = *(uint *)(param_3 + 0x28);\n  *(undefined4 *)(param_1 + 0x38) = 0;\n  pcVar5 = *(code **)(param_3 + 0x80);\n  if (DAT_00078240 != 0) {\n    local_8c = 0;\n    puVar20 = (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0x180);\n    iVar26 = DAT_00078240;\nLAB_00023b80:\n    local_5c = iVar26;\n    local_9c = *(undefined4 ******)(local_5c + 8);\n    if (*(int *)(local_5c + 4) == 0) {\n      local_54 = (uint)DAT_00078250 * 0x294 + (int)local_9c;\n      if (local_54 <= local_9c) {\n        local_68 = local_68 + local_8c * uVar36;\n        uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28));\n        goto LAB_0002441d;\n      }\n    }\n    else {\n      local_54 = (uint)DAT_0007824e * 0x294 + (int)local_9c;\n      iVar26 = *(int *)(local_5c + 4);\n      if (local_54 <= local_9c) goto LAB_00023b80;\n    }\nLAB_00023bb7:\n    *(int *)((int)local_9c + 0x18) = local_8c;\n    iVar26 = *(int *)((int)local_9c + 0x8c);\n    if (iVar26 != 0) {\n      local_a8 = (undefined4 ******)local_8c;\nLAB_00023bdc:\n      local_64 = iVar26;\n      puVar6 = *(undefined4 **)(local_64 + 8);\n      if (*(int *)(local_64 + 4) == 0) {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10;\n        if (local_70 <= puVar6) {\n          local_8c = (int)local_a8;\n          iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n          goto LAB_000243a4;\n        }\n      }\n      else {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10;\n        iVar26 = *(int *)(local_64 + 4);\n        if (local_70 <= puVar6) goto LAB_00023bdc;\n      }\n      uVar32 = puVar6[4];\n      do {\n        if ((undefined4 *****)uVar32 != local_9c) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }\n        iVar26 = puVar6[1];\n        if (iVar26 == 0) {\n          local_b4 = (undefined4 *******)puVar6[6];\n          if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n          piVar25 = (int *)puVar6[8];\n          if (piVar25 == (int *)0x0) goto LAB_0002402d;\nLAB_00024237:\n          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n          goto LAB_00023ff8;\n        }\n        if ((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47) {\n          if ((int *)puVar6[5] == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }\n          uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n          iVar15 = FUN_0003e1d0(iVar26);\n          iVar21 = FUN_0003e1d0(uVar13);\n          if (iVar15 != iVar21) {\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }\n          lVar45 = FUN_0003fad0(iVar26);\n          lVar46 = FUN_0003fad0(uVar13);\n          *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n        }\n        else {\n          uVar44 = FUN_0003fad0(iVar26);\n          iVar21 = FUN_0003e1d0(iVar26);\n          uVar33 = (uint)uVar44 + puVar6[2];\n          uVar32 = *(uint *)(iVar21 + 0x1c);\n          iVar15 = *(int *)(iVar21 + 0x20);\n          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);\n          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);\n        }\n        bVar11 = FUN_0003dc90(iVar26);\n        *(byte *)(puVar6 + 10) = *(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04';\n        if (((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&\n           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) {\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;\n        }\n        if (((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&\n           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))) {\n          puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);\n          pbVar35 = (byte *)*puVar23;\n          if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }\n          else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }\n          iVar15 = FUN_0003ddd0(iVar26);\n          if (iVar15 == 0) {\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }\n          else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }\nLAB_00023df1:\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;\n          *(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);\n        }\n        iVar15 = FUN_0003dc20(iVar26);\n        if (((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||\n           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)) {\n          iVar15 = FUN_0003dd80(iVar26);\n          if (iVar15 != 0) goto LAB_0002410f;\n          if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }\n          else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }\nLAB_0002402d:\n          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;\n          if (uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }\n          (*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);\n          local_a0 = (undefined4 ******)((int)local_a0 + uVar36);\n          puVar6[9] = local_a8;\n          puVar7 = (uint *)puVar6[5];\n          if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {\n            puVar7[3] = (int)local_a8 - local_8c;\n          }\n          local_a8 = (undefined4 ******)((int)local_a8 + 1);\n          if ((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          FUN_0003dd80(iVar26);\nLAB_0002410f:\n          if (puVar6[6] != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (puVar6[8] != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          iVar15 = FUN_00041590(iVar26);\n          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }\n        }\n        if (local_70 <= puVar6 + 0x10) goto LAB_00024380;\n        uVar32 = puVar6[0x14];\n        puVar6 = puVar6 + 0x10;\n      } while( true );\n    }\n    goto LAB_000243a4;\n  }\n  *(undefined4 *)(param_1 + 0x30) = 0;\nLAB_0002554e:\n  *(undefined4 *)(param_1 + 0x3c) = 0;\n  *(undefined4 *)(param_1 + 0x40) = 0;\n  *(undefined4 *)(param_1 + 0x44) = 0;\n  *(undefined4 *)(param_1 + 0x50) = 0;\n  *(uint *)(param_1 + 0x4c) = local_68;\nLAB_00024eaa:\n  uVar16 = FUN_0001ff70(local_68,0);\n  *(uint *)(param_1 + 0x48) =\n       uVar16 - *(uint *)(param_1 + 0x4c) >> 2 |\n       (-(uint)(uVar16 < *(uint *)(param_1 + 0x4c)) - *(int *)(param_1 + 0x50)) * 0x40000000;\n  *(uint *)(param_1 + 0x58) = uVar16;\n  iVar26 = DAT_00078240;\n  local_9c = (undefined4 *****)DAT_00078240;\n  *(undefined4 *)(param_1 + 0x5c) = 0;\n  uVar36 = uVar16;\n  if (iVar26 != 0) {\n    local_a8 = (undefined4 ******)0x0;\n    do {\n      uVar2 = DAT_00078250;\n      if (*(int *)((int)local_9c + 4) != 0) {\n        uVar2 = DAT_0007824e;\n      }\n      local_b4 = *(undefined4 ********)((int)local_9c + 8);\n      uVar32 = (uint)uVar2 * 0x294 + (int)local_b4;\n      pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      if (local_b4 < uVar32) {\n        do {\n          *(undefined4 *******)((int)local_b4 + 0xc) = local_a8;\n          iVar26 = *(int *)((int)local_b4 + 0x78);\n          pcVar24 = pcVar14 + uVar36;\n          if (iVar26 == 0) {\n            iVar15 = 0;\n            iVar26 = 0;\n          }\n          else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }\n          *(int *)((int)local_b4 + 0x10) = iVar15;\n          uVar33 = (int)local_b4 + 0x294;\n          *(int *)((int)local_b4 + 0x14) = iVar26;\n          local_b4 = (undefined4 *******)uVar33;\n        } while (uVar33 < uVar32);\n        pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      }\n      local_9c = pppppuVar17;\n    } while (local_9c != (undefined4 *****)0x0);\n  }\n  local_9c = (undefined4 *****)FUN_0001ff70(uVar36,0);\n  uVar36 = *(uint *)(param_3 + 0x38);\n  *(undefined4 *)(param_1 + 0x78) = 0;\n  *(int *)(param_1 + 0x54) = (int)local_9c - *(int *)(param_1 + 0x58);\n  *(undefined4 *)(param_1 + 0x7c) = 0;\n  *(undefined4 *)(param_1 + 0x80) = 0;\n  *(undefined4 ******)(param_1 + 0x70) = local_9c;\n  pcVar24 = pcVar14 + (int)local_9c;\n  *(undefined4 *)(param_1 + 0x74) = 0;\n  pcVar5 = *(code **)(param_3 + 0x88);\n  uVar16 = *(uint *)(param_3 + 0x34);\n  if (DAT_00078240 == 0) {\n    uVar13 = 0;\n  }\n  else {\n    local_ac = (undefined4 *****)0x0;\n    ppppppuVar27 = (undefined4 ******)DAT_00078240;\nLAB_000251e2:\n    do {\n      local_98 = ppppppuVar27;\n      uVar32 = *(uint *)((int)local_98 + 8);\n      pcVar19 = pcVar24;\n      if (*(int *)((int)local_98 + 4) == 0) {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);\n        if (local_b4 <= uVar32) {\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);\n        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n        if (local_b4 <= uVar32) goto LAB_000251e2;\n      }\n      do {\n        uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;\n        if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           ) {\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }\n        pcVar24 = pcVar19 + uVar16;\n        uVar33 = uVar32 + 0x294;\n        (*pcVar5)(DAT_00081544,uVar32,pcVar19);\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        pcVar19 = pcVar24;\n        uVar32 = uVar33;\n      } while (uVar33 < local_b4);\n      ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n    } while (*(int *)((int)local_98 + 4) != 0);\n    local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n    uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                          -(uint)(local_9c < *(uint *)(param_1 + 0x70)) - *(int *)(param_1 + 0x74),\n                          *(undefined4 *)(param_3 + 0x34),*(undefined4 *)(param_3 + 0x38));\n  }\nLAB_000252e8:\n  *(undefined4 *)(param_1 + 0x6c) = uVar13;\n  *(undefined4 *)(param_1 + 0x60) = 0;\n  iVar26 = DAT_000816a4;\n  *(undefined4 *)(param_1 + 100) = 0;\n  *(undefined4 *)(param_1 + 0x68) = 0;\n  *(undefined4 *)(param_1 + 0x84) = 0;\n  *(undefined4 *)(param_1 + 0x88) = 0;\n  *(undefined4 *)(param_1 + 0x8c) = 0;\n  for (; iVar26 != 0; iVar26 = FUN_00040c00(iVar26)) {\n    iVar15 = FUN_00041590(iVar26);\n    if (*(int *)(iVar15 + 0x10) != 0) {\n      iVar15 = FUN_0003dc20(iVar26);\n      if (((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n         (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) {\n        iVar15 = FUN_00041590(iVar26);\n        iVar15 = *(int *)(iVar15 + 0x10);\n        *(undefined4 *)(iVar15 + 0x34) = 0;\n        *(undefined4 *)(iVar15 + 0x38) = 0;\n        *(uint *)(iVar15 + 0x3c) = *(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000;\n      }\n      iVar15 = FUN_00041590(iVar26);\n      FUN_0004ed20(iVar26,*(int *)(iVar15 + 0x10) + 0x28);\n    }\n  }\n  if ((*(int *)(param_3 + 4) - 1U & (uint)local_9c) == 0) {\n    *(undefined2 *)(param_1 + 2) = 0x30b;\n    *param_2 = pcVar14;\n    return (uint)local_9c;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00031740("../../gas/ecoff.c",0x129d,"ecoff_build_debug",local_9c);\ncode_r0x00024a60:\n  local_ac = (undefined4 *****)((int)local_ac + 3);\n  pcVar24 = local_38 + 2;\n  local_38[1] = (char)((uint)iVar15 >> 8);\n  local_38 = local_38 + 3;\n  *pcVar24 = (char)iVar15;\nLAB_000238d0:\n  if (0 < (int)pppppuVar17) {\n    uVar16 = (int)pppppuVar17 - 1;\n    local_ac = (undefined4 *****)((int)local_ac + 1);\n    pppppuVar17 = (undefined4 *****)((uVar16 >> 4) + (int)local_ac);\n    if (pcVar1 <= local_38) goto LAB_00023925;\n    while (pcVar24 = local_38 + 1, pcVar19 = local_38, local_38 = pcVar24, 0xf < uVar16) {\n      while( true ) {\n        uVar16 = uVar16 - 0x10;\n        *pcVar19 = '\x0f';\n        if (pppppuVar17 == local_ac) goto LAB_00023953;\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        if (local_38 < pcVar1) break;\nLAB_00023925:\n        pcVar19 = (char *)FUN_0001ff00(1);\n        local_38 = pcVar19 + 1;\n        if (uVar16 < 0x10) goto LAB_00023944;\n      }\n    }\nLAB_00023944:\n    *pcVar19 = (char)uVar16;\n  }\nLAB_00023953:\n  pppppppuVar30 = (undefined4 *******)*local_b4;\n  if (pppppppuVar30 == (undefined4 *******)0x0) goto LAB_00023a10;\n  local_9c = local_a4;\n  local_94 = local_b4;\n  local_98 = local_a8;\nLAB_000237a0:\n  pppppppuVar29 = (undefined4 *******)*pppppppuVar30;\n  local_b4 = pppppppuVar30;\n  goto LAB_000237a6;\nLAB_00023a10:\n  if (local_a8 != (undefined4 ******)0x0) {\n    local_a8[0xd] = local_b4[5];\n  }\n  if (local_a0 != (undefined4 ******)0x0) {\n    local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n    local_a0[0x15] = (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n    local_a0[9] = local_a4;\n  }\n  goto LAB_00023a3f;\nLAB_00024380:\n  iVar26 = *(int *)(local_64 + 4);\n  if (*(int *)(local_64 + 4) == 0) goto code_r0x00024393;\n  goto LAB_00023bdc;\ncode_r0x00024393:\n  iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n  local_8c = (int)local_a8;\nLAB_000243a4:\n  *(int *)((int)local_9c + 0x1c) = iVar26;\n  local_9c = (undefined4 *****)((int)local_9c + 0x294);\n  if (local_54 <= local_9c) goto code_r0x000243bf;\n  goto LAB_00023bb7;\ncode_r0x000243bf:\n  iVar26 = *(int *)(local_5c + 4);\n  if (*(int *)(local_5c + 4) == 0) goto code_r0x000243ce;\n  goto LAB_00023b80;\ncode_r0x000243ce:\n  local_68 = local_68 + local_8c * uVar36;\n  uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                        -(uint)(local_68 < *(uint *)(param_1 + 0x34)) - *(int *)(param_1 + 0x38),\n                        *(undefined4 *)(param_3 + 0x24),*(undefined4 *)(param_3 + 0x28));\nLAB_0002441d:\n  puVar20 = (undefined4 *)DAT_00078240;\n  *(undefined4 *)(param_1 + 0x30) = uVar13;\n  pcVar24 = pcVar14 + *(int *)(param_1 + 0x28);\n  uVar36 = *(uint *)(param_3 + 0x1c);\n  uVar16 = *(uint *)(param_3 + 0x20);\n  pcVar5 = *(code **)(param_3 + 0x7c);\n  if (puVar20 != (undefined4 *)0x0) {\n    sVar9 = 0;\nLAB_00024474:\n    do {\n      local_70 = puVar20;\n      local_a4 = *(undefined4 ******)((int)local_70 + 8);\n      if (*(int *)((int)local_70 + 4) == 0) {\n        local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5);\n        if (local_7c <= local_a4) break;\n      }\n      else {\n        local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);\n        puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }\n      do {\n        bVar41 = true;\n        *(short *)(local_a4 + 0xc) = sVar9;\n        uVar32 = (uint)local_a4[0x28];\n        if (uVar32 != 0) {\nLAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);\n          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);\n        }\n        *(short *)((int)local_a4 + 0x32) = (short)uVar32;\n        local_a4 = local_a4 + 0xa5;\n      } while (local_a4 < local_7c);\n      puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n    } while (*(int *)((int)local_70 + 4) != 0);\n    pppppppuVar29 = (undefined4 *******)DAT_00078240;\n    *(undefined4 *)(param_1 + 0x3c) = 0;\n    *(undefined4 *)(param_1 + 0x40) = 0;\n    *(undefined4 *)(param_1 + 0x44) = 0;\n    *(undefined4 *)(param_1 + 0x50) = 0;\n    *(uint *)(param_1 + 0x4c) = local_68;\n    iVar26 = *(int *)(*(int *)(DAT_00081544 + 4) + 8);\n    bVar41 = iVar26 == 0;\n    pcVar24 = pcVar14 + local_68;\n    if (pppppppuVar29 != (undefined4 *******)0x0) {\n      iVar15 = 0;\nLAB_00024d54:\n      do {\n        local_94 = pppppppuVar29;\n        local_a0 = *(undefined4 *******)((int)local_94 + 8);\n        if (*(int *)((int)local_94 + 4) == 0) {\n          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          *(int *)((int)local_a0 + 0x34) = iVar15;\n          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;\n          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);\n          if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }\n          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;\n          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);\n        } while (local_a0 < local_9c);\n        pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n      } while (*(int *)((int)local_94 + 4) != 0);\n      local_68 = local_68 + iVar15 * 4;\n    }\n    goto LAB_00024eaa;\n  }\n  goto LAB_0002554e;\n}\n\n" comment comment (function_definition "uint FUN_00023460(int param_1,undefined4 *param_2,int param_3)\n\n{\n  char *pcVar1;\n  ushort uVar2;\n  int *piVar3;\n  undefined4 *****pppppuVar4;\n  code *pcVar5;\n  undefined4 *puVar6;\n  uint *puVar7;\n  undefined1 uVar8;\n  short sVar9;\n  ulonglong uVar10;\n  byte bVar11;\n  int iVar12;\n  undefined4 uVar13;\n  char *pcVar14;\n  int iVar15;\n  uint uVar16;\n  undefined4 *****pppppuVar17;\n  undefined4 *****pppppuVar18;\n  char *pcVar19;\n  undefined4 *puVar20;\n  int iVar21;\n  undefined4 uVar22;\n  undefined4 *puVar23;\n  char *pcVar24;\n  int *piVar25;\n  int iVar26;\n  undefined4 ******ppppppuVar27;\n  char cVar28;\n  undefined4 *******pppppppuVar29;\n  undefined4 *******pppppppuVar30;\n  byte bVar31;\n  uint uVar32;\n  uint uVar33;\n  byte *pbVar34;\n  byte *pbVar35;\n  uint uVar36;\n  char cVar37;\n  uint uVar38;\n  byte *pbVar39;\n  bool bVar40;\n  bool bVar41;\n  bool bVar42;\n  byte bVar43;\n  undefined8 uVar44;\n  longlong lVar45;\n  longlong lVar46;\n  undefined4 *******local_b4;\n  undefined4 *****local_ac;\n  undefined4 ******local_a8;\n  undefined4 *****local_a4;\n  undefined4 ******local_a0;\n  undefined4 *****local_9c;\n  undefined4 ******local_98;\n  undefined4 *******local_94;\n  int local_8c;\n  uint local_88;\n  uint *local_7c;\n  undefined4 *local_70;\n  uint local_68;\n  int local_64;\n  int local_5c;\n  uint local_54;\n  char *local_38;\n  undefined4 *******local_34;\n  undefined4 ******local_30;\n  undefined4 ******local_2c;\n  undefined4 *local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar43 = 0;\n  uStack_14 = 0x23469;\n  uVar36 = *(uint *)(param_3 + 0x1c);\n  iVar26 = *(int *)(param_3 + 0x20);\n  if (DAT_00080ca0 == 0) {\n    FUN_00020ec0();\n  }\n  piVar25 = *(int **)(DAT_000809e4 + 8);\n  uVar13 = DAT_000809ec;\n  while (DAT_000809ec = uVar13, piVar25 != (int *)0x0) {\n    iVar15 = piVar25[1];\n    if (piVar25[4] != 0) {\n      FUN_00020e40();\n      iVar15 = piVar25[1];\n    }\n    piVar3 = (int *)piVar25[3];\n    DAT_00080aa0 = DAT_00080aa0 + 1;\n    *(int *)(iVar15 + 0x14) = piVar25[2];\n    *piVar25 = DAT_00080a94;\n    DAT_00080a94 = (int)piVar25;\n    piVar25 = piVar3;\n    uVar13 = DAT_000809ec;\n  }\n  DAT_00080ad8 = DAT_00080ad8 + 1;\n  iVar15 = DAT_000809e4;\n  *(int *)(DAT_000809e4 + 4) = DAT_00080acc;\n  DAT_00080acc = iVar15;\n  iVar21 = DAT_000809f0;\n  DAT_000809ec = 0;\n  for (iVar15 = DAT_000816a4; iVar15 != 0; iVar15 = FUN_00040c00(iVar15)) {\n    iVar12 = FUN_00041590(iVar15);\n    if (((*(int *)(iVar12 + 0x10) == 0) &&\n        (iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0)) &&\n       (iVar12 = FUN_000414f0(iVar15), (*(byte *)(iVar12 + 0x11) & 1) == 0)) {\n      iVar12 = FUN_00041590(iVar15);\n      DAT_000809f0 = *(int *)(iVar12 + 0xc);\n      uVar22 = FUN_0003fad0(iVar15);\n      FUN_00020930(iVar15,0,0,uVar22,0xfffff);\n    }\n  }\n  uVar8 = false;\n  DAT_000809ec = uVar13;\n  DAT_000809f0 = iVar21;\n  iVar15 = DAT_00080ca0;\njoined_r0x000235e4:\n  if (iVar15 != 0) {\n    piVar25 = *(int **)(iVar15 + 0x6c);\n    iVar21 = iVar15;\n    DAT_000809f0 = iVar15;\n    while (piVar25 != (int *)0x0) {\n      while( true ) {\n        piVar25 = (int *)*piVar25;\n        if (piVar25 == (int *)0x0) {\n          FUN_00020930(0,0,0,0,0);\n          iVar15 = *(int *)(iVar15 + 200);\n          goto joined_r0x000235e4;\n        }\n        *(int **)(iVar21 + 0x6c) = piVar25;\n        if (((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)) break;\n        uVar8 = true;\n        uVar13 = dcgettext(0,"missing .end or .bend at end of file",5);\n        FUN_00031540(uVar13);\n        piVar25 = *(int **)(DAT_000809f0 + 0x6c);\n        iVar21 = DAT_000809f0;\n        if (piVar25 == (int *)0x0) goto LAB_00023650;\n      }\n    }\nLAB_00023650:\n    iVar15 = *(int *)(iVar15 + 200);\n    goto joined_r0x000235e4;\n  }\n  pcVar14 = (char *)xmalloc(0x2000);\n  pppppppuVar29 = DAT_00080c9c;\n  pcVar1 = pcVar14 + 0x2000;\n  bVar41 = DAT_00080758 == 3;\n  *(undefined4 *)(param_1 + 0x10) = 0;\n  *(undefined4 *)(param_1 + 0x14) = 0;\n  *(undefined4 *)(param_1 + 4) = 0;\n  local_38 = pcVar14;\n  local_b4 = pppppppuVar29;\n  if ((bVar41) || (DAT_000809e8 == (int *)0x0)) {\n    if (pppppppuVar29 != (undefined4 *******)0x0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n      goto LAB_00023764;\n    }\n  }\n  else if (pppppppuVar29 != (undefined4 *******)0x0) {\n    uVar44 = FUN_0003fad0(*(undefined4 *)(*DAT_000809e8 + 4));\n    iVar15 = FUN_0003e1d0(*(undefined4 *)(*DAT_000809e8 + 4));\n    if ((int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +\n        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c)) == 0 &&\n        (uint)uVar44 + *(uint *)(iVar15 + 0x1c) == 0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n    }\n    else {\n      local_30 = pppppppuVar29[1];\n      local_24 = 0;\n      local_2c = pppppppuVar29[2];\n      local_20 = 0;\n      local_28 = &DAT_000813a0;\n      local_b4 = &local_34;\n      local_34 = pppppppuVar29;\n    }\nLAB_00023764:\n    local_9c = (undefined4 *****)0x0;\n    local_ac = (undefined4 *****)0x0;\n    local_94 = (undefined4 *******)0x0;\n    local_a0 = (undefined4 ******)0x0;\n    local_98 = (undefined4 ******)0x0;\nLAB_000237a6:\n    pppppppuVar30 = pppppppuVar29;\n    if (pppppppuVar30 == (undefined4 *******)0x0) {\n      pppppuVar17 = (undefined4 *****)0x1;\nLAB_000237e1:\n      ppppppuVar27 = local_b4[1];\n      local_a8 = local_b4[2];\n      local_a4 = (undefined4 *****)((int)local_9c + (int)pppppuVar17);\n      if (ppppppuVar27 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }\n      }\n      else {\n        bVar41 = local_98 != local_a8;\n        if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }\n        pppppuVar18 = (undefined4 *****)0x0;\n        if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }\n        ppppppuVar27[8] = pppppuVar18;\n        ppppppuVar27[0x12] = local_ac;\n        ppppppuVar27[0x13] = (undefined4 *****)0x0;\n        local_a0 = ppppppuVar27;\n        if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }\n      goto LAB_000238d0;\n    }\n    ppppppuVar27 = pppppppuVar30[3];\n    uVar33 = (int)pppppppuVar30[4] + (int)*ppppppuVar27;\n    uVar38 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27);\n    ppppppuVar27 = local_b4[3];\n    uVar16 = (int)local_b4[4] + (int)*ppppppuVar27;\n    uVar32 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)local_b4[4],(uint)*ppppppuVar27);\n    if (uVar32 < uVar38 || uVar32 - uVar38 < (uint)(uVar16 < uVar33)) {\n      pppppuVar17 = (undefined4 *****)\n                    (uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000);\n      goto LAB_000237e1;\n    }\n    goto LAB_000237a0;\n  }\n  local_a4 = (undefined4 *****)0x0;\n  local_ac = (undefined4 *****)0x0;\nLAB_00023a3f:\n  *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n  local_68 = FUN_0001ff70(local_ac,&local_38);\n  *(uint *)(param_1 + 0x28) = local_68;\n  *(uint *)(param_1 + 8) = local_68 - *(uint *)(param_1 + 0x10);\n  uVar16 = DAT_00080ca4;\n  *(uint *)(param_1 + 0xc) =\n       -(uint)(local_68 < *(uint *)(param_1 + 0x10)) - *(int *)(param_1 + 0x14);\n  *(undefined4 *)(param_1 + 0x2c) = 0;\n  *(undefined4 *)(param_1 + 0x18) = 0;\n  *(undefined4 *)(param_1 + 0x1c) = 0;\n  *(undefined4 *)(param_1 + 0x20) = 0;\n  *(uint *)(param_1 + 0x24) = uVar16;\n  uVar32 = (int)pcVar1 - (int)(pcVar14 + local_68) >> 0x1f;\n  uVar33 = (int)((ulonglong)uVar36 * (ulonglong)uVar16 >> 0x20) + iVar26 * uVar16;\n  if (uVar32 < uVar33 ||\n      uVar32 - uVar33 <\n      (uint)((uint)((int)pcVar1 - (int)(pcVar14 + local_68)) <\n            (uint)((ulonglong)uVar36 * (ulonglong)uVar16))) {\n    FUN_0001ff00(uVar16 * uVar36);\n    uVar16 = DAT_00080ca4;\n  }\n  local_68 = uVar16 * uVar36 + local_68;\n  uVar36 = *(uint *)(param_3 + 0x24);\n  local_a0 = (undefined4 ******)(pcVar14 + local_68);\n  *(uint *)(param_1 + 0x34) = local_68;\n  uVar16 = *(uint *)(param_3 + 0x28);\n  *(undefined4 *)(param_1 + 0x38) = 0;\n  pcVar5 = *(code **)(param_3 + 0x80);\n  if (DAT_00078240 != 0) {\n    local_8c = 0;\n    puVar20 = (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0x180);\n    iVar26 = DAT_00078240;\nLAB_00023b80:\n    local_5c = iVar26;\n    local_9c = *(undefined4 ******)(local_5c + 8);\n    if (*(int *)(local_5c + 4) == 0) {\n      local_54 = (uint)DAT_00078250 * 0x294 + (int)local_9c;\n      if (local_54 <= local_9c) {\n        local_68 = local_68 + local_8c * uVar36;\n        uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28));\n        goto LAB_0002441d;\n      }\n    }\n    else {\n      local_54 = (uint)DAT_0007824e * 0x294 + (int)local_9c;\n      iVar26 = *(int *)(local_5c + 4);\n      if (local_54 <= local_9c) goto LAB_00023b80;\n    }\nLAB_00023bb7:\n    *(int *)((int)local_9c + 0x18) = local_8c;\n    iVar26 = *(int *)((int)local_9c + 0x8c);\n    if (iVar26 != 0) {\n      local_a8 = (undefined4 ******)local_8c;\nLAB_00023bdc:\n      local_64 = iVar26;\n      puVar6 = *(undefined4 **)(local_64 + 8);\n      if (*(int *)(local_64 + 4) == 0) {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10;\n        if (local_70 <= puVar6) {\n          local_8c = (int)local_a8;\n          iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n          goto LAB_000243a4;\n        }\n      }\n      else {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10;\n        iVar26 = *(int *)(local_64 + 4);\n        if (local_70 <= puVar6) goto LAB_00023bdc;\n      }\n      uVar32 = puVar6[4];\n      do {\n        if ((undefined4 *****)uVar32 != local_9c) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }\n        iVar26 = puVar6[1];\n        if (iVar26 == 0) {\n          local_b4 = (undefined4 *******)puVar6[6];\n          if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n          piVar25 = (int *)puVar6[8];\n          if (piVar25 == (int *)0x0) goto LAB_0002402d;\nLAB_00024237:\n          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n          goto LAB_00023ff8;\n        }\n        if ((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47) {\n          if ((int *)puVar6[5] == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }\n          uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n          iVar15 = FUN_0003e1d0(iVar26);\n          iVar21 = FUN_0003e1d0(uVar13);\n          if (iVar15 != iVar21) {\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }\n          lVar45 = FUN_0003fad0(iVar26);\n          lVar46 = FUN_0003fad0(uVar13);\n          *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n        }\n        else {\n          uVar44 = FUN_0003fad0(iVar26);\n          iVar21 = FUN_0003e1d0(iVar26);\n          uVar33 = (uint)uVar44 + puVar6[2];\n          uVar32 = *(uint *)(iVar21 + 0x1c);\n          iVar15 = *(int *)(iVar21 + 0x20);\n          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);\n          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);\n        }\n        bVar11 = FUN_0003dc90(iVar26);\n        *(byte *)(puVar6 + 10) = *(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04';\n        if (((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&\n           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) {\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;\n        }\n        if (((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&\n           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))) {\n          puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);\n          pbVar35 = (byte *)*puVar23;\n          if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }\n          else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }\n          iVar15 = FUN_0003ddd0(iVar26);\n          if (iVar15 == 0) {\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }\n          else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }\nLAB_00023df1:\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;\n          *(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);\n        }\n        iVar15 = FUN_0003dc20(iVar26);\n        if (((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||\n           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)) {\n          iVar15 = FUN_0003dd80(iVar26);\n          if (iVar15 != 0) goto LAB_0002410f;\n          if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }\n          else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }\nLAB_0002402d:\n          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;\n          if (uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }\n          (*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);\n          local_a0 = (undefined4 ******)((int)local_a0 + uVar36);\n          puVar6[9] = local_a8;\n          puVar7 = (uint *)puVar6[5];\n          if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {\n            puVar7[3] = (int)local_a8 - local_8c;\n          }\n          local_a8 = (undefined4 ******)((int)local_a8 + 1);\n          if ((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          FUN_0003dd80(iVar26);\nLAB_0002410f:\n          if (puVar6[6] != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (puVar6[8] != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          iVar15 = FUN_00041590(iVar26);\n          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }\n        }\n        if (local_70 <= puVar6 + 0x10) goto LAB_00024380;\n        uVar32 = puVar6[0x14];\n        puVar6 = puVar6 + 0x10;\n      } while( true );\n    }\n    goto LAB_000243a4;\n  }\n  *(undefined4 *)(param_1 + 0x30) = 0;\nLAB_0002554e:\n  *(undefined4 *)(param_1 + 0x3c) = 0;\n  *(undefined4 *)(param_1 + 0x40) = 0;\n  *(undefined4 *)(param_1 + 0x44) = 0;\n  *(undefined4 *)(param_1 + 0x50) = 0;\n  *(uint *)(param_1 + 0x4c) = local_68;\nLAB_00024eaa:\n  uVar16 = FUN_0001ff70(local_68,0);\n  *(uint *)(param_1 + 0x48) =\n       uVar16 - *(uint *)(param_1 + 0x4c) >> 2 |\n       (-(uint)(uVar16 < *(uint *)(param_1 + 0x4c)) - *(int *)(param_1 + 0x50)) * 0x40000000;\n  *(uint *)(param_1 + 0x58) = uVar16;\n  iVar26 = DAT_00078240;\n  local_9c = (undefined4 *****)DAT_00078240;\n  *(undefined4 *)(param_1 + 0x5c) = 0;\n  uVar36 = uVar16;\n  if (iVar26 != 0) {\n    local_a8 = (undefined4 ******)0x0;\n    do {\n      uVar2 = DAT_00078250;\n      if (*(int *)((int)local_9c + 4) != 0) {\n        uVar2 = DAT_0007824e;\n      }\n      local_b4 = *(undefined4 ********)((int)local_9c + 8);\n      uVar32 = (uint)uVar2 * 0x294 + (int)local_b4;\n      pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      if (local_b4 < uVar32) {\n        do {\n          *(undefined4 *******)((int)local_b4 + 0xc) = local_a8;\n          iVar26 = *(int *)((int)local_b4 + 0x78);\n          pcVar24 = pcVar14 + uVar36;\n          if (iVar26 == 0) {\n            iVar15 = 0;\n            iVar26 = 0;\n          }\n          else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }\n          *(int *)((int)local_b4 + 0x10) = iVar15;\n          uVar33 = (int)local_b4 + 0x294;\n          *(int *)((int)local_b4 + 0x14) = iVar26;\n          local_b4 = (undefined4 *******)uVar33;\n        } while (uVar33 < uVar32);\n        pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      }\n      local_9c = pppppuVar17;\n    } while (local_9c != (undefined4 *****)0x0);\n  }\n  local_9c = (undefined4 *****)FUN_0001ff70(uVar36,0);\n  uVar36 = *(uint *)(param_3 + 0x38);\n  *(undefined4 *)(param_1 + 0x78) = 0;\n  *(int *)(param_1 + 0x54) = (int)local_9c - *(int *)(param_1 + 0x58);\n  *(undefined4 *)(param_1 + 0x7c) = 0;\n  *(undefined4 *)(param_1 + 0x80) = 0;\n  *(undefined4 ******)(param_1 + 0x70) = local_9c;\n  pcVar24 = pcVar14 + (int)local_9c;\n  *(undefined4 *)(param_1 + 0x74) = 0;\n  pcVar5 = *(code **)(param_3 + 0x88);\n  uVar16 = *(uint *)(param_3 + 0x34);\n  if (DAT_00078240 == 0) {\n    uVar13 = 0;\n  }\n  else {\n    local_ac = (undefined4 *****)0x0;\n    ppppppuVar27 = (undefined4 ******)DAT_00078240;\nLAB_000251e2:\n    do {\n      local_98 = ppppppuVar27;\n      uVar32 = *(uint *)((int)local_98 + 8);\n      pcVar19 = pcVar24;\n      if (*(int *)((int)local_98 + 4) == 0) {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);\n        if (local_b4 <= uVar32) {\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);\n        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n        if (local_b4 <= uVar32) goto LAB_000251e2;\n      }\n      do {\n        uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;\n        if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           ) {\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }\n        pcVar24 = pcVar19 + uVar16;\n        uVar33 = uVar32 + 0x294;\n        (*pcVar5)(DAT_00081544,uVar32,pcVar19);\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        pcVar19 = pcVar24;\n        uVar32 = uVar33;\n      } while (uVar33 < local_b4);\n      ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n    } while (*(int *)((int)local_98 + 4) != 0);\n    local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n    uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                          -(uint)(local_9c < *(uint *)(param_1 + 0x70)) - *(int *)(param_1 + 0x74),\n                          *(undefined4 *)(param_3 + 0x34),*(undefined4 *)(param_3 + 0x38));\n  }\nLAB_000252e8:\n  *(undefined4 *)(param_1 + 0x6c) = uVar13;\n  *(undefined4 *)(param_1 + 0x60) = 0;\n  iVar26 = DAT_000816a4;\n  *(undefined4 *)(param_1 + 100) = 0;\n  *(undefined4 *)(param_1 + 0x68) = 0;\n  *(undefined4 *)(param_1 + 0x84) = 0;\n  *(undefined4 *)(param_1 + 0x88) = 0;\n  *(undefined4 *)(param_1 + 0x8c) = 0;\n  for (; iVar26 != 0; iVar26 = FUN_00040c00(iVar26)) {\n    iVar15 = FUN_00041590(iVar26);\n    if (*(int *)(iVar15 + 0x10) != 0) {\n      iVar15 = FUN_0003dc20(iVar26);\n      if (((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n         (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) {\n        iVar15 = FUN_00041590(iVar26);\n        iVar15 = *(int *)(iVar15 + 0x10);\n        *(undefined4 *)(iVar15 + 0x34) = 0;\n        *(undefined4 *)(iVar15 + 0x38) = 0;\n        *(uint *)(iVar15 + 0x3c) = *(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000;\n      }\n      iVar15 = FUN_00041590(iVar26);\n      FUN_0004ed20(iVar26,*(int *)(iVar15 + 0x10) + 0x28);\n    }\n  }\n  if ((*(int *)(param_3 + 4) - 1U & (uint)local_9c) == 0) {\n    *(undefined2 *)(param_1 + 2) = 0x30b;\n    *param_2 = pcVar14;\n    return (uint)local_9c;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00031740("../../gas/ecoff.c",0x129d,"ecoff_build_debug",local_9c);\ncode_r0x00024a60:\n  local_ac = (undefined4 *****)((int)local_ac + 3);\n  pcVar24 = local_38 + 2;\n  local_38[1] = (char)((uint)iVar15 >> 8);\n  local_38 = local_38 + 3;\n  *pcVar24 = (char)iVar15;\nLAB_000238d0:\n  if (0 < (int)pppppuVar17) {\n    uVar16 = (int)pppppuVar17 - 1;\n    local_ac = (undefined4 *****)((int)local_ac + 1);\n    pppppuVar17 = (undefined4 *****)((uVar16 >> 4) + (int)local_ac);\n    if (pcVar1 <= local_38) goto LAB_00023925;\n    while (pcVar24 = local_38 + 1, pcVar19 = local_38, local_38 = pcVar24, 0xf < uVar16) {\n      while( true ) {\n        uVar16 = uVar16 - 0x10;\n        *pcVar19 = '\x0f';\n        if (pppppuVar17 == local_ac) goto LAB_00023953;\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        if (local_38 < pcVar1) break;\nLAB_00023925:\n        pcVar19 = (char *)FUN_0001ff00(1);\n        local_38 = pcVar19 + 1;\n        if (uVar16 < 0x10) goto LAB_00023944;\n      }\n    }\nLAB_00023944:\n    *pcVar19 = (char)uVar16;\n  }\nLAB_00023953:\n  pppppppuVar30 = (undefined4 *******)*local_b4;\n  if (pppppppuVar30 == (undefined4 *******)0x0) goto LAB_00023a10;\n  local_9c = local_a4;\n  local_94 = local_b4;\n  local_98 = local_a8;\nLAB_000237a0:\n  pppppppuVar29 = (undefined4 *******)*pppppppuVar30;\n  local_b4 = pppppppuVar30;\n  goto LAB_000237a6;\nLAB_00023a10:\n  if (local_a8 != (undefined4 ******)0x0) {\n    local_a8[0xd] = local_b4[5];\n  }\n  if (local_a0 != (undefined4 ******)0x0) {\n    local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n    local_a0[0x15] = (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n    local_a0[9] = local_a4;\n  }\n  goto LAB_00023a3f;\nLAB_00024380:\n  iVar26 = *(int *)(local_64 + 4);\n  if (*(int *)(local_64 + 4) == 0) goto code_r0x00024393;\n  goto LAB_00023bdc;\ncode_r0x00024393:\n  iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n  local_8c = (int)local_a8;\nLAB_000243a4:\n  *(int *)((int)local_9c + 0x1c) = iVar26;\n  local_9c = (undefined4 *****)((int)local_9c + 0x294);\n  if (local_54 <= local_9c) goto code_r0x000243bf;\n  goto LAB_00023bb7;\ncode_r0x000243bf:\n  iVar26 = *(int *)(local_5c + 4);\n  if (*(int *)(local_5c + 4) == 0) goto code_r0x000243ce;\n  goto LAB_00023b80;\ncode_r0x000243ce:\n  local_68 = local_68 + local_8c * uVar36;\n  uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                        -(uint)(local_68 < *(uint *)(param_1 + 0x34)) - *(int *)(param_1 + 0x38),\n                        *(undefined4 *)(param_3 + 0x24),*(undefined4 *)(param_3 + 0x28));\nLAB_0002441d:\n  puVar20 = (undefined4 *)DAT_00078240;\n  *(undefined4 *)(param_1 + 0x30) = uVar13;\n  pcVar24 = pcVar14 + *(int *)(param_1 + 0x28);\n  uVar36 = *(uint *)(param_3 + 0x1c);\n  uVar16 = *(uint *)(param_3 + 0x20);\n  pcVar5 = *(code **)(param_3 + 0x7c);\n  if (puVar20 != (undefined4 *)0x0) {\n    sVar9 = 0;\nLAB_00024474:\n    do {\n      local_70 = puVar20;\n      local_a4 = *(undefined4 ******)((int)local_70 + 8);\n      if (*(int *)((int)local_70 + 4) == 0) {\n        local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5);\n        if (local_7c <= local_a4) break;\n      }\n      else {\n        local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);\n        puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }\n      do {\n        bVar41 = true;\n        *(short *)(local_a4 + 0xc) = sVar9;\n        uVar32 = (uint)local_a4[0x28];\n        if (uVar32 != 0) {\nLAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);\n          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);\n        }\n        *(short *)((int)local_a4 + 0x32) = (short)uVar32;\n        local_a4 = local_a4 + 0xa5;\n      } while (local_a4 < local_7c);\n      puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n    } while (*(int *)((int)local_70 + 4) != 0);\n    pppppppuVar29 = (undefined4 *******)DAT_00078240;\n    *(undefined4 *)(param_1 + 0x3c) = 0;\n    *(undefined4 *)(param_1 + 0x40) = 0;\n    *(undefined4 *)(param_1 + 0x44) = 0;\n    *(undefined4 *)(param_1 + 0x50) = 0;\n    *(uint *)(param_1 + 0x4c) = local_68;\n    iVar26 = *(int *)(*(int *)(DAT_00081544 + 4) + 8);\n    bVar41 = iVar26 == 0;\n    pcVar24 = pcVar14 + local_68;\n    if (pppppppuVar29 != (undefined4 *******)0x0) {\n      iVar15 = 0;\nLAB_00024d54:\n      do {\n        local_94 = pppppppuVar29;\n        local_a0 = *(undefined4 *******)((int)local_94 + 8);\n        if (*(int *)((int)local_94 + 4) == 0) {\n          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          *(int *)((int)local_a0 + 0x34) = iVar15;\n          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;\n          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);\n          if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }\n          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;\n          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);\n        } while (local_a0 < local_9c);\n        pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n      } while (*(int *)((int)local_94 + 4) != 0);\n      local_68 = local_68 + iVar15 * 4;\n    }\n    goto LAB_00024eaa;\n  }\n  goto LAB_0002554e;\n}" type_identifier (function_declarator "FUN_00023460(int param_1,undefined4 *param_2,int param_3)" identifier (parameter_list "(int param_1,undefined4 *param_2,int param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  char *pcVar1;\n  ushort uVar2;\n  int *piVar3;\n  undefined4 *****pppppuVar4;\n  code *pcVar5;\n  undefined4 *puVar6;\n  uint *puVar7;\n  undefined1 uVar8;\n  short sVar9;\n  ulonglong uVar10;\n  byte bVar11;\n  int iVar12;\n  undefined4 uVar13;\n  char *pcVar14;\n  int iVar15;\n  uint uVar16;\n  undefined4 *****pppppuVar17;\n  undefined4 *****pppppuVar18;\n  char *pcVar19;\n  undefined4 *puVar20;\n  int iVar21;\n  undefined4 uVar22;\n  undefined4 *puVar23;\n  char *pcVar24;\n  int *piVar25;\n  int iVar26;\n  undefined4 ******ppppppuVar27;\n  char cVar28;\n  undefined4 *******pppppppuVar29;\n  undefined4 *******pppppppuVar30;\n  byte bVar31;\n  uint uVar32;\n  uint uVar33;\n  byte *pbVar34;\n  byte *pbVar35;\n  uint uVar36;\n  char cVar37;\n  uint uVar38;\n  byte *pbVar39;\n  bool bVar40;\n  bool bVar41;\n  bool bVar42;\n  byte bVar43;\n  undefined8 uVar44;\n  longlong lVar45;\n  longlong lVar46;\n  undefined4 *******local_b4;\n  undefined4 *****local_ac;\n  undefined4 ******local_a8;\n  undefined4 *****local_a4;\n  undefined4 ******local_a0;\n  undefined4 *****local_9c;\n  undefined4 ******local_98;\n  undefined4 *******local_94;\n  int local_8c;\n  uint local_88;\n  uint *local_7c;\n  undefined4 *local_70;\n  uint local_68;\n  int local_64;\n  int local_5c;\n  uint local_54;\n  char *local_38;\n  undefined4 *******local_34;\n  undefined4 ******local_30;\n  undefined4 ******local_2c;\n  undefined4 *local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar43 = 0;\n  uStack_14 = 0x23469;\n  uVar36 = *(uint *)(param_3 + 0x1c);\n  iVar26 = *(int *)(param_3 + 0x20);\n  if (DAT_00080ca0 == 0) {\n    FUN_00020ec0();\n  }\n  piVar25 = *(int **)(DAT_000809e4 + 8);\n  uVar13 = DAT_000809ec;\n  while (DAT_000809ec = uVar13, piVar25 != (int *)0x0) {\n    iVar15 = piVar25[1];\n    if (piVar25[4] != 0) {\n      FUN_00020e40();\n      iVar15 = piVar25[1];\n    }\n    piVar3 = (int *)piVar25[3];\n    DAT_00080aa0 = DAT_00080aa0 + 1;\n    *(int *)(iVar15 + 0x14) = piVar25[2];\n    *piVar25 = DAT_00080a94;\n    DAT_00080a94 = (int)piVar25;\n    piVar25 = piVar3;\n    uVar13 = DAT_000809ec;\n  }\n  DAT_00080ad8 = DAT_00080ad8 + 1;\n  iVar15 = DAT_000809e4;\n  *(int *)(DAT_000809e4 + 4) = DAT_00080acc;\n  DAT_00080acc = iVar15;\n  iVar21 = DAT_000809f0;\n  DAT_000809ec = 0;\n  for (iVar15 = DAT_000816a4; iVar15 != 0; iVar15 = FUN_00040c00(iVar15)) {\n    iVar12 = FUN_00041590(iVar15);\n    if (((*(int *)(iVar12 + 0x10) == 0) &&\n        (iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0)) &&\n       (iVar12 = FUN_000414f0(iVar15), (*(byte *)(iVar12 + 0x11) & 1) == 0)) {\n      iVar12 = FUN_00041590(iVar15);\n      DAT_000809f0 = *(int *)(iVar12 + 0xc);\n      uVar22 = FUN_0003fad0(iVar15);\n      FUN_00020930(iVar15,0,0,uVar22,0xfffff);\n    }\n  }\n  uVar8 = false;\n  DAT_000809ec = uVar13;\n  DAT_000809f0 = iVar21;\n  iVar15 = DAT_00080ca0;\njoined_r0x000235e4:\n  if (iVar15 != 0) {\n    piVar25 = *(int **)(iVar15 + 0x6c);\n    iVar21 = iVar15;\n    DAT_000809f0 = iVar15;\n    while (piVar25 != (int *)0x0) {\n      while( true ) {\n        piVar25 = (int *)*piVar25;\n        if (piVar25 == (int *)0x0) {\n          FUN_00020930(0,0,0,0,0);\n          iVar15 = *(int *)(iVar15 + 200);\n          goto joined_r0x000235e4;\n        }\n        *(int **)(iVar21 + 0x6c) = piVar25;\n        if (((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)) break;\n        uVar8 = true;\n        uVar13 = dcgettext(0,"missing .end or .bend at end of file",5);\n        FUN_00031540(uVar13);\n        piVar25 = *(int **)(DAT_000809f0 + 0x6c);\n        iVar21 = DAT_000809f0;\n        if (piVar25 == (int *)0x0) goto LAB_00023650;\n      }\n    }\nLAB_00023650:\n    iVar15 = *(int *)(iVar15 + 200);\n    goto joined_r0x000235e4;\n  }\n  pcVar14 = (char *)xmalloc(0x2000);\n  pppppppuVar29 = DAT_00080c9c;\n  pcVar1 = pcVar14 + 0x2000;\n  bVar41 = DAT_00080758 == 3;\n  *(undefined4 *)(param_1 + 0x10) = 0;\n  *(undefined4 *)(param_1 + 0x14) = 0;\n  *(undefined4 *)(param_1 + 4) = 0;\n  local_38 = pcVar14;\n  local_b4 = pppppppuVar29;\n  if ((bVar41) || (DAT_000809e8 == (int *)0x0)) {\n    if (pppppppuVar29 != (undefined4 *******)0x0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n      goto LAB_00023764;\n    }\n  }\n  else if (pppppppuVar29 != (undefined4 *******)0x0) {\n    uVar44 = FUN_0003fad0(*(undefined4 *)(*DAT_000809e8 + 4));\n    iVar15 = FUN_0003e1d0(*(undefined4 *)(*DAT_000809e8 + 4));\n    if ((int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +\n        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c)) == 0 &&\n        (uint)uVar44 + *(uint *)(iVar15 + 0x1c) == 0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n    }\n    else {\n      local_30 = pppppppuVar29[1];\n      local_24 = 0;\n      local_2c = pppppppuVar29[2];\n      local_20 = 0;\n      local_28 = &DAT_000813a0;\n      local_b4 = &local_34;\n      local_34 = pppppppuVar29;\n    }\nLAB_00023764:\n    local_9c = (undefined4 *****)0x0;\n    local_ac = (undefined4 *****)0x0;\n    local_94 = (undefined4 *******)0x0;\n    local_a0 = (undefined4 ******)0x0;\n    local_98 = (undefined4 ******)0x0;\nLAB_000237a6:\n    pppppppuVar30 = pppppppuVar29;\n    if (pppppppuVar30 == (undefined4 *******)0x0) {\n      pppppuVar17 = (undefined4 *****)0x1;\nLAB_000237e1:\n      ppppppuVar27 = local_b4[1];\n      local_a8 = local_b4[2];\n      local_a4 = (undefined4 *****)((int)local_9c + (int)pppppuVar17);\n      if (ppppppuVar27 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }\n      }\n      else {\n        bVar41 = local_98 != local_a8;\n        if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }\n        pppppuVar18 = (undefined4 *****)0x0;\n        if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }\n        ppppppuVar27[8] = pppppuVar18;\n        ppppppuVar27[0x12] = local_ac;\n        ppppppuVar27[0x13] = (undefined4 *****)0x0;\n        local_a0 = ppppppuVar27;\n        if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }\n      goto LAB_000238d0;\n    }\n    ppppppuVar27 = pppppppuVar30[3];\n    uVar33 = (int)pppppppuVar30[4] + (int)*ppppppuVar27;\n    uVar38 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27);\n    ppppppuVar27 = local_b4[3];\n    uVar16 = (int)local_b4[4] + (int)*ppppppuVar27;\n    uVar32 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)local_b4[4],(uint)*ppppppuVar27);\n    if (uVar32 < uVar38 || uVar32 - uVar38 < (uint)(uVar16 < uVar33)) {\n      pppppuVar17 = (undefined4 *****)\n                    (uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000);\n      goto LAB_000237e1;\n    }\n    goto LAB_000237a0;\n  }\n  local_a4 = (undefined4 *****)0x0;\n  local_ac = (undefined4 *****)0x0;\nLAB_00023a3f:\n  *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n  local_68 = FUN_0001ff70(local_ac,&local_38);\n  *(uint *)(param_1 + 0x28) = local_68;\n  *(uint *)(param_1 + 8) = local_68 - *(uint *)(param_1 + 0x10);\n  uVar16 = DAT_00080ca4;\n  *(uint *)(param_1 + 0xc) =\n       -(uint)(local_68 < *(uint *)(param_1 + 0x10)) - *(int *)(param_1 + 0x14);\n  *(undefined4 *)(param_1 + 0x2c) = 0;\n  *(undefined4 *)(param_1 + 0x18) = 0;\n  *(undefined4 *)(param_1 + 0x1c) = 0;\n  *(undefined4 *)(param_1 + 0x20) = 0;\n  *(uint *)(param_1 + 0x24) = uVar16;\n  uVar32 = (int)pcVar1 - (int)(pcVar14 + local_68) >> 0x1f;\n  uVar33 = (int)((ulonglong)uVar36 * (ulonglong)uVar16 >> 0x20) + iVar26 * uVar16;\n  if (uVar32 < uVar33 ||\n      uVar32 - uVar33 <\n      (uint)((uint)((int)pcVar1 - (int)(pcVar14 + local_68)) <\n            (uint)((ulonglong)uVar36 * (ulonglong)uVar16))) {\n    FUN_0001ff00(uVar16 * uVar36);\n    uVar16 = DAT_00080ca4;\n  }\n  local_68 = uVar16 * uVar36 + local_68;\n  uVar36 = *(uint *)(param_3 + 0x24);\n  local_a0 = (undefined4 ******)(pcVar14 + local_68);\n  *(uint *)(param_1 + 0x34) = local_68;\n  uVar16 = *(uint *)(param_3 + 0x28);\n  *(undefined4 *)(param_1 + 0x38) = 0;\n  pcVar5 = *(code **)(param_3 + 0x80);\n  if (DAT_00078240 != 0) {\n    local_8c = 0;\n    puVar20 = (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0x180);\n    iVar26 = DAT_00078240;\nLAB_00023b80:\n    local_5c = iVar26;\n    local_9c = *(undefined4 ******)(local_5c + 8);\n    if (*(int *)(local_5c + 4) == 0) {\n      local_54 = (uint)DAT_00078250 * 0x294 + (int)local_9c;\n      if (local_54 <= local_9c) {\n        local_68 = local_68 + local_8c * uVar36;\n        uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28));\n        goto LAB_0002441d;\n      }\n    }\n    else {\n      local_54 = (uint)DAT_0007824e * 0x294 + (int)local_9c;\n      iVar26 = *(int *)(local_5c + 4);\n      if (local_54 <= local_9c) goto LAB_00023b80;\n    }\nLAB_00023bb7:\n    *(int *)((int)local_9c + 0x18) = local_8c;\n    iVar26 = *(int *)((int)local_9c + 0x8c);\n    if (iVar26 != 0) {\n      local_a8 = (undefined4 ******)local_8c;\nLAB_00023bdc:\n      local_64 = iVar26;\n      puVar6 = *(undefined4 **)(local_64 + 8);\n      if (*(int *)(local_64 + 4) == 0) {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10;\n        if (local_70 <= puVar6) {\n          local_8c = (int)local_a8;\n          iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n          goto LAB_000243a4;\n        }\n      }\n      else {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10;\n        iVar26 = *(int *)(local_64 + 4);\n        if (local_70 <= puVar6) goto LAB_00023bdc;\n      }\n      uVar32 = puVar6[4];\n      do {\n        if ((undefined4 *****)uVar32 != local_9c) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }\n        iVar26 = puVar6[1];\n        if (iVar26 == 0) {\n          local_b4 = (undefined4 *******)puVar6[6];\n          if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n          piVar25 = (int *)puVar6[8];\n          if (piVar25 == (int *)0x0) goto LAB_0002402d;\nLAB_00024237:\n          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n          goto LAB_00023ff8;\n        }\n        if ((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47) {\n          if ((int *)puVar6[5] == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }\n          uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n          iVar15 = FUN_0003e1d0(iVar26);\n          iVar21 = FUN_0003e1d0(uVar13);\n          if (iVar15 != iVar21) {\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }\n          lVar45 = FUN_0003fad0(iVar26);\n          lVar46 = FUN_0003fad0(uVar13);\n          *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n        }\n        else {\n          uVar44 = FUN_0003fad0(iVar26);\n          iVar21 = FUN_0003e1d0(iVar26);\n          uVar33 = (uint)uVar44 + puVar6[2];\n          uVar32 = *(uint *)(iVar21 + 0x1c);\n          iVar15 = *(int *)(iVar21 + 0x20);\n          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);\n          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);\n        }\n        bVar11 = FUN_0003dc90(iVar26);\n        *(byte *)(puVar6 + 10) = *(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04';\n        if (((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&\n           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) {\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;\n        }\n        if (((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&\n           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))) {\n          puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);\n          pbVar35 = (byte *)*puVar23;\n          if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }\n          else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }\n          iVar15 = FUN_0003ddd0(iVar26);\n          if (iVar15 == 0) {\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }\n          else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }\nLAB_00023df1:\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;\n          *(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);\n        }\n        iVar15 = FUN_0003dc20(iVar26);\n        if (((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||\n           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)) {\n          iVar15 = FUN_0003dd80(iVar26);\n          if (iVar15 != 0) goto LAB_0002410f;\n          if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }\n          else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }\nLAB_0002402d:\n          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;\n          if (uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }\n          (*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);\n          local_a0 = (undefined4 ******)((int)local_a0 + uVar36);\n          puVar6[9] = local_a8;\n          puVar7 = (uint *)puVar6[5];\n          if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {\n            puVar7[3] = (int)local_a8 - local_8c;\n          }\n          local_a8 = (undefined4 ******)((int)local_a8 + 1);\n          if ((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          FUN_0003dd80(iVar26);\nLAB_0002410f:\n          if (puVar6[6] != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (puVar6[8] != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          iVar15 = FUN_00041590(iVar26);\n          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }\n        }\n        if (local_70 <= puVar6 + 0x10) goto LAB_00024380;\n        uVar32 = puVar6[0x14];\n        puVar6 = puVar6 + 0x10;\n      } while( true );\n    }\n    goto LAB_000243a4;\n  }\n  *(undefined4 *)(param_1 + 0x30) = 0;\nLAB_0002554e:\n  *(undefined4 *)(param_1 + 0x3c) = 0;\n  *(undefined4 *)(param_1 + 0x40) = 0;\n  *(undefined4 *)(param_1 + 0x44) = 0;\n  *(undefined4 *)(param_1 + 0x50) = 0;\n  *(uint *)(param_1 + 0x4c) = local_68;\nLAB_00024eaa:\n  uVar16 = FUN_0001ff70(local_68,0);\n  *(uint *)(param_1 + 0x48) =\n       uVar16 - *(uint *)(param_1 + 0x4c) >> 2 |\n       (-(uint)(uVar16 < *(uint *)(param_1 + 0x4c)) - *(int *)(param_1 + 0x50)) * 0x40000000;\n  *(uint *)(param_1 + 0x58) = uVar16;\n  iVar26 = DAT_00078240;\n  local_9c = (undefined4 *****)DAT_00078240;\n  *(undefined4 *)(param_1 + 0x5c) = 0;\n  uVar36 = uVar16;\n  if (iVar26 != 0) {\n    local_a8 = (undefined4 ******)0x0;\n    do {\n      uVar2 = DAT_00078250;\n      if (*(int *)((int)local_9c + 4) != 0) {\n        uVar2 = DAT_0007824e;\n      }\n      local_b4 = *(undefined4 ********)((int)local_9c + 8);\n      uVar32 = (uint)uVar2 * 0x294 + (int)local_b4;\n      pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      if (local_b4 < uVar32) {\n        do {\n          *(undefined4 *******)((int)local_b4 + 0xc) = local_a8;\n          iVar26 = *(int *)((int)local_b4 + 0x78);\n          pcVar24 = pcVar14 + uVar36;\n          if (iVar26 == 0) {\n            iVar15 = 0;\n            iVar26 = 0;\n          }\n          else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }\n          *(int *)((int)local_b4 + 0x10) = iVar15;\n          uVar33 = (int)local_b4 + 0x294;\n          *(int *)((int)local_b4 + 0x14) = iVar26;\n          local_b4 = (undefined4 *******)uVar33;\n        } while (uVar33 < uVar32);\n        pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      }\n      local_9c = pppppuVar17;\n    } while (local_9c != (undefined4 *****)0x0);\n  }\n  local_9c = (undefined4 *****)FUN_0001ff70(uVar36,0);\n  uVar36 = *(uint *)(param_3 + 0x38);\n  *(undefined4 *)(param_1 + 0x78) = 0;\n  *(int *)(param_1 + 0x54) = (int)local_9c - *(int *)(param_1 + 0x58);\n  *(undefined4 *)(param_1 + 0x7c) = 0;\n  *(undefined4 *)(param_1 + 0x80) = 0;\n  *(undefined4 ******)(param_1 + 0x70) = local_9c;\n  pcVar24 = pcVar14 + (int)local_9c;\n  *(undefined4 *)(param_1 + 0x74) = 0;\n  pcVar5 = *(code **)(param_3 + 0x88);\n  uVar16 = *(uint *)(param_3 + 0x34);\n  if (DAT_00078240 == 0) {\n    uVar13 = 0;\n  }\n  else {\n    local_ac = (undefined4 *****)0x0;\n    ppppppuVar27 = (undefined4 ******)DAT_00078240;\nLAB_000251e2:\n    do {\n      local_98 = ppppppuVar27;\n      uVar32 = *(uint *)((int)local_98 + 8);\n      pcVar19 = pcVar24;\n      if (*(int *)((int)local_98 + 4) == 0) {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);\n        if (local_b4 <= uVar32) {\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);\n        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n        if (local_b4 <= uVar32) goto LAB_000251e2;\n      }\n      do {\n        uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;\n        if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           ) {\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }\n        pcVar24 = pcVar19 + uVar16;\n        uVar33 = uVar32 + 0x294;\n        (*pcVar5)(DAT_00081544,uVar32,pcVar19);\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        pcVar19 = pcVar24;\n        uVar32 = uVar33;\n      } while (uVar33 < local_b4);\n      ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n    } while (*(int *)((int)local_98 + 4) != 0);\n    local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n    uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                          -(uint)(local_9c < *(uint *)(param_1 + 0x70)) - *(int *)(param_1 + 0x74),\n                          *(undefined4 *)(param_3 + 0x34),*(undefined4 *)(param_3 + 0x38));\n  }\nLAB_000252e8:\n  *(undefined4 *)(param_1 + 0x6c) = uVar13;\n  *(undefined4 *)(param_1 + 0x60) = 0;\n  iVar26 = DAT_000816a4;\n  *(undefined4 *)(param_1 + 100) = 0;\n  *(undefined4 *)(param_1 + 0x68) = 0;\n  *(undefined4 *)(param_1 + 0x84) = 0;\n  *(undefined4 *)(param_1 + 0x88) = 0;\n  *(undefined4 *)(param_1 + 0x8c) = 0;\n  for (; iVar26 != 0; iVar26 = FUN_00040c00(iVar26)) {\n    iVar15 = FUN_00041590(iVar26);\n    if (*(int *)(iVar15 + 0x10) != 0) {\n      iVar15 = FUN_0003dc20(iVar26);\n      if (((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n         (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) {\n        iVar15 = FUN_00041590(iVar26);\n        iVar15 = *(int *)(iVar15 + 0x10);\n        *(undefined4 *)(iVar15 + 0x34) = 0;\n        *(undefined4 *)(iVar15 + 0x38) = 0;\n        *(uint *)(iVar15 + 0x3c) = *(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000;\n      }\n      iVar15 = FUN_00041590(iVar26);\n      FUN_0004ed20(iVar26,*(int *)(iVar15 + 0x10) + 0x28);\n    }\n  }\n  if ((*(int *)(param_3 + 4) - 1U & (uint)local_9c) == 0) {\n    *(undefined2 *)(param_1 + 2) = 0x30b;\n    *param_2 = pcVar14;\n    return (uint)local_9c;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00031740("../../gas/ecoff.c",0x129d,"ecoff_build_debug",local_9c);\ncode_r0x00024a60:\n  local_ac = (undefined4 *****)((int)local_ac + 3);\n  pcVar24 = local_38 + 2;\n  local_38[1] = (char)((uint)iVar15 >> 8);\n  local_38 = local_38 + 3;\n  *pcVar24 = (char)iVar15;\nLAB_000238d0:\n  if (0 < (int)pppppuVar17) {\n    uVar16 = (int)pppppuVar17 - 1;\n    local_ac = (undefined4 *****)((int)local_ac + 1);\n    pppppuVar17 = (undefined4 *****)((uVar16 >> 4) + (int)local_ac);\n    if (pcVar1 <= local_38) goto LAB_00023925;\n    while (pcVar24 = local_38 + 1, pcVar19 = local_38, local_38 = pcVar24, 0xf < uVar16) {\n      while( true ) {\n        uVar16 = uVar16 - 0x10;\n        *pcVar19 = '\x0f';\n        if (pppppuVar17 == local_ac) goto LAB_00023953;\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        if (local_38 < pcVar1) break;\nLAB_00023925:\n        pcVar19 = (char *)FUN_0001ff00(1);\n        local_38 = pcVar19 + 1;\n        if (uVar16 < 0x10) goto LAB_00023944;\n      }\n    }\nLAB_00023944:\n    *pcVar19 = (char)uVar16;\n  }\nLAB_00023953:\n  pppppppuVar30 = (undefined4 *******)*local_b4;\n  if (pppppppuVar30 == (undefined4 *******)0x0) goto LAB_00023a10;\n  local_9c = local_a4;\n  local_94 = local_b4;\n  local_98 = local_a8;\nLAB_000237a0:\n  pppppppuVar29 = (undefined4 *******)*pppppppuVar30;\n  local_b4 = pppppppuVar30;\n  goto LAB_000237a6;\nLAB_00023a10:\n  if (local_a8 != (undefined4 ******)0x0) {\n    local_a8[0xd] = local_b4[5];\n  }\n  if (local_a0 != (undefined4 ******)0x0) {\n    local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n    local_a0[0x15] = (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n    local_a0[9] = local_a4;\n  }\n  goto LAB_00023a3f;\nLAB_00024380:\n  iVar26 = *(int *)(local_64 + 4);\n  if (*(int *)(local_64 + 4) == 0) goto code_r0x00024393;\n  goto LAB_00023bdc;\ncode_r0x00024393:\n  iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n  local_8c = (int)local_a8;\nLAB_000243a4:\n  *(int *)((int)local_9c + 0x1c) = iVar26;\n  local_9c = (undefined4 *****)((int)local_9c + 0x294);\n  if (local_54 <= local_9c) goto code_r0x000243bf;\n  goto LAB_00023bb7;\ncode_r0x000243bf:\n  iVar26 = *(int *)(local_5c + 4);\n  if (*(int *)(local_5c + 4) == 0) goto code_r0x000243ce;\n  goto LAB_00023b80;\ncode_r0x000243ce:\n  local_68 = local_68 + local_8c * uVar36;\n  uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                        -(uint)(local_68 < *(uint *)(param_1 + 0x34)) - *(int *)(param_1 + 0x38),\n                        *(undefined4 *)(param_3 + 0x24),*(undefined4 *)(param_3 + 0x28));\nLAB_0002441d:\n  puVar20 = (undefined4 *)DAT_00078240;\n  *(undefined4 *)(param_1 + 0x30) = uVar13;\n  pcVar24 = pcVar14 + *(int *)(param_1 + 0x28);\n  uVar36 = *(uint *)(param_3 + 0x1c);\n  uVar16 = *(uint *)(param_3 + 0x20);\n  pcVar5 = *(code **)(param_3 + 0x7c);\n  if (puVar20 != (undefined4 *)0x0) {\n    sVar9 = 0;\nLAB_00024474:\n    do {\n      local_70 = puVar20;\n      local_a4 = *(undefined4 ******)((int)local_70 + 8);\n      if (*(int *)((int)local_70 + 4) == 0) {\n        local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5);\n        if (local_7c <= local_a4) break;\n      }\n      else {\n        local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);\n        puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }\n      do {\n        bVar41 = true;\n        *(short *)(local_a4 + 0xc) = sVar9;\n        uVar32 = (uint)local_a4[0x28];\n        if (uVar32 != 0) {\nLAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);\n          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);\n        }\n        *(short *)((int)local_a4 + 0x32) = (short)uVar32;\n        local_a4 = local_a4 + 0xa5;\n      } while (local_a4 < local_7c);\n      puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n    } while (*(int *)((int)local_70 + 4) != 0);\n    pppppppuVar29 = (undefined4 *******)DAT_00078240;\n    *(undefined4 *)(param_1 + 0x3c) = 0;\n    *(undefined4 *)(param_1 + 0x40) = 0;\n    *(undefined4 *)(param_1 + 0x44) = 0;\n    *(undefined4 *)(param_1 + 0x50) = 0;\n    *(uint *)(param_1 + 0x4c) = local_68;\n    iVar26 = *(int *)(*(int *)(DAT_00081544 + 4) + 8);\n    bVar41 = iVar26 == 0;\n    pcVar24 = pcVar14 + local_68;\n    if (pppppppuVar29 != (undefined4 *******)0x0) {\n      iVar15 = 0;\nLAB_00024d54:\n      do {\n        local_94 = pppppppuVar29;\n        local_a0 = *(undefined4 *******)((int)local_94 + 8);\n        if (*(int *)((int)local_94 + 4) == 0) {\n          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          *(int *)((int)local_a0 + 0x34) = iVar15;\n          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;\n          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);\n          if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }\n          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;\n          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);\n        } while (local_a0 < local_9c);\n        pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n      } while (*(int *)((int)local_94 + 4) != 0);\n      local_68 = local_68 + iVar15 * 4;\n    }\n    goto LAB_00024eaa;\n  }\n  goto LAB_0002554e;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "undefined4 *****pppppuVar4;" type_identifier (pointer_declarator "*****pppppuVar4" * (pointer_declarator "****pppppuVar4" * (pointer_declarator "***pppppuVar4" * (pointer_declarator "**pppppuVar4" * (pointer_declarator "*pppppuVar4" * identifier))))) ;) (declaration "code *pcVar5;" type_identifier (pointer_declarator "*pcVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined1 uVar8;" type_identifier identifier ;) (declaration "short sVar9;" (sized_type_specifier "short" short) identifier ;) (declaration "ulonglong uVar10;" type_identifier identifier ;) (declaration "byte bVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "undefined4 *****pppppuVar17;" type_identifier (pointer_declarator "*****pppppuVar17" * (pointer_declarator "****pppppuVar17" * (pointer_declarator "***pppppuVar17" * (pointer_declarator "**pppppuVar17" * (pointer_declarator "*pppppuVar17" * identifier))))) ;) (declaration "undefined4 *****pppppuVar18;" type_identifier (pointer_declarator "*****pppppuVar18" * (pointer_declarator "****pppppuVar18" * (pointer_declarator "***pppppuVar18" * (pointer_declarator "**pppppuVar18" * (pointer_declarator "*pppppuVar18" * identifier))))) ;) (declaration "char *pcVar19;" primitive_type (pointer_declarator "*pcVar19" * identifier) ;) (declaration "undefined4 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "undefined4 uVar22;" type_identifier identifier ;) (declaration "undefined4 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "char *pcVar24;" primitive_type (pointer_declarator "*pcVar24" * identifier) ;) (declaration "int *piVar25;" primitive_type (pointer_declarator "*piVar25" * identifier) ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "undefined4 ******ppppppuVar27;" type_identifier (pointer_declarator "******ppppppuVar27" * (pointer_declarator "*****ppppppuVar27" * (pointer_declarator "****ppppppuVar27" * (pointer_declarator "***ppppppuVar27" * (pointer_declarator "**ppppppuVar27" * (pointer_declarator "*ppppppuVar27" * identifier)))))) ;) (declaration "char cVar28;" primitive_type identifier ;) (declaration "undefined4 *******pppppppuVar29;" type_identifier (pointer_declarator "*******pppppppuVar29" * (pointer_declarator "******pppppppuVar29" * (pointer_declarator "*****pppppppuVar29" * (pointer_declarator "****pppppppuVar29" * (pointer_declarator "***pppppppuVar29" * (pointer_declarator "**pppppppuVar29" * (pointer_declarator "*pppppppuVar29" * identifier))))))) ;) (declaration "undefined4 *******pppppppuVar30;" type_identifier (pointer_declarator "*******pppppppuVar30" * (pointer_declarator "******pppppppuVar30" * (pointer_declarator "*****pppppppuVar30" * (pointer_declarator "****pppppppuVar30" * (pointer_declarator "***pppppppuVar30" * (pointer_declarator "**pppppppuVar30" * (pointer_declarator "*pppppppuVar30" * identifier))))))) ;) (declaration "byte bVar31;" type_identifier identifier ;) (declaration "uint uVar32;" type_identifier identifier ;) (declaration "uint uVar33;" type_identifier identifier ;) (declaration "byte *pbVar34;" type_identifier (pointer_declarator "*pbVar34" * identifier) ;) (declaration "byte *pbVar35;" type_identifier (pointer_declarator "*pbVar35" * identifier) ;) (declaration "uint uVar36;" type_identifier identifier ;) (declaration "char cVar37;" primitive_type identifier ;) (declaration "uint uVar38;" type_identifier identifier ;) (declaration "byte *pbVar39;" type_identifier (pointer_declarator "*pbVar39" * identifier) ;) (declaration "bool bVar40;" primitive_type identifier ;) (declaration "bool bVar41;" primitive_type identifier ;) (declaration "bool bVar42;" primitive_type identifier ;) (declaration "byte bVar43;" type_identifier identifier ;) (declaration "undefined8 uVar44;" type_identifier identifier ;) (declaration "longlong lVar45;" type_identifier identifier ;) (declaration "longlong lVar46;" type_identifier identifier ;) (declaration "undefined4 *******local_b4;" type_identifier (pointer_declarator "*******local_b4" * (pointer_declarator "******local_b4" * (pointer_declarator "*****local_b4" * (pointer_declarator "****local_b4" * (pointer_declarator "***local_b4" * (pointer_declarator "**local_b4" * (pointer_declarator "*local_b4" * identifier))))))) ;) (declaration "undefined4 *****local_ac;" type_identifier (pointer_declarator "*****local_ac" * (pointer_declarator "****local_ac" * (pointer_declarator "***local_ac" * (pointer_declarator "**local_ac" * (pointer_declarator "*local_ac" * identifier))))) ;) (declaration "undefined4 ******local_a8;" type_identifier (pointer_declarator "******local_a8" * (pointer_declarator "*****local_a8" * (pointer_declarator "****local_a8" * (pointer_declarator "***local_a8" * (pointer_declarator "**local_a8" * (pointer_declarator "*local_a8" * identifier)))))) ;) (declaration "undefined4 *****local_a4;" type_identifier (pointer_declarator "*****local_a4" * (pointer_declarator "****local_a4" * (pointer_declarator "***local_a4" * (pointer_declarator "**local_a4" * (pointer_declarator "*local_a4" * identifier))))) ;) (declaration "undefined4 ******local_a0;" type_identifier (pointer_declarator "******local_a0" * (pointer_declarator "*****local_a0" * (pointer_declarator "****local_a0" * (pointer_declarator "***local_a0" * (pointer_declarator "**local_a0" * (pointer_declarator "*local_a0" * identifier)))))) ;) (declaration "undefined4 *****local_9c;" type_identifier (pointer_declarator "*****local_9c" * (pointer_declarator "****local_9c" * (pointer_declarator "***local_9c" * (pointer_declarator "**local_9c" * (pointer_declarator "*local_9c" * identifier))))) ;) (declaration "undefined4 ******local_98;" type_identifier (pointer_declarator "******local_98" * (pointer_declarator "*****local_98" * (pointer_declarator "****local_98" * (pointer_declarator "***local_98" * (pointer_declarator "**local_98" * (pointer_declarator "*local_98" * identifier)))))) ;) (declaration "undefined4 *******local_94;" type_identifier (pointer_declarator "*******local_94" * (pointer_declarator "******local_94" * (pointer_declarator "*****local_94" * (pointer_declarator "****local_94" * (pointer_declarator "***local_94" * (pointer_declarator "**local_94" * (pointer_declarator "*local_94" * identifier))))))) ;) (declaration "int local_8c;" primitive_type identifier ;) (declaration "uint local_88;" type_identifier identifier ;) (declaration "uint *local_7c;" type_identifier (pointer_declarator "*local_7c" * identifier) ;) (declaration "undefined4 *local_70;" type_identifier (pointer_declarator "*local_70" * identifier) ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "char *local_38;" primitive_type (pointer_declarator "*local_38" * identifier) ;) (declaration "undefined4 *******local_34;" type_identifier (pointer_declarator "*******local_34" * (pointer_declarator "******local_34" * (pointer_declarator "*****local_34" * (pointer_declarator "****local_34" * (pointer_declarator "***local_34" * (pointer_declarator "**local_34" * (pointer_declarator "*local_34" * identifier))))))) ;) (declaration "undefined4 ******local_30;" type_identifier (pointer_declarator "******local_30" * (pointer_declarator "*****local_30" * (pointer_declarator "****local_30" * (pointer_declarator "***local_30" * (pointer_declarator "**local_30" * (pointer_declarator "*local_30" * identifier)))))) ;) (declaration "undefined4 ******local_2c;" type_identifier (pointer_declarator "******local_2c" * (pointer_declarator "*****local_2c" * (pointer_declarator "****local_2c" * (pointer_declarator "***local_2c" * (pointer_declarator "**local_2c" * (pointer_declarator "*local_2c" * identifier)))))) ;) (declaration "undefined4 *local_28;" type_identifier (pointer_declarator "*local_28" * identifier) ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar43 = 0;" (assignment_expression "bVar43 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x23469;" (assignment_expression "uStack_14 = 0x23469" identifier = number_literal) ;) (expression_statement "uVar36 = *(uint *)(param_3 + 0x1c);" (assignment_expression "uVar36 = *(uint *)(param_3 + 0x1c)" identifier = (pointer_expression "*(uint *)(param_3 + 0x1c)" * (cast_expression "(uint *)(param_3 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x1c)" ( (binary_expression "param_3 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "iVar26 = *(int *)(param_3 + 0x20);" (assignment_expression "iVar26 = *(int *)(param_3 + 0x20)" identifier = (pointer_expression "*(int *)(param_3 + 0x20)" * (cast_expression "(int *)(param_3 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x20)" ( (binary_expression "param_3 + 0x20" identifier + number_literal) ))))) ;) (if_statement "if (DAT_00080ca0 == 0) {\n    FUN_00020ec0();\n  }" if (parenthesized_expression "(DAT_00080ca0 == 0)" ( (binary_expression "DAT_00080ca0 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_00020ec0();\n  }" { (expression_statement "FUN_00020ec0();" (call_expression "FUN_00020ec0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "piVar25 = *(int **)(DAT_000809e4 + 8);" (assignment_expression "piVar25 = *(int **)(DAT_000809e4 + 8)" identifier = (pointer_expression "*(int **)(DAT_000809e4 + 8)" * (cast_expression "(int **)(DAT_000809e4 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_000809e4 + 8)" ( (binary_expression "DAT_000809e4 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = DAT_000809ec;" (assignment_expression "uVar13 = DAT_000809ec" identifier = identifier) ;) (while_statement "while (DAT_000809ec = uVar13, piVar25 != (int *)0x0) {\n    iVar15 = piVar25[1];\n    if (piVar25[4] != 0) {\n      FUN_00020e40();\n      iVar15 = piVar25[1];\n    }\n    piVar3 = (int *)piVar25[3];\n    DAT_00080aa0 = DAT_00080aa0 + 1;\n    *(int *)(iVar15 + 0x14) = piVar25[2];\n    *piVar25 = DAT_00080a94;\n    DAT_00080a94 = (int)piVar25;\n    piVar25 = piVar3;\n    uVar13 = DAT_000809ec;\n  }" while (parenthesized_expression "(DAT_000809ec = uVar13, piVar25 != (int *)0x0)" ( (comma_expression "DAT_000809ec = uVar13, piVar25 != (int *)0x0" (assignment_expression "DAT_000809ec = uVar13" identifier = identifier) , (binary_expression "piVar25 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n    iVar15 = piVar25[1];\n    if (piVar25[4] != 0) {\n      FUN_00020e40();\n      iVar15 = piVar25[1];\n    }\n    piVar3 = (int *)piVar25[3];\n    DAT_00080aa0 = DAT_00080aa0 + 1;\n    *(int *)(iVar15 + 0x14) = piVar25[2];\n    *piVar25 = DAT_00080a94;\n    DAT_00080a94 = (int)piVar25;\n    piVar25 = piVar3;\n    uVar13 = DAT_000809ec;\n  }" { (expression_statement "iVar15 = piVar25[1];" (assignment_expression "iVar15 = piVar25[1]" identifier = (subscript_expression "piVar25[1]" identifier [ number_literal ])) ;) (if_statement "if (piVar25[4] != 0) {\n      FUN_00020e40();\n      iVar15 = piVar25[1];\n    }" if (parenthesized_expression "(piVar25[4] != 0)" ( (binary_expression "piVar25[4] != 0" (subscript_expression "piVar25[4]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      FUN_00020e40();\n      iVar15 = piVar25[1];\n    }" { (expression_statement "FUN_00020e40();" (call_expression "FUN_00020e40()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar15 = piVar25[1];" (assignment_expression "iVar15 = piVar25[1]" identifier = (subscript_expression "piVar25[1]" identifier [ number_literal ])) ;) })) (expression_statement "piVar3 = (int *)piVar25[3];" (assignment_expression "piVar3 = (int *)piVar25[3]" identifier = (cast_expression "(int *)piVar25[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar25[3]" identifier [ number_literal ]))) ;) (expression_statement "DAT_00080aa0 = DAT_00080aa0 + 1;" (assignment_expression "DAT_00080aa0 = DAT_00080aa0 + 1" identifier = (binary_expression "DAT_00080aa0 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(iVar15 + 0x14) = piVar25[2];" (assignment_expression "*(int *)(iVar15 + 0x14) = piVar25[2]" (pointer_expression "*(int *)(iVar15 + 0x14)" * (cast_expression "(int *)(iVar15 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x14)" ( (binary_expression "iVar15 + 0x14" identifier + number_literal) )))) = (subscript_expression "piVar25[2]" identifier [ number_literal ])) ;) (expression_statement "*piVar25 = DAT_00080a94;" (assignment_expression "*piVar25 = DAT_00080a94" (pointer_expression "*piVar25" * identifier) = identifier) ;) (expression_statement "DAT_00080a94 = (int)piVar25;" (assignment_expression "DAT_00080a94 = (int)piVar25" identifier = (cast_expression "(int)piVar25" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar25 = piVar3;" (assignment_expression "piVar25 = piVar3" identifier = identifier) ;) (expression_statement "uVar13 = DAT_000809ec;" (assignment_expression "uVar13 = DAT_000809ec" identifier = identifier) ;) })) (expression_statement "DAT_00080ad8 = DAT_00080ad8 + 1;" (assignment_expression "DAT_00080ad8 = DAT_00080ad8 + 1" identifier = (binary_expression "DAT_00080ad8 + 1" identifier + number_literal)) ;) (expression_statement "iVar15 = DAT_000809e4;" (assignment_expression "iVar15 = DAT_000809e4" identifier = identifier) ;) (expression_statement "*(int *)(DAT_000809e4 + 4) = DAT_00080acc;" (assignment_expression "*(int *)(DAT_000809e4 + 4) = DAT_00080acc" (pointer_expression "*(int *)(DAT_000809e4 + 4)" * (cast_expression "(int *)(DAT_000809e4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000809e4 + 4)" ( (binary_expression "DAT_000809e4 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "DAT_00080acc = iVar15;" (assignment_expression "DAT_00080acc = iVar15" identifier = identifier) ;) (expression_statement "iVar21 = DAT_000809f0;" (assignment_expression "iVar21 = DAT_000809f0" identifier = identifier) ;) (expression_statement "DAT_000809ec = 0;" (assignment_expression "DAT_000809ec = 0" identifier = number_literal) ;) (for_statement "for (iVar15 = DAT_000816a4; iVar15 != 0; iVar15 = FUN_00040c00(iVar15)) {\n    iVar12 = FUN_00041590(iVar15);\n    if (((*(int *)(iVar12 + 0x10) == 0) &&\n        (iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0)) &&\n       (iVar12 = FUN_000414f0(iVar15), (*(byte *)(iVar12 + 0x11) & 1) == 0)) {\n      iVar12 = FUN_00041590(iVar15);\n      DAT_000809f0 = *(int *)(iVar12 + 0xc);\n      uVar22 = FUN_0003fad0(iVar15);\n      FUN_00020930(iVar15,0,0,uVar22,0xfffff);\n    }\n  }" for ( (assignment_expression "iVar15 = DAT_000816a4" identifier = identifier) ; (binary_expression "iVar15 != 0" identifier != number_literal) ; (assignment_expression "iVar15 = FUN_00040c00(iVar15)" identifier = (call_expression "FUN_00040c00(iVar15)" identifier (argument_list "(iVar15)" ( identifier )))) ) (compound_statement "{\n    iVar12 = FUN_00041590(iVar15);\n    if (((*(int *)(iVar12 + 0x10) == 0) &&\n        (iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0)) &&\n       (iVar12 = FUN_000414f0(iVar15), (*(byte *)(iVar12 + 0x11) & 1) == 0)) {\n      iVar12 = FUN_00041590(iVar15);\n      DAT_000809f0 = *(int *)(iVar12 + 0xc);\n      uVar22 = FUN_0003fad0(iVar15);\n      FUN_00020930(iVar15,0,0,uVar22,0xfffff);\n    }\n  }" { (expression_statement "iVar12 = FUN_00041590(iVar15);" (assignment_expression "iVar12 = FUN_00041590(iVar15)" identifier = (call_expression "FUN_00041590(iVar15)" identifier (argument_list "(iVar15)" ( identifier )))) ;) (if_statement "if (((*(int *)(iVar12 + 0x10) == 0) &&\n        (iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0)) &&\n       (iVar12 = FUN_000414f0(iVar15), (*(byte *)(iVar12 + 0x11) & 1) == 0)) {\n      iVar12 = FUN_00041590(iVar15);\n      DAT_000809f0 = *(int *)(iVar12 + 0xc);\n      uVar22 = FUN_0003fad0(iVar15);\n      FUN_00020930(iVar15,0,0,uVar22,0xfffff);\n    }" if (parenthesized_expression "(((*(int *)(iVar12 + 0x10) == 0) &&\n        (iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0)) &&\n       (iVar12 = FUN_000414f0(iVar15), (*(byte *)(iVar12 + 0x11) & 1) == 0))" ( (binary_expression "((*(int *)(iVar12 + 0x10) == 0) &&\n        (iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0)) &&\n       (iVar12 = FUN_000414f0(iVar15), (*(byte *)(iVar12 + 0x11) & 1) == 0)" (parenthesized_expression "((*(int *)(iVar12 + 0x10) == 0) &&\n        (iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0))" ( (binary_expression "(*(int *)(iVar12 + 0x10) == 0) &&\n        (iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0)" (parenthesized_expression "(*(int *)(iVar12 + 0x10) == 0)" ( (binary_expression "*(int *)(iVar12 + 0x10) == 0" (pointer_expression "*(int *)(iVar12 + 0x10)" * (cast_expression "(int *)(iVar12 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0)" ( (comma_expression "iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0" (assignment_expression "iVar12 = FUN_00041590(iVar15)" identifier = (call_expression "FUN_00041590(iVar15)" identifier (argument_list "(iVar15)" ( identifier )))) , (binary_expression "*(int *)(iVar12 + 0xc) != 0" (pointer_expression "*(int *)(iVar12 + 0xc)" * (cast_expression "(int *)(iVar12 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xc)" ( (binary_expression "iVar12 + 0xc" identifier + number_literal) )))) != number_literal)) ))) )) && (parenthesized_expression "(iVar12 = FUN_000414f0(iVar15), (*(byte *)(iVar12 + 0x11) & 1) == 0)" ( (comma_expression "iVar12 = FUN_000414f0(iVar15), (*(byte *)(iVar12 + 0x11) & 1) == 0" (assignment_expression "iVar12 = FUN_000414f0(iVar15)" identifier = (call_expression "FUN_000414f0(iVar15)" identifier (argument_list "(iVar15)" ( identifier )))) , (binary_expression "(*(byte *)(iVar12 + 0x11) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar12 + 0x11) & 1)" ( (binary_expression "*(byte *)(iVar12 + 0x11) & 1" (pointer_expression "*(byte *)(iVar12 + 0x11)" * (cast_expression "(byte *)(iVar12 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x11)" ( (binary_expression "iVar12 + 0x11" identifier + number_literal) )))) & number_literal) )) == number_literal)) ))) )) (compound_statement "{\n      iVar12 = FUN_00041590(iVar15);\n      DAT_000809f0 = *(int *)(iVar12 + 0xc);\n      uVar22 = FUN_0003fad0(iVar15);\n      FUN_00020930(iVar15,0,0,uVar22,0xfffff);\n    }" { (expression_statement "iVar12 = FUN_00041590(iVar15);" (assignment_expression "iVar12 = FUN_00041590(iVar15)" identifier = (call_expression "FUN_00041590(iVar15)" identifier (argument_list "(iVar15)" ( identifier )))) ;) (expression_statement "DAT_000809f0 = *(int *)(iVar12 + 0xc);" (assignment_expression "DAT_000809f0 = *(int *)(iVar12 + 0xc)" identifier = (pointer_expression "*(int *)(iVar12 + 0xc)" * (cast_expression "(int *)(iVar12 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xc)" ( (binary_expression "iVar12 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uVar22 = FUN_0003fad0(iVar15);" (assignment_expression "uVar22 = FUN_0003fad0(iVar15)" identifier = (call_expression "FUN_0003fad0(iVar15)" identifier (argument_list "(iVar15)" ( identifier )))) ;) (expression_statement "FUN_00020930(iVar15,0,0,uVar22,0xfffff);" (call_expression "FUN_00020930(iVar15,0,0,uVar22,0xfffff)" identifier (argument_list "(iVar15,0,0,uVar22,0xfffff)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) })) })) (expression_statement "uVar8 = false;" (assignment_expression "uVar8 = false" identifier = false) ;) (expression_statement "DAT_000809ec = uVar13;" (assignment_expression "DAT_000809ec = uVar13" identifier = identifier) ;) (expression_statement "DAT_000809f0 = iVar21;" (assignment_expression "DAT_000809f0 = iVar21" identifier = identifier) ;) (expression_statement "iVar15 = DAT_00080ca0;" (assignment_expression "iVar15 = DAT_00080ca0" identifier = identifier) ;) (labeled_statement "joined_r0x000235e4:\n  if (iVar15 != 0) {\n    piVar25 = *(int **)(iVar15 + 0x6c);\n    iVar21 = iVar15;\n    DAT_000809f0 = iVar15;\n    while (piVar25 != (int *)0x0) {\n      while( true ) {\n        piVar25 = (int *)*piVar25;\n        if (piVar25 == (int *)0x0) {\n          FUN_00020930(0,0,0,0,0);\n          iVar15 = *(int *)(iVar15 + 200);\n          goto joined_r0x000235e4;\n        }\n        *(int **)(iVar21 + 0x6c) = piVar25;\n        if (((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)) break;\n        uVar8 = true;\n        uVar13 = dcgettext(0,"missing .end or .bend at end of file",5);\n        FUN_00031540(uVar13);\n        piVar25 = *(int **)(DAT_000809f0 + 0x6c);\n        iVar21 = DAT_000809f0;\n        if (piVar25 == (int *)0x0) goto LAB_00023650;\n      }\n    }\nLAB_00023650:\n    iVar15 = *(int *)(iVar15 + 200);\n    goto joined_r0x000235e4;\n  }" statement_identifier : (if_statement "if (iVar15 != 0) {\n    piVar25 = *(int **)(iVar15 + 0x6c);\n    iVar21 = iVar15;\n    DAT_000809f0 = iVar15;\n    while (piVar25 != (int *)0x0) {\n      while( true ) {\n        piVar25 = (int *)*piVar25;\n        if (piVar25 == (int *)0x0) {\n          FUN_00020930(0,0,0,0,0);\n          iVar15 = *(int *)(iVar15 + 200);\n          goto joined_r0x000235e4;\n        }\n        *(int **)(iVar21 + 0x6c) = piVar25;\n        if (((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)) break;\n        uVar8 = true;\n        uVar13 = dcgettext(0,"missing .end or .bend at end of file",5);\n        FUN_00031540(uVar13);\n        piVar25 = *(int **)(DAT_000809f0 + 0x6c);\n        iVar21 = DAT_000809f0;\n        if (piVar25 == (int *)0x0) goto LAB_00023650;\n      }\n    }\nLAB_00023650:\n    iVar15 = *(int *)(iVar15 + 200);\n    goto joined_r0x000235e4;\n  }" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (compound_statement "{\n    piVar25 = *(int **)(iVar15 + 0x6c);\n    iVar21 = iVar15;\n    DAT_000809f0 = iVar15;\n    while (piVar25 != (int *)0x0) {\n      while( true ) {\n        piVar25 = (int *)*piVar25;\n        if (piVar25 == (int *)0x0) {\n          FUN_00020930(0,0,0,0,0);\n          iVar15 = *(int *)(iVar15 + 200);\n          goto joined_r0x000235e4;\n        }\n        *(int **)(iVar21 + 0x6c) = piVar25;\n        if (((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)) break;\n        uVar8 = true;\n        uVar13 = dcgettext(0,"missing .end or .bend at end of file",5);\n        FUN_00031540(uVar13);\n        piVar25 = *(int **)(DAT_000809f0 + 0x6c);\n        iVar21 = DAT_000809f0;\n        if (piVar25 == (int *)0x0) goto LAB_00023650;\n      }\n    }\nLAB_00023650:\n    iVar15 = *(int *)(iVar15 + 200);\n    goto joined_r0x000235e4;\n  }" { (expression_statement "piVar25 = *(int **)(iVar15 + 0x6c);" (assignment_expression "piVar25 = *(int **)(iVar15 + 0x6c)" identifier = (pointer_expression "*(int **)(iVar15 + 0x6c)" * (cast_expression "(int **)(iVar15 + 0x6c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0x6c)" ( (binary_expression "iVar15 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "iVar21 = iVar15;" (assignment_expression "iVar21 = iVar15" identifier = identifier) ;) (expression_statement "DAT_000809f0 = iVar15;" (assignment_expression "DAT_000809f0 = iVar15" identifier = identifier) ;) (while_statement "while (piVar25 != (int *)0x0) {\n      while( true ) {\n        piVar25 = (int *)*piVar25;\n        if (piVar25 == (int *)0x0) {\n          FUN_00020930(0,0,0,0,0);\n          iVar15 = *(int *)(iVar15 + 200);\n          goto joined_r0x000235e4;\n        }\n        *(int **)(iVar21 + 0x6c) = piVar25;\n        if (((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)) break;\n        uVar8 = true;\n        uVar13 = dcgettext(0,"missing .end or .bend at end of file",5);\n        FUN_00031540(uVar13);\n        piVar25 = *(int **)(DAT_000809f0 + 0x6c);\n        iVar21 = DAT_000809f0;\n        if (piVar25 == (int *)0x0) goto LAB_00023650;\n      }\n    }" while (parenthesized_expression "(piVar25 != (int *)0x0)" ( (binary_expression "piVar25 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      while( true ) {\n        piVar25 = (int *)*piVar25;\n        if (piVar25 == (int *)0x0) {\n          FUN_00020930(0,0,0,0,0);\n          iVar15 = *(int *)(iVar15 + 200);\n          goto joined_r0x000235e4;\n        }\n        *(int **)(iVar21 + 0x6c) = piVar25;\n        if (((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)) break;\n        uVar8 = true;\n        uVar13 = dcgettext(0,"missing .end or .bend at end of file",5);\n        FUN_00031540(uVar13);\n        piVar25 = *(int **)(DAT_000809f0 + 0x6c);\n        iVar21 = DAT_000809f0;\n        if (piVar25 == (int *)0x0) goto LAB_00023650;\n      }\n    }" { (while_statement "while( true ) {\n        piVar25 = (int *)*piVar25;\n        if (piVar25 == (int *)0x0) {\n          FUN_00020930(0,0,0,0,0);\n          iVar15 = *(int *)(iVar15 + 200);\n          goto joined_r0x000235e4;\n        }\n        *(int **)(iVar21 + 0x6c) = piVar25;\n        if (((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)) break;\n        uVar8 = true;\n        uVar13 = dcgettext(0,"missing .end or .bend at end of file",5);\n        FUN_00031540(uVar13);\n        piVar25 = *(int **)(DAT_000809f0 + 0x6c);\n        iVar21 = DAT_000809f0;\n        if (piVar25 == (int *)0x0) goto LAB_00023650;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        piVar25 = (int *)*piVar25;\n        if (piVar25 == (int *)0x0) {\n          FUN_00020930(0,0,0,0,0);\n          iVar15 = *(int *)(iVar15 + 200);\n          goto joined_r0x000235e4;\n        }\n        *(int **)(iVar21 + 0x6c) = piVar25;\n        if (((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)) break;\n        uVar8 = true;\n        uVar13 = dcgettext(0,"missing .end or .bend at end of file",5);\n        FUN_00031540(uVar13);\n        piVar25 = *(int **)(DAT_000809f0 + 0x6c);\n        iVar21 = DAT_000809f0;\n        if (piVar25 == (int *)0x0) goto LAB_00023650;\n      }" { (expression_statement "piVar25 = (int *)*piVar25;" (assignment_expression "piVar25 = (int *)*piVar25" identifier = (cast_expression "(int *)*piVar25" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar25" * identifier))) ;) (if_statement "if (piVar25 == (int *)0x0) {\n          FUN_00020930(0,0,0,0,0);\n          iVar15 = *(int *)(iVar15 + 200);\n          goto joined_r0x000235e4;\n        }" if (parenthesized_expression "(piVar25 == (int *)0x0)" ( (binary_expression "piVar25 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          FUN_00020930(0,0,0,0,0);\n          iVar15 = *(int *)(iVar15 + 200);\n          goto joined_r0x000235e4;\n        }" { (expression_statement "FUN_00020930(0,0,0,0,0);" (call_expression "FUN_00020930(0,0,0,0,0)" identifier (argument_list "(0,0,0,0,0)" ( number_literal , number_literal , number_literal , number_literal , number_literal ))) ;) (expression_statement "iVar15 = *(int *)(iVar15 + 200);" (assignment_expression "iVar15 = *(int *)(iVar15 + 200)" identifier = (pointer_expression "*(int *)(iVar15 + 200)" * (cast_expression "(int *)(iVar15 + 200)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 200)" ( (binary_expression "iVar15 + 200" identifier + number_literal) ))))) ;) (goto_statement "goto joined_r0x000235e4;" goto statement_identifier ;) })) (expression_statement "*(int **)(iVar21 + 0x6c) = piVar25;" (assignment_expression "*(int **)(iVar21 + 0x6c) = piVar25" (pointer_expression "*(int **)(iVar21 + 0x6c)" * (cast_expression "(int **)(iVar21 + 0x6c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + 0x6c)" ( (binary_expression "iVar21 + 0x6c" identifier + number_literal) )))) = identifier) ;) (if_statement "if (((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)) break;" if (parenthesized_expression "(((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0))" ( (binary_expression "((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)" (parenthesized_expression "((bool)uVar8)" ( (cast_expression "(bool)uVar8" ( (type_descriptor "bool" primitive_type) ) identifier) )) || (parenthesized_expression "(*(int *)(iVar21 + 0x60) != 0)" ( (binary_expression "*(int *)(iVar21 + 0x60) != 0" (pointer_expression "*(int *)(iVar21 + 0x60)" * (cast_expression "(int *)(iVar21 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x60)" ( (binary_expression "iVar21 + 0x60" identifier + number_literal) )))) != number_literal) ))) )) (break_statement "break;" break ;)) (expression_statement "uVar8 = true;" (assignment_expression "uVar8 = true" identifier = true) ;) (expression_statement "uVar13 = dcgettext(0,"missing .end or .bend at end of file",5);" (assignment_expression "uVar13 = dcgettext(0,"missing .end or .bend at end of file",5)" identifier = (call_expression "dcgettext(0,"missing .end or .bend at end of file",5)" identifier (argument_list "(0,"missing .end or .bend at end of file",5)" ( number_literal , (string_literal ""missing .end or .bend at end of file"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_00031540(uVar13);" (call_expression "FUN_00031540(uVar13)" identifier (argument_list "(uVar13)" ( identifier ))) ;) (expression_statement "piVar25 = *(int **)(DAT_000809f0 + 0x6c);" (assignment_expression "piVar25 = *(int **)(DAT_000809f0 + 0x6c)" identifier = (pointer_expression "*(int **)(DAT_000809f0 + 0x6c)" * (cast_expression "(int **)(DAT_000809f0 + 0x6c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_000809f0 + 0x6c)" ( (binary_expression "DAT_000809f0 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "iVar21 = DAT_000809f0;" (assignment_expression "iVar21 = DAT_000809f0" identifier = identifier) ;) (if_statement "if (piVar25 == (int *)0x0) goto LAB_00023650;" if (parenthesized_expression "(piVar25 == (int *)0x0)" ( (binary_expression "piVar25 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00023650;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_00023650:\n    iVar15 = *(int *)(iVar15 + 200);" statement_identifier : (expression_statement "iVar15 = *(int *)(iVar15 + 200);" (assignment_expression "iVar15 = *(int *)(iVar15 + 200)" identifier = (pointer_expression "*(int *)(iVar15 + 200)" * (cast_expression "(int *)(iVar15 + 200)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 200)" ( (binary_expression "iVar15 + 200" identifier + number_literal) ))))) ;)) (goto_statement "goto joined_r0x000235e4;" goto statement_identifier ;) }))) (expression_statement "pcVar14 = (char *)xmalloc(0x2000);" (assignment_expression "pcVar14 = (char *)xmalloc(0x2000)" identifier = (cast_expression "(char *)xmalloc(0x2000)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x2000)" identifier (argument_list "(0x2000)" ( number_literal ))))) ;) (expression_statement "pppppppuVar29 = DAT_00080c9c;" (assignment_expression "pppppppuVar29 = DAT_00080c9c" identifier = identifier) ;) (expression_statement "pcVar1 = pcVar14 + 0x2000;" (assignment_expression "pcVar1 = pcVar14 + 0x2000" identifier = (binary_expression "pcVar14 + 0x2000" identifier + number_literal)) ;) (expression_statement "bVar41 = DAT_00080758 == 3;" (assignment_expression "bVar41 = DAT_00080758 == 3" identifier = (binary_expression "DAT_00080758 == 3" identifier == number_literal)) ;) (expression_statement "*(undefined4 *)(param_1 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x10) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x10)" * (cast_expression "(undefined4 *)(param_1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x14) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x14)" * (cast_expression "(undefined4 *)(param_1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 4) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 4) = 0" (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) )))) = number_literal) ;) (expression_statement "local_38 = pcVar14;" (assignment_expression "local_38 = pcVar14" identifier = identifier) ;) (expression_statement "local_b4 = pppppppuVar29;" (assignment_expression "local_b4 = pppppppuVar29" identifier = identifier) ;) (if_statement "if ((bVar41) || (DAT_000809e8 == (int *)0x0)) {\n    if (pppppppuVar29 != (undefined4 *******)0x0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n      goto LAB_00023764;\n    }\n  }\n  else if (pppppppuVar29 != (undefined4 *******)0x0) {\n    uVar44 = FUN_0003fad0(*(undefined4 *)(*DAT_000809e8 + 4));\n    iVar15 = FUN_0003e1d0(*(undefined4 *)(*DAT_000809e8 + 4));\n    if ((int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +\n        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c)) == 0 &&\n        (uint)uVar44 + *(uint *)(iVar15 + 0x1c) == 0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n    }\n    else {\n      local_30 = pppppppuVar29[1];\n      local_24 = 0;\n      local_2c = pppppppuVar29[2];\n      local_20 = 0;\n      local_28 = &DAT_000813a0;\n      local_b4 = &local_34;\n      local_34 = pppppppuVar29;\n    }\nLAB_00023764:\n    local_9c = (undefined4 *****)0x0;\n    local_ac = (undefined4 *****)0x0;\n    local_94 = (undefined4 *******)0x0;\n    local_a0 = (undefined4 ******)0x0;\n    local_98 = (undefined4 ******)0x0;\nLAB_000237a6:\n    pppppppuVar30 = pppppppuVar29;\n    if (pppppppuVar30 == (undefined4 *******)0x0) {\n      pppppuVar17 = (undefined4 *****)0x1;\nLAB_000237e1:\n      ppppppuVar27 = local_b4[1];\n      local_a8 = local_b4[2];\n      local_a4 = (undefined4 *****)((int)local_9c + (int)pppppuVar17);\n      if (ppppppuVar27 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }\n      }\n      else {\n        bVar41 = local_98 != local_a8;\n        if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }\n        pppppuVar18 = (undefined4 *****)0x0;\n        if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }\n        ppppppuVar27[8] = pppppuVar18;\n        ppppppuVar27[0x12] = local_ac;\n        ppppppuVar27[0x13] = (undefined4 *****)0x0;\n        local_a0 = ppppppuVar27;\n        if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }\n      goto LAB_000238d0;\n    }\n    ppppppuVar27 = pppppppuVar30[3];\n    uVar33 = (int)pppppppuVar30[4] + (int)*ppppppuVar27;\n    uVar38 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27);\n    ppppppuVar27 = local_b4[3];\n    uVar16 = (int)local_b4[4] + (int)*ppppppuVar27;\n    uVar32 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)local_b4[4],(uint)*ppppppuVar27);\n    if (uVar32 < uVar38 || uVar32 - uVar38 < (uint)(uVar16 < uVar33)) {\n      pppppuVar17 = (undefined4 *****)\n                    (uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000);\n      goto LAB_000237e1;\n    }\n    goto LAB_000237a0;\n  }" if (parenthesized_expression "((bVar41) || (DAT_000809e8 == (int *)0x0))" ( (binary_expression "(bVar41) || (DAT_000809e8 == (int *)0x0)" (parenthesized_expression "(bVar41)" ( identifier )) || (parenthesized_expression "(DAT_000809e8 == (int *)0x0)" ( (binary_expression "DAT_000809e8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    if (pppppppuVar29 != (undefined4 *******)0x0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n      goto LAB_00023764;\n    }\n  }" { (if_statement "if (pppppppuVar29 != (undefined4 *******)0x0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n      goto LAB_00023764;\n    }" if (parenthesized_expression "(pppppppuVar29 != (undefined4 *******)0x0)" ( (binary_expression "pppppppuVar29 != (undefined4 *******)0x0" identifier != (cast_expression "(undefined4 *******)0x0" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n      goto LAB_00023764;\n    }" { (expression_statement "pppppppuVar29 = (undefined4 *******)*pppppppuVar29;" (assignment_expression "pppppppuVar29 = (undefined4 *******)*pppppppuVar29" identifier = (cast_expression "(undefined4 *******)*pppppppuVar29" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*pppppppuVar29" * identifier))) ;) (goto_statement "goto LAB_00023764;" goto statement_identifier ;) })) }) (else_clause "else if (pppppppuVar29 != (undefined4 *******)0x0) {\n    uVar44 = FUN_0003fad0(*(undefined4 *)(*DAT_000809e8 + 4));\n    iVar15 = FUN_0003e1d0(*(undefined4 *)(*DAT_000809e8 + 4));\n    if ((int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +\n        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c)) == 0 &&\n        (uint)uVar44 + *(uint *)(iVar15 + 0x1c) == 0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n    }\n    else {\n      local_30 = pppppppuVar29[1];\n      local_24 = 0;\n      local_2c = pppppppuVar29[2];\n      local_20 = 0;\n      local_28 = &DAT_000813a0;\n      local_b4 = &local_34;\n      local_34 = pppppppuVar29;\n    }\nLAB_00023764:\n    local_9c = (undefined4 *****)0x0;\n    local_ac = (undefined4 *****)0x0;\n    local_94 = (undefined4 *******)0x0;\n    local_a0 = (undefined4 ******)0x0;\n    local_98 = (undefined4 ******)0x0;\nLAB_000237a6:\n    pppppppuVar30 = pppppppuVar29;\n    if (pppppppuVar30 == (undefined4 *******)0x0) {\n      pppppuVar17 = (undefined4 *****)0x1;\nLAB_000237e1:\n      ppppppuVar27 = local_b4[1];\n      local_a8 = local_b4[2];\n      local_a4 = (undefined4 *****)((int)local_9c + (int)pppppuVar17);\n      if (ppppppuVar27 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }\n      }\n      else {\n        bVar41 = local_98 != local_a8;\n        if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }\n        pppppuVar18 = (undefined4 *****)0x0;\n        if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }\n        ppppppuVar27[8] = pppppuVar18;\n        ppppppuVar27[0x12] = local_ac;\n        ppppppuVar27[0x13] = (undefined4 *****)0x0;\n        local_a0 = ppppppuVar27;\n        if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }\n      goto LAB_000238d0;\n    }\n    ppppppuVar27 = pppppppuVar30[3];\n    uVar33 = (int)pppppppuVar30[4] + (int)*ppppppuVar27;\n    uVar38 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27);\n    ppppppuVar27 = local_b4[3];\n    uVar16 = (int)local_b4[4] + (int)*ppppppuVar27;\n    uVar32 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)local_b4[4],(uint)*ppppppuVar27);\n    if (uVar32 < uVar38 || uVar32 - uVar38 < (uint)(uVar16 < uVar33)) {\n      pppppuVar17 = (undefined4 *****)\n                    (uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000);\n      goto LAB_000237e1;\n    }\n    goto LAB_000237a0;\n  }" else (if_statement "if (pppppppuVar29 != (undefined4 *******)0x0) {\n    uVar44 = FUN_0003fad0(*(undefined4 *)(*DAT_000809e8 + 4));\n    iVar15 = FUN_0003e1d0(*(undefined4 *)(*DAT_000809e8 + 4));\n    if ((int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +\n        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c)) == 0 &&\n        (uint)uVar44 + *(uint *)(iVar15 + 0x1c) == 0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n    }\n    else {\n      local_30 = pppppppuVar29[1];\n      local_24 = 0;\n      local_2c = pppppppuVar29[2];\n      local_20 = 0;\n      local_28 = &DAT_000813a0;\n      local_b4 = &local_34;\n      local_34 = pppppppuVar29;\n    }\nLAB_00023764:\n    local_9c = (undefined4 *****)0x0;\n    local_ac = (undefined4 *****)0x0;\n    local_94 = (undefined4 *******)0x0;\n    local_a0 = (undefined4 ******)0x0;\n    local_98 = (undefined4 ******)0x0;\nLAB_000237a6:\n    pppppppuVar30 = pppppppuVar29;\n    if (pppppppuVar30 == (undefined4 *******)0x0) {\n      pppppuVar17 = (undefined4 *****)0x1;\nLAB_000237e1:\n      ppppppuVar27 = local_b4[1];\n      local_a8 = local_b4[2];\n      local_a4 = (undefined4 *****)((int)local_9c + (int)pppppuVar17);\n      if (ppppppuVar27 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }\n      }\n      else {\n        bVar41 = local_98 != local_a8;\n        if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }\n        pppppuVar18 = (undefined4 *****)0x0;\n        if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }\n        ppppppuVar27[8] = pppppuVar18;\n        ppppppuVar27[0x12] = local_ac;\n        ppppppuVar27[0x13] = (undefined4 *****)0x0;\n        local_a0 = ppppppuVar27;\n        if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }\n      goto LAB_000238d0;\n    }\n    ppppppuVar27 = pppppppuVar30[3];\n    uVar33 = (int)pppppppuVar30[4] + (int)*ppppppuVar27;\n    uVar38 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27);\n    ppppppuVar27 = local_b4[3];\n    uVar16 = (int)local_b4[4] + (int)*ppppppuVar27;\n    uVar32 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)local_b4[4],(uint)*ppppppuVar27);\n    if (uVar32 < uVar38 || uVar32 - uVar38 < (uint)(uVar16 < uVar33)) {\n      pppppuVar17 = (undefined4 *****)\n                    (uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000);\n      goto LAB_000237e1;\n    }\n    goto LAB_000237a0;\n  }" if (parenthesized_expression "(pppppppuVar29 != (undefined4 *******)0x0)" ( (binary_expression "pppppppuVar29 != (undefined4 *******)0x0" identifier != (cast_expression "(undefined4 *******)0x0" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n    uVar44 = FUN_0003fad0(*(undefined4 *)(*DAT_000809e8 + 4));\n    iVar15 = FUN_0003e1d0(*(undefined4 *)(*DAT_000809e8 + 4));\n    if ((int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +\n        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c)) == 0 &&\n        (uint)uVar44 + *(uint *)(iVar15 + 0x1c) == 0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n    }\n    else {\n      local_30 = pppppppuVar29[1];\n      local_24 = 0;\n      local_2c = pppppppuVar29[2];\n      local_20 = 0;\n      local_28 = &DAT_000813a0;\n      local_b4 = &local_34;\n      local_34 = pppppppuVar29;\n    }\nLAB_00023764:\n    local_9c = (undefined4 *****)0x0;\n    local_ac = (undefined4 *****)0x0;\n    local_94 = (undefined4 *******)0x0;\n    local_a0 = (undefined4 ******)0x0;\n    local_98 = (undefined4 ******)0x0;\nLAB_000237a6:\n    pppppppuVar30 = pppppppuVar29;\n    if (pppppppuVar30 == (undefined4 *******)0x0) {\n      pppppuVar17 = (undefined4 *****)0x1;\nLAB_000237e1:\n      ppppppuVar27 = local_b4[1];\n      local_a8 = local_b4[2];\n      local_a4 = (undefined4 *****)((int)local_9c + (int)pppppuVar17);\n      if (ppppppuVar27 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }\n      }\n      else {\n        bVar41 = local_98 != local_a8;\n        if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }\n        pppppuVar18 = (undefined4 *****)0x0;\n        if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }\n        ppppppuVar27[8] = pppppuVar18;\n        ppppppuVar27[0x12] = local_ac;\n        ppppppuVar27[0x13] = (undefined4 *****)0x0;\n        local_a0 = ppppppuVar27;\n        if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }\n      goto LAB_000238d0;\n    }\n    ppppppuVar27 = pppppppuVar30[3];\n    uVar33 = (int)pppppppuVar30[4] + (int)*ppppppuVar27;\n    uVar38 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27);\n    ppppppuVar27 = local_b4[3];\n    uVar16 = (int)local_b4[4] + (int)*ppppppuVar27;\n    uVar32 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)local_b4[4],(uint)*ppppppuVar27);\n    if (uVar32 < uVar38 || uVar32 - uVar38 < (uint)(uVar16 < uVar33)) {\n      pppppuVar17 = (undefined4 *****)\n                    (uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000);\n      goto LAB_000237e1;\n    }\n    goto LAB_000237a0;\n  }" { (expression_statement "uVar44 = FUN_0003fad0(*(undefined4 *)(*DAT_000809e8 + 4));" (assignment_expression "uVar44 = FUN_0003fad0(*(undefined4 *)(*DAT_000809e8 + 4))" identifier = (call_expression "FUN_0003fad0(*(undefined4 *)(*DAT_000809e8 + 4))" identifier (argument_list "(*(undefined4 *)(*DAT_000809e8 + 4))" ( (pointer_expression "*(undefined4 *)(*DAT_000809e8 + 4)" * (cast_expression "(undefined4 *)(*DAT_000809e8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*DAT_000809e8 + 4)" ( (binary_expression "*DAT_000809e8 + 4" (pointer_expression "*DAT_000809e8" * identifier) + number_literal) )))) )))) ;) (expression_statement "iVar15 = FUN_0003e1d0(*(undefined4 *)(*DAT_000809e8 + 4));" (assignment_expression "iVar15 = FUN_0003e1d0(*(undefined4 *)(*DAT_000809e8 + 4))" identifier = (call_expression "FUN_0003e1d0(*(undefined4 *)(*DAT_000809e8 + 4))" identifier (argument_list "(*(undefined4 *)(*DAT_000809e8 + 4))" ( (pointer_expression "*(undefined4 *)(*DAT_000809e8 + 4)" * (cast_expression "(undefined4 *)(*DAT_000809e8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*DAT_000809e8 + 4)" ( (binary_expression "*DAT_000809e8 + 4" (pointer_expression "*DAT_000809e8" * identifier) + number_literal) )))) )))) ;) (if_statement "if ((int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +\n        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c)) == 0 &&\n        (uint)uVar44 + *(uint *)(iVar15 + 0x1c) == 0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n    }\n    else {\n      local_30 = pppppppuVar29[1];\n      local_24 = 0;\n      local_2c = pppppppuVar29[2];\n      local_20 = 0;\n      local_28 = &DAT_000813a0;\n      local_b4 = &local_34;\n      local_34 = pppppppuVar29;\n    }" if (parenthesized_expression "((int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +\n        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c)) == 0 &&\n        (uint)uVar44 + *(uint *)(iVar15 + 0x1c) == 0)" ( (binary_expression "(int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +\n        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c)) == 0 &&\n        (uint)uVar44 + *(uint *)(iVar15 + 0x1c) == 0" (binary_expression "(int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +\n        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c)) == 0" (binary_expression "(int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +\n        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c))" (binary_expression "(int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20)" (cast_expression "(int)((ulonglong)uVar44 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar44 >> 0x20)" ( (binary_expression "(ulonglong)uVar44 >> 0x20" (cast_expression "(ulonglong)uVar44" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + (pointer_expression "*(int *)(iVar15 + 0x20)" * (cast_expression "(int *)(iVar15 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x20)" ( (binary_expression "iVar15 + 0x20" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c))" identifier (argument_list "((uint)uVar44,*(uint *)(iVar15 + 0x1c))" ( (cast_expression "(uint)uVar44" ( (type_descriptor "uint" type_identifier) ) identifier) , (pointer_expression "*(uint *)(iVar15 + 0x1c)" * (cast_expression "(uint *)(iVar15 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x1c)" ( (binary_expression "iVar15 + 0x1c" identifier + number_literal) )))) ))))) == number_literal) && (binary_expression "(uint)uVar44 + *(uint *)(iVar15 + 0x1c) == 0" (binary_expression "(uint)uVar44 + *(uint *)(iVar15 + 0x1c)" (cast_expression "(uint)uVar44" ( (type_descriptor "uint" type_identifier) ) identifier) + (pointer_expression "*(uint *)(iVar15 + 0x1c)" * (cast_expression "(uint *)(iVar15 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x1c)" ( (binary_expression "iVar15 + 0x1c" identifier + number_literal) ))))) == number_literal)) )) (compound_statement "{\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n    }" { (expression_statement "pppppppuVar29 = (undefined4 *******)*pppppppuVar29;" (assignment_expression "pppppppuVar29 = (undefined4 *******)*pppppppuVar29" identifier = (cast_expression "(undefined4 *******)*pppppppuVar29" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*pppppppuVar29" * identifier))) ;) }) (else_clause "else {\n      local_30 = pppppppuVar29[1];\n      local_24 = 0;\n      local_2c = pppppppuVar29[2];\n      local_20 = 0;\n      local_28 = &DAT_000813a0;\n      local_b4 = &local_34;\n      local_34 = pppppppuVar29;\n    }" else (compound_statement "{\n      local_30 = pppppppuVar29[1];\n      local_24 = 0;\n      local_2c = pppppppuVar29[2];\n      local_20 = 0;\n      local_28 = &DAT_000813a0;\n      local_b4 = &local_34;\n      local_34 = pppppppuVar29;\n    }" { (expression_statement "local_30 = pppppppuVar29[1];" (assignment_expression "local_30 = pppppppuVar29[1]" identifier = (subscript_expression "pppppppuVar29[1]" identifier [ number_literal ])) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "local_2c = pppppppuVar29[2];" (assignment_expression "local_2c = pppppppuVar29[2]" identifier = (subscript_expression "pppppppuVar29[2]" identifier [ number_literal ])) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_28 = &DAT_000813a0;" (assignment_expression "local_28 = &DAT_000813a0" identifier = (pointer_expression "&DAT_000813a0" & identifier)) ;) (expression_statement "local_b4 = &local_34;" (assignment_expression "local_b4 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "local_34 = pppppppuVar29;" (assignment_expression "local_34 = pppppppuVar29" identifier = identifier) ;) }))) (labeled_statement "LAB_00023764:\n    local_9c = (undefined4 *****)0x0;" statement_identifier : (expression_statement "local_9c = (undefined4 *****)0x0;" (assignment_expression "local_9c = (undefined4 *****)0x0" identifier = (cast_expression "(undefined4 *****)0x0" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;)) (expression_statement "local_ac = (undefined4 *****)0x0;" (assignment_expression "local_ac = (undefined4 *****)0x0" identifier = (cast_expression "(undefined4 *****)0x0" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "local_94 = (undefined4 *******)0x0;" (assignment_expression "local_94 = (undefined4 *******)0x0" identifier = (cast_expression "(undefined4 *******)0x0" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "local_a0 = (undefined4 ******)0x0;" (assignment_expression "local_a0 = (undefined4 ******)0x0" identifier = (cast_expression "(undefined4 ******)0x0" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "local_98 = (undefined4 ******)0x0;" (assignment_expression "local_98 = (undefined4 ******)0x0" identifier = (cast_expression "(undefined4 ******)0x0" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (labeled_statement "LAB_000237a6:\n    pppppppuVar30 = pppppppuVar29;" statement_identifier : (expression_statement "pppppppuVar30 = pppppppuVar29;" (assignment_expression "pppppppuVar30 = pppppppuVar29" identifier = identifier) ;)) (if_statement "if (pppppppuVar30 == (undefined4 *******)0x0) {\n      pppppuVar17 = (undefined4 *****)0x1;\nLAB_000237e1:\n      ppppppuVar27 = local_b4[1];\n      local_a8 = local_b4[2];\n      local_a4 = (undefined4 *****)((int)local_9c + (int)pppppuVar17);\n      if (ppppppuVar27 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }\n      }\n      else {\n        bVar41 = local_98 != local_a8;\n        if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }\n        pppppuVar18 = (undefined4 *****)0x0;\n        if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }\n        ppppppuVar27[8] = pppppuVar18;\n        ppppppuVar27[0x12] = local_ac;\n        ppppppuVar27[0x13] = (undefined4 *****)0x0;\n        local_a0 = ppppppuVar27;\n        if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }\n      goto LAB_000238d0;\n    }" if (parenthesized_expression "(pppppppuVar30 == (undefined4 *******)0x0)" ( (binary_expression "pppppppuVar30 == (undefined4 *******)0x0" identifier == (cast_expression "(undefined4 *******)0x0" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n      pppppuVar17 = (undefined4 *****)0x1;\nLAB_000237e1:\n      ppppppuVar27 = local_b4[1];\n      local_a8 = local_b4[2];\n      local_a4 = (undefined4 *****)((int)local_9c + (int)pppppuVar17);\n      if (ppppppuVar27 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }\n      }\n      else {\n        bVar41 = local_98 != local_a8;\n        if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }\n        pppppuVar18 = (undefined4 *****)0x0;\n        if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }\n        ppppppuVar27[8] = pppppuVar18;\n        ppppppuVar27[0x12] = local_ac;\n        ppppppuVar27[0x13] = (undefined4 *****)0x0;\n        local_a0 = ppppppuVar27;\n        if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }\n      goto LAB_000238d0;\n    }" { (expression_statement "pppppuVar17 = (undefined4 *****)0x1;" (assignment_expression "pppppuVar17 = (undefined4 *****)0x1" identifier = (cast_expression "(undefined4 *****)0x1" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (labeled_statement "LAB_000237e1:\n      ppppppuVar27 = local_b4[1];" statement_identifier : (expression_statement "ppppppuVar27 = local_b4[1];" (assignment_expression "ppppppuVar27 = local_b4[1]" identifier = (subscript_expression "local_b4[1]" identifier [ number_literal ])) ;)) (expression_statement "local_a8 = local_b4[2];" (assignment_expression "local_a8 = local_b4[2]" identifier = (subscript_expression "local_b4[2]" identifier [ number_literal ])) ;) (expression_statement "local_a4 = (undefined4 *****)((int)local_9c + (int)pppppuVar17);" (assignment_expression "local_a4 = (undefined4 *****)((int)local_9c + (int)pppppuVar17)" identifier = (cast_expression "(undefined4 *****)((int)local_9c + (int)pppppuVar17)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_9c + (int)pppppuVar17)" ( (binary_expression "(int)local_9c + (int)pppppuVar17" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppppuVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (ppppppuVar27 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }\n      }\n      else {\n        bVar41 = local_98 != local_a8;\n        if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }\n        pppppuVar18 = (undefined4 *****)0x0;\n        if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }\n        ppppppuVar27[8] = pppppuVar18;\n        ppppppuVar27[0x12] = local_ac;\n        ppppppuVar27[0x13] = (undefined4 *****)0x0;\n        local_a0 = ppppppuVar27;\n        if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }" if (parenthesized_expression "(ppppppuVar27 == local_a0)" ( (binary_expression "ppppppuVar27 == local_a0" identifier == identifier) )) (compound_statement "{\n        if (local_98 != local_a8) {\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }\n      }" { (if_statement "if (local_98 != local_a8) {\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }" if (parenthesized_expression "(local_98 != local_a8)" ( (binary_expression "local_98 != local_a8" identifier != identifier) )) (compound_statement "{\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }" { (if_statement "if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }" if (parenthesized_expression "(local_98 != (undefined4 ******)0x0)" ( (binary_expression "local_98 != (undefined4 ******)0x0" identifier != (cast_expression "(undefined4 ******)0x0" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n            local_98[0xd] = local_94[5];\n          }" { (expression_statement "local_98[0xd] = local_94[5];" (assignment_expression "local_98[0xd] = local_94[5]" (subscript_expression "local_98[0xd]" identifier [ number_literal ]) = (subscript_expression "local_94[5]" identifier [ number_literal ])) ;) })) (goto_statement "goto LAB_000238a1;" goto statement_identifier ;) })) (if_statement "if ((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }" if (parenthesized_expression "((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0))" ( (binary_expression "(local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)" (parenthesized_expression "(local_94 != (undefined4 *******)0x0)" ( (binary_expression "local_94 != (undefined4 *******)0x0" identifier != (cast_expression "(undefined4 *******)0x0" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) && (parenthesized_expression "(iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)" ( (comma_expression "iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0" (assignment_expression "iVar15 = (int)local_b4[5] - (int)local_94[5]" identifier = (binary_expression "(int)local_b4[5] - (int)local_94[5]" (cast_expression "(int)local_b4[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_b4[5]" identifier [ number_literal ])) - (cast_expression "(int)local_94[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_94[5]" identifier [ number_literal ])))) , (binary_expression "iVar15 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }" { (do_statement "do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );" do (compound_statement "{\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          }" { (expression_statement "iVar21 = (int)pppppuVar17 - 1;" (assignment_expression "iVar21 = (int)pppppuVar17 - 1" identifier = (binary_expression "(int)pppppuVar17 - 1" (cast_expression "(int)pppppuVar17" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal)) ;) (if_statement "if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }" if (parenthesized_expression "(iVar21 < 0x10)" ( (binary_expression "iVar21 < 0x10" identifier < number_literal) )) (compound_statement "{\n              pppppuVar17 = (undefined4 *****)0x0;\n            }" { (expression_statement "pppppuVar17 = (undefined4 *****)0x0;" (assignment_expression "pppppuVar17 = (undefined4 *****)0x0" identifier = (cast_expression "(undefined4 *****)0x0" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) }) (else_clause "else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }" else (compound_statement "{\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }" { (expression_statement "pppppuVar17 = pppppuVar17 + -4;" (assignment_expression "pppppuVar17 = pppppuVar17 + -4" identifier = (binary_expression "pppppuVar17 + -4" identifier + number_literal)) ;) (expression_statement "iVar21 = 0xf;" (assignment_expression "iVar21 = 0xf" identifier = number_literal) ;) }))) (if_statement "if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }" if (parenthesized_expression "(iVar15 + 7U < 0xf)" ( (binary_expression "iVar15 + 7U < 0xf" (binary_expression "iVar15 + 7U" identifier + number_literal) < number_literal) )) (compound_statement "{\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }" { (if_statement "if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }" if (parenthesized_expression "(pcVar1 <= local_38)" ( (binary_expression "pcVar1 <= local_38" identifier <= identifier) )) (compound_statement "{\n                local_38 = (char *)FUN_0001ff00(1);\n              }" { (expression_statement "local_38 = (char *)FUN_0001ff00(1);" (assignment_expression "local_38 = (char *)FUN_0001ff00(1)" identifier = (cast_expression "(char *)FUN_0001ff00(1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001ff00(1)" identifier (argument_list "(1)" ( number_literal ))))) ;) })) (expression_statement "local_ac = (undefined4 *****)((int)local_ac + 1);" (assignment_expression "local_ac = (undefined4 *****)((int)local_ac + 1)" identifier = (cast_expression "(undefined4 *****)((int)local_ac + 1)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_ac + 1)" ( (binary_expression "(int)local_ac + 1" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*local_38 = (char)iVar15 * '\x10' + (char)iVar21;" (assignment_expression "*local_38 = (char)iVar15 * '\x10' + (char)iVar21" (pointer_expression "*local_38" * identifier) = (binary_expression "(char)iVar15 * '\x10' + (char)iVar21" (binary_expression "(char)iVar15 * '\x10'" (cast_expression "(char)iVar15" ( (type_descriptor "char" primitive_type) ) identifier) * (char_literal "'\x10'" ' escape_sequence ')) + (cast_expression "(char)iVar21" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "local_38 = local_38 + 1;" (assignment_expression "local_38 = local_38 + 1" identifier = (binary_expression "local_38 + 1" identifier + number_literal)) ;) (break_statement "break;" break ;) })) (if_statement "if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }" if (parenthesized_expression "((int)pcVar1 - (int)local_38 < 3)" ( (binary_expression "(int)pcVar1 - (int)local_38 < 3" (binary_expression "(int)pcVar1 - (int)local_38" (cast_expression "(int)pcVar1" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier)) < number_literal) )) (compound_statement "{\n              local_38 = (char *)FUN_0001ff00(3);\n            }" { (expression_statement "local_38 = (char *)FUN_0001ff00(3);" (assignment_expression "local_38 = (char *)FUN_0001ff00(3)" identifier = (cast_expression "(char *)FUN_0001ff00(3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001ff00(3)" identifier (argument_list "(3)" ( number_literal ))))) ;) })) (expression_statement "*local_38 = (char)iVar21 + -0x80;" (assignment_expression "*local_38 = (char)iVar21 + -0x80" (pointer_expression "*local_38" * identifier) = (binary_expression "(char)iVar21 + -0x80" (cast_expression "(char)iVar21" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal)) ;) (if_statement "if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }" if (parenthesized_expression "(iVar15 < -0x8000)" ( (binary_expression "iVar15 < -0x8000" identifier < number_literal) )) (compound_statement "{\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }" { (expression_statement "iVar15 = iVar15 + 0x8000;" (assignment_expression "iVar15 = iVar15 + 0x8000" identifier = (binary_expression "iVar15 + 0x8000" identifier + number_literal)) ;) (expression_statement "cVar37 = -0x80;" (assignment_expression "cVar37 = -0x80" identifier = number_literal) ;) (expression_statement "cVar28 = '\0';" (assignment_expression "cVar28 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }" else (compound_statement "{\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }" { (if_statement "if (iVar15 < 0x8000) goto code_r0x00024a60;" if (parenthesized_expression "(iVar15 < 0x8000)" ( (binary_expression "iVar15 < 0x8000" identifier < number_literal) )) (goto_statement "goto code_r0x00024a60;" goto statement_identifier ;)) (expression_statement "iVar15 = iVar15 + -0x7fff;" (assignment_expression "iVar15 = iVar15 + -0x7fff" identifier = (binary_expression "iVar15 + -0x7fff" identifier + number_literal)) ;) (expression_statement "cVar37 = '\x7f';" (assignment_expression "cVar37 = '\x7f'" identifier = (char_literal "'\x7f'" ' escape_sequence ')) ;) (expression_statement "cVar28 = -1;" (assignment_expression "cVar28 = -1" identifier = number_literal) ;) }))) (expression_statement "local_ac = (undefined4 *****)((int)local_ac + 3);" (assignment_expression "local_ac = (undefined4 *****)((int)local_ac + 3)" identifier = (cast_expression "(undefined4 *****)((int)local_ac + 3)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_ac + 3)" ( (binary_expression "(int)local_ac + 3" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pcVar24 = local_38 + 2;" (assignment_expression "pcVar24 = local_38 + 2" identifier = (binary_expression "local_38 + 2" identifier + number_literal)) ;) (expression_statement "local_38[1] = cVar37;" (assignment_expression "local_38[1] = cVar37" (subscript_expression "local_38[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_38 = local_38 + 3;" (assignment_expression "local_38 = local_38 + 3" identifier = (binary_expression "local_38 + 3" identifier + number_literal)) ;) (expression_statement "*pcVar24 = cVar28;" (assignment_expression "*pcVar24 = cVar28" (pointer_expression "*pcVar24" * identifier) = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) }) (else_clause "else {\n        bVar41 = local_98 != local_a8;\n        if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }\n        pppppuVar18 = (undefined4 *****)0x0;\n        if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }\n        ppppppuVar27[8] = pppppuVar18;\n        ppppppuVar27[0x12] = local_ac;\n        ppppppuVar27[0x13] = (undefined4 *****)0x0;\n        local_a0 = ppppppuVar27;\n        if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }" else (compound_statement "{\n        bVar41 = local_98 != local_a8;\n        if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }\n        pppppuVar18 = (undefined4 *****)0x0;\n        if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }\n        ppppppuVar27[8] = pppppuVar18;\n        ppppppuVar27[0x12] = local_ac;\n        ppppppuVar27[0x13] = (undefined4 *****)0x0;\n        local_a0 = ppppppuVar27;\n        if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }" { (expression_statement "bVar41 = local_98 != local_a8;" (assignment_expression "bVar41 = local_98 != local_a8" identifier = (binary_expression "local_98 != local_a8" identifier != identifier)) ;) (if_statement "if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }" if (parenthesized_expression "(local_98 != (undefined4 ******)0x0 && bVar41)" ( (binary_expression "local_98 != (undefined4 ******)0x0 && bVar41" (binary_expression "local_98 != (undefined4 ******)0x0" identifier != (cast_expression "(undefined4 ******)0x0" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) && identifier) )) (compound_statement "{\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }" { (expression_statement "local_98[0xd] = local_94[5];" (assignment_expression "local_98[0xd] = local_94[5]" (subscript_expression "local_98[0xd]" identifier [ number_literal ]) = (subscript_expression "local_94[5]" identifier [ number_literal ])) ;) (expression_statement "bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;" (assignment_expression "bVar41 = local_98 != (undefined4 ******)0x0 && bVar41" identifier = (binary_expression "local_98 != (undefined4 ******)0x0 && bVar41" (binary_expression "local_98 != (undefined4 ******)0x0" identifier != (cast_expression "(undefined4 ******)0x0" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) && identifier)) ;) })) (expression_statement "pppppuVar18 = (undefined4 *****)0x0;" (assignment_expression "pppppuVar18 = (undefined4 *****)0x0" identifier = (cast_expression "(undefined4 *****)0x0" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (if_statement "if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }" if (parenthesized_expression "(local_a0 != (undefined4 ******)0x0)" ( (binary_expression "local_a0 != (undefined4 ******)0x0" identifier != (cast_expression "(undefined4 ******)0x0" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }" { (expression_statement "local_9c = (undefined4 *****)0x0;" (assignment_expression "local_9c = (undefined4 *****)0x0" identifier = (cast_expression "(undefined4 *****)0x0" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);" (assignment_expression "local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13])" (subscript_expression "local_a0[0x15]" identifier [ number_literal ]) = (cast_expression "(undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13])" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13])" ( (binary_expression "-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]" (unary_expression "-(uint)(local_ac < local_a0[0x12])" - (call_expression "(uint)(local_ac < local_a0[0x12])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_ac < local_a0[0x12])" ( (binary_expression "local_ac < local_a0[0x12]" identifier < (subscript_expression "local_a0[0x12]" identifier [ number_literal ])) )))) - (cast_expression "(int)local_a0[0x13]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_a0[0x13]" identifier [ number_literal ]))) )))) ;) (expression_statement "local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);" (assignment_expression "local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12])" (subscript_expression "local_a0[0x14]" identifier [ number_literal ]) = (cast_expression "(undefined4 *****)((int)local_ac - (int)local_a0[0x12])" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_ac - (int)local_a0[0x12])" ( (binary_expression "(int)local_ac - (int)local_a0[0x12]" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_a0[0x12]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_a0[0x12]" identifier [ number_literal ]))) )))) ;) (expression_statement "local_a0[9] = local_a4;" (assignment_expression "local_a0[9] = local_a4" (subscript_expression "local_a0[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;" (assignment_expression "*(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 4) + (int)local_a4" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);" (assignment_expression "pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8])" identifier = (cast_expression "(undefined4 *****)((int)local_a0[9] + (int)local_a0[8])" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_a0[9] + (int)local_a0[8])" ( (binary_expression "(int)local_a0[9] + (int)local_a0[8]" (cast_expression "(int)local_a0[9]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_a0[9]" identifier [ number_literal ])) + (cast_expression "(int)local_a0[8]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_a0[8]" identifier [ number_literal ]))) )))) ;) (expression_statement "local_a4 = pppppuVar17;" (assignment_expression "local_a4 = pppppuVar17" identifier = identifier) ;) })) (expression_statement "ppppppuVar27[8] = pppppuVar18;" (assignment_expression "ppppppuVar27[8] = pppppuVar18" (subscript_expression "ppppppuVar27[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppppppuVar27[0x12] = local_ac;" (assignment_expression "ppppppuVar27[0x12] = local_ac" (subscript_expression "ppppppuVar27[0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppppppuVar27[0x13] = (undefined4 *****)0x0;" (assignment_expression "ppppppuVar27[0x13] = (undefined4 *****)0x0" (subscript_expression "ppppppuVar27[0x13]" identifier [ number_literal ]) = (cast_expression "(undefined4 *****)0x0" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "local_a0 = ppppppuVar27;" (assignment_expression "local_a0 = ppppppuVar27" identifier = identifier) ;) (if_statement "if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }" if (parenthesized_expression "(bVar41)" ( identifier )) (compound_statement "{\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }" { (labeled_statement "LAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }" statement_identifier : (if_statement "if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }" if (parenthesized_expression "(local_a8 != (undefined4 ******)0x0)" ( (binary_expression "local_a8 != (undefined4 ******)0x0" identifier != (cast_expression "(undefined4 ******)0x0" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }" { (expression_statement "local_a8[0xc] = local_b4[5];" (assignment_expression "local_a8[0xc] = local_b4[5]" (subscript_expression "local_a8[0xc]" identifier [ number_literal ]) = (subscript_expression "local_b4[5]" identifier [ number_literal ])) ;) (expression_statement "pppppuVar18 = local_a0[0x12];" (assignment_expression "pppppuVar18 = local_a0[0x12]" identifier = (subscript_expression "local_a0[0x12]" identifier [ number_literal ])) ;) (expression_statement "pppppuVar4 = local_a0[0x13];" (assignment_expression "pppppuVar4 = local_a0[0x13]" identifier = (subscript_expression "local_a0[0x13]" identifier [ number_literal ])) ;) (expression_statement "local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);" (assignment_expression "local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12])" (subscript_expression "local_a8[0xe]" identifier [ number_literal ]) = (cast_expression "(undefined4 *****)((int)local_ac - (int)local_a0[0x12])" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_ac - (int)local_a0[0x12])" ( (binary_expression "(int)local_ac - (int)local_a0[0x12]" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_a0[0x12]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_a0[0x12]" identifier [ number_literal ]))) )))) ;) (expression_statement "local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);" (assignment_expression "local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4)" (subscript_expression "local_a8[0xf]" identifier [ number_literal ]) = (cast_expression "(undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4)" ( (binary_expression "-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4" (unary_expression "-(uint)(local_ac < pppppuVar18)" - (call_expression "(uint)(local_ac < pppppuVar18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_ac < pppppuVar18)" ( (binary_expression "local_ac < pppppuVar18" identifier < identifier) )))) - (cast_expression "(int)pppppuVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_a8[4] = local_9c;" (assignment_expression "local_a8[4] = local_9c" (subscript_expression "local_a8[4]" identifier [ number_literal ]) = identifier) ;) }))) }) (else_clause "else {\n          local_a8 = local_98;\n        }" else (compound_statement "{\n          local_a8 = local_98;\n        }" { (expression_statement "local_a8 = local_98;" (assignment_expression "local_a8 = local_98" identifier = identifier) ;) }))) }))) (goto_statement "goto LAB_000238d0;" goto statement_identifier ;) })) (expression_statement "ppppppuVar27 = pppppppuVar30[3];" (assignment_expression "ppppppuVar27 = pppppppuVar30[3]" identifier = (subscript_expression "pppppppuVar30[3]" identifier [ number_literal ])) ;) (expression_statement "uVar33 = (int)pppppppuVar30[4] + (int)*ppppppuVar27;" (assignment_expression "uVar33 = (int)pppppppuVar30[4] + (int)*ppppppuVar27" identifier = (binary_expression "(int)pppppppuVar30[4] + (int)*ppppppuVar27" (cast_expression "(int)pppppppuVar30[4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppuVar30[4]" identifier [ number_literal ])) + (cast_expression "(int)*ppppppuVar27" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*ppppppuVar27" * identifier)))) ;) (expression_statement "uVar38 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27);" (assignment_expression "uVar38 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27)" identifier = (binary_expression "(int)ppppppuVar27[1] + (uint)CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27)" (cast_expression "(int)ppppppuVar27[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppppppuVar27[1]" identifier [ number_literal ])) + (cast_expression "(uint)CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27)" identifier (argument_list "((uint)pppppppuVar30[4],(uint)*ppppppuVar27)" ( (cast_expression "(uint)pppppppuVar30[4]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppuVar30[4]" identifier [ number_literal ])) , (binary_expression "(uint)*ppppppuVar27" (parenthesized_expression "(uint)" ( identifier )) * identifier) )))))) ;) (expression_statement "ppppppuVar27 = local_b4[3];" (assignment_expression "ppppppuVar27 = local_b4[3]" identifier = (subscript_expression "local_b4[3]" identifier [ number_literal ])) ;) (expression_statement "uVar16 = (int)local_b4[4] + (int)*ppppppuVar27;" (assignment_expression "uVar16 = (int)local_b4[4] + (int)*ppppppuVar27" identifier = (binary_expression "(int)local_b4[4] + (int)*ppppppuVar27" (cast_expression "(int)local_b4[4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_b4[4]" identifier [ number_literal ])) + (cast_expression "(int)*ppppppuVar27" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*ppppppuVar27" * identifier)))) ;) (expression_statement "uVar32 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)local_b4[4],(uint)*ppppppuVar27);" (assignment_expression "uVar32 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)local_b4[4],(uint)*ppppppuVar27)" identifier = (binary_expression "(int)ppppppuVar27[1] + (uint)CARRY4((uint)local_b4[4],(uint)*ppppppuVar27)" (cast_expression "(int)ppppppuVar27[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppppppuVar27[1]" identifier [ number_literal ])) + (cast_expression "(uint)CARRY4((uint)local_b4[4],(uint)*ppppppuVar27)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)local_b4[4],(uint)*ppppppuVar27)" identifier (argument_list "((uint)local_b4[4],(uint)*ppppppuVar27)" ( (cast_expression "(uint)local_b4[4]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_b4[4]" identifier [ number_literal ])) , (binary_expression "(uint)*ppppppuVar27" (parenthesized_expression "(uint)" ( identifier )) * identifier) )))))) ;) (if_statement "if (uVar32 < uVar38 || uVar32 - uVar38 < (uint)(uVar16 < uVar33)) {\n      pppppuVar17 = (undefined4 *****)\n                    (uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000);\n      goto LAB_000237e1;\n    }" if (parenthesized_expression "(uVar32 < uVar38 || uVar32 - uVar38 < (uint)(uVar16 < uVar33))" ( (binary_expression "uVar32 < uVar38 || uVar32 - uVar38 < (uint)(uVar16 < uVar33)" (binary_expression "uVar32 < uVar38" identifier < identifier) || (binary_expression "uVar32 - uVar38 < (uint)(uVar16 < uVar33)" (binary_expression "uVar32 - uVar38" identifier - identifier) < (call_expression "(uint)(uVar16 < uVar33)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar16 < uVar33)" ( (binary_expression "uVar16 < uVar33" identifier < identifier) ))))) )) (compound_statement "{\n      pppppuVar17 = (undefined4 *****)\n                    (uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000);\n      goto LAB_000237e1;\n    }" { (expression_statement "pppppuVar17 = (undefined4 *****)\n                    (uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000);" (assignment_expression "pppppuVar17 = (undefined4 *****)\n                    (uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000)" identifier = (cast_expression "(undefined4 *****)\n                    (uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000)" ( (binary_expression "uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000" (binary_expression "uVar33 - uVar16 >> 2" (binary_expression "uVar33 - uVar16" identifier - identifier) >> number_literal) | (binary_expression "((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000" (parenthesized_expression "((uVar38 - uVar32) - (uint)(uVar33 < uVar16))" ( (binary_expression "(uVar38 - uVar32) - (uint)(uVar33 < uVar16)" (parenthesized_expression "(uVar38 - uVar32)" ( (binary_expression "uVar38 - uVar32" identifier - identifier) )) - (call_expression "(uint)(uVar33 < uVar16)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar33 < uVar16)" ( (binary_expression "uVar33 < uVar16" identifier < identifier) )))) )) * number_literal)) )))) ;) (goto_statement "goto LAB_000237e1;" goto statement_identifier ;) })) (goto_statement "goto LAB_000237a0;" goto statement_identifier ;) })))) (expression_statement "local_a4 = (undefined4 *****)0x0;" (assignment_expression "local_a4 = (undefined4 *****)0x0" identifier = (cast_expression "(undefined4 *****)0x0" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "local_ac = (undefined4 *****)0x0;" (assignment_expression "local_ac = (undefined4 *****)0x0" identifier = (cast_expression "(undefined4 *****)0x0" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (labeled_statement "LAB_00023a3f:\n  *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;" statement_identifier : (expression_statement "*(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;" (assignment_expression "*(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 4) + (int)local_a4" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (expression_statement "local_68 = FUN_0001ff70(local_ac,&local_38);" (assignment_expression "local_68 = FUN_0001ff70(local_ac,&local_38)" identifier = (call_expression "FUN_0001ff70(local_ac,&local_38)" identifier (argument_list "(local_ac,&local_38)" ( identifier , (pointer_expression "&local_38" & identifier) )))) ;) (expression_statement "*(uint *)(param_1 + 0x28) = local_68;" (assignment_expression "*(uint *)(param_1 + 0x28) = local_68" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(param_1 + 8) = local_68 - *(uint *)(param_1 + 0x10);" (assignment_expression "*(uint *)(param_1 + 8) = local_68 - *(uint *)(param_1 + 0x10)" (pointer_expression "*(uint *)(param_1 + 8)" * (cast_expression "(uint *)(param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = (binary_expression "local_68 - *(uint *)(param_1 + 0x10)" identifier - (pointer_expression "*(uint *)(param_1 + 0x10)" * (cast_expression "(uint *)(param_1 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "uVar16 = DAT_00080ca4;" (assignment_expression "uVar16 = DAT_00080ca4" identifier = identifier) ;) (expression_statement "*(uint *)(param_1 + 0xc) =\n       -(uint)(local_68 < *(uint *)(param_1 + 0x10)) - *(int *)(param_1 + 0x14);" (assignment_expression "*(uint *)(param_1 + 0xc) =\n       -(uint)(local_68 < *(uint *)(param_1 + 0x10)) - *(int *)(param_1 + 0x14)" (pointer_expression "*(uint *)(param_1 + 0xc)" * (cast_expression "(uint *)(param_1 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "-(uint)(local_68 < *(uint *)(param_1 + 0x10)) - *(int *)(param_1 + 0x14)" (unary_expression "-(uint)(local_68 < *(uint *)(param_1 + 0x10))" - (call_expression "(uint)(local_68 < *(uint *)(param_1 + 0x10))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_68 < *(uint *)(param_1 + 0x10))" ( (binary_expression "local_68 < *(uint *)(param_1 + 0x10)" identifier < (pointer_expression "*(uint *)(param_1 + 0x10)" * (cast_expression "(uint *)(param_1 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) )))) - (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x2c) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x2c)" * (cast_expression "(undefined4 *)(param_1 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x18) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x18)" * (cast_expression "(undefined4 *)(param_1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x1c)" * (cast_expression "(undefined4 *)(param_1 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x20) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x20) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x20)" * (cast_expression "(undefined4 *)(param_1 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(param_1 + 0x24) = uVar16;" (assignment_expression "*(uint *)(param_1 + 0x24) = uVar16" (pointer_expression "*(uint *)(param_1 + 0x24)" * (cast_expression "(uint *)(param_1 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar32 = (int)pcVar1 - (int)(pcVar14 + local_68) >> 0x1f;" (assignment_expression "uVar32 = (int)pcVar1 - (int)(pcVar14 + local_68) >> 0x1f" identifier = (binary_expression "(int)pcVar1 - (int)(pcVar14 + local_68) >> 0x1f" (binary_expression "(int)pcVar1 - (int)(pcVar14 + local_68)" (cast_expression "(int)pcVar1" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)(pcVar14 + local_68)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar14 + local_68)" ( (binary_expression "pcVar14 + local_68" identifier + identifier) )))) >> number_literal)) ;) (expression_statement "uVar33 = (int)((ulonglong)uVar36 * (ulonglong)uVar16 >> 0x20) + iVar26 * uVar16;" (assignment_expression "uVar33 = (int)((ulonglong)uVar36 * (ulonglong)uVar16 >> 0x20) + iVar26 * uVar16" identifier = (binary_expression "(int)((ulonglong)uVar36 * (ulonglong)uVar16 >> 0x20) + iVar26 * uVar16" (cast_expression "(int)((ulonglong)uVar36 * (ulonglong)uVar16 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar36 * (ulonglong)uVar16 >> 0x20)" ( (binary_expression "(ulonglong)uVar36 * (ulonglong)uVar16 >> 0x20" (binary_expression "(ulonglong)uVar36 * (ulonglong)uVar16" (cast_expression "(ulonglong)uVar36" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)uVar16" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) >> number_literal) ))) + (binary_expression "iVar26 * uVar16" identifier * identifier))) ;) (if_statement "if (uVar32 < uVar33 ||\n      uVar32 - uVar33 <\n      (uint)((uint)((int)pcVar1 - (int)(pcVar14 + local_68)) <\n            (uint)((ulonglong)uVar36 * (ulonglong)uVar16))) {\n    FUN_0001ff00(uVar16 * uVar36);\n    uVar16 = DAT_00080ca4;\n  }" if (parenthesized_expression "(uVar32 < uVar33 ||\n      uVar32 - uVar33 <\n      (uint)((uint)((int)pcVar1 - (int)(pcVar14 + local_68)) <\n            (uint)((ulonglong)uVar36 * (ulonglong)uVar16)))" ( (binary_expression "uVar32 < uVar33 ||\n      uVar32 - uVar33 <\n      (uint)((uint)((int)pcVar1 - (int)(pcVar14 + local_68)) <\n            (uint)((ulonglong)uVar36 * (ulonglong)uVar16))" (binary_expression "uVar32 < uVar33" identifier < identifier) || (binary_expression "uVar32 - uVar33 <\n      (uint)((uint)((int)pcVar1 - (int)(pcVar14 + local_68)) <\n            (uint)((ulonglong)uVar36 * (ulonglong)uVar16))" (binary_expression "uVar32 - uVar33" identifier - identifier) < (call_expression "(uint)((uint)((int)pcVar1 - (int)(pcVar14 + local_68)) <\n            (uint)((ulonglong)uVar36 * (ulonglong)uVar16))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)((int)pcVar1 - (int)(pcVar14 + local_68)) <\n            (uint)((ulonglong)uVar36 * (ulonglong)uVar16))" ( (binary_expression "(uint)((int)pcVar1 - (int)(pcVar14 + local_68)) <\n            (uint)((ulonglong)uVar36 * (ulonglong)uVar16)" (call_expression "(uint)((int)pcVar1 - (int)(pcVar14 + local_68))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pcVar1 - (int)(pcVar14 + local_68))" ( (binary_expression "(int)pcVar1 - (int)(pcVar14 + local_68)" (cast_expression "(int)pcVar1" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)(pcVar14 + local_68)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar14 + local_68)" ( (binary_expression "pcVar14 + local_68" identifier + identifier) )))) ))) < (call_expression "(uint)((ulonglong)uVar36 * (ulonglong)uVar16)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar36 * (ulonglong)uVar16)" ( (binary_expression "(ulonglong)uVar36 * (ulonglong)uVar16" (cast_expression "(ulonglong)uVar36" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)uVar16" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) )))) ))))) )) (compound_statement "{\n    FUN_0001ff00(uVar16 * uVar36);\n    uVar16 = DAT_00080ca4;\n  }" { (expression_statement "FUN_0001ff00(uVar16 * uVar36);" (call_expression "FUN_0001ff00(uVar16 * uVar36)" identifier (argument_list "(uVar16 * uVar36)" ( (binary_expression "uVar16 * uVar36" identifier * identifier) ))) ;) (expression_statement "uVar16 = DAT_00080ca4;" (assignment_expression "uVar16 = DAT_00080ca4" identifier = identifier) ;) })) (expression_statement "local_68 = uVar16 * uVar36 + local_68;" (assignment_expression "local_68 = uVar16 * uVar36 + local_68" identifier = (binary_expression "uVar16 * uVar36 + local_68" (binary_expression "uVar16 * uVar36" identifier * identifier) + identifier)) ;) (expression_statement "uVar36 = *(uint *)(param_3 + 0x24);" (assignment_expression "uVar36 = *(uint *)(param_3 + 0x24)" identifier = (pointer_expression "*(uint *)(param_3 + 0x24)" * (cast_expression "(uint *)(param_3 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x24)" ( (binary_expression "param_3 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "local_a0 = (undefined4 ******)(pcVar14 + local_68);" (assignment_expression "local_a0 = (undefined4 ******)(pcVar14 + local_68)" identifier = (cast_expression "(undefined4 ******)(pcVar14 + local_68)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(pcVar14 + local_68)" ( (binary_expression "pcVar14 + local_68" identifier + identifier) )))) ;) (expression_statement "*(uint *)(param_1 + 0x34) = local_68;" (assignment_expression "*(uint *)(param_1 + 0x34) = local_68" (pointer_expression "*(uint *)(param_1 + 0x34)" * (cast_expression "(uint *)(param_1 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar16 = *(uint *)(param_3 + 0x28);" (assignment_expression "uVar16 = *(uint *)(param_3 + 0x28)" identifier = (pointer_expression "*(uint *)(param_3 + 0x28)" * (cast_expression "(uint *)(param_3 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x28)" ( (binary_expression "param_3 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x38) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x38) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x38)" * (cast_expression "(undefined4 *)(param_1 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar5 = *(code **)(param_3 + 0x80);" (assignment_expression "pcVar5 = *(code **)(param_3 + 0x80)" identifier = (pointer_expression "*(code **)(param_3 + 0x80)" * (cast_expression "(code **)(param_3 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x80)" ( (binary_expression "param_3 + 0x80" identifier + number_literal) ))))) ;) (if_statement "if (DAT_00078240 != 0) {\n    local_8c = 0;\n    puVar20 = (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0x180);\n    iVar26 = DAT_00078240;\nLAB_00023b80:\n    local_5c = iVar26;\n    local_9c = *(undefined4 ******)(local_5c + 8);\n    if (*(int *)(local_5c + 4) == 0) {\n      local_54 = (uint)DAT_00078250 * 0x294 + (int)local_9c;\n      if (local_54 <= local_9c) {\n        local_68 = local_68 + local_8c * uVar36;\n        uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28));\n        goto LAB_0002441d;\n      }\n    }\n    else {\n      local_54 = (uint)DAT_0007824e * 0x294 + (int)local_9c;\n      iVar26 = *(int *)(local_5c + 4);\n      if (local_54 <= local_9c) goto LAB_00023b80;\n    }\nLAB_00023bb7:\n    *(int *)((int)local_9c + 0x18) = local_8c;\n    iVar26 = *(int *)((int)local_9c + 0x8c);\n    if (iVar26 != 0) {\n      local_a8 = (undefined4 ******)local_8c;\nLAB_00023bdc:\n      local_64 = iVar26;\n      puVar6 = *(undefined4 **)(local_64 + 8);\n      if (*(int *)(local_64 + 4) == 0) {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10;\n        if (local_70 <= puVar6) {\n          local_8c = (int)local_a8;\n          iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n          goto LAB_000243a4;\n        }\n      }\n      else {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10;\n        iVar26 = *(int *)(local_64 + 4);\n        if (local_70 <= puVar6) goto LAB_00023bdc;\n      }\n      uVar32 = puVar6[4];\n      do {\n        if ((undefined4 *****)uVar32 != local_9c) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }\n        iVar26 = puVar6[1];\n        if (iVar26 == 0) {\n          local_b4 = (undefined4 *******)puVar6[6];\n          if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n          piVar25 = (int *)puVar6[8];\n          if (piVar25 == (int *)0x0) goto LAB_0002402d;\nLAB_00024237:\n          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n          goto LAB_00023ff8;\n        }\n        if ((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47) {\n          if ((int *)puVar6[5] == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }\n          uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n          iVar15 = FUN_0003e1d0(iVar26);\n          iVar21 = FUN_0003e1d0(uVar13);\n          if (iVar15 != iVar21) {\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }\n          lVar45 = FUN_0003fad0(iVar26);\n          lVar46 = FUN_0003fad0(uVar13);\n          *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n        }\n        else {\n          uVar44 = FUN_0003fad0(iVar26);\n          iVar21 = FUN_0003e1d0(iVar26);\n          uVar33 = (uint)uVar44 + puVar6[2];\n          uVar32 = *(uint *)(iVar21 + 0x1c);\n          iVar15 = *(int *)(iVar21 + 0x20);\n          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);\n          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);\n        }\n        bVar11 = FUN_0003dc90(iVar26);\n        *(byte *)(puVar6 + 10) = *(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04';\n        if (((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&\n           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) {\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;\n        }\n        if (((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&\n           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))) {\n          puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);\n          pbVar35 = (byte *)*puVar23;\n          if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }\n          else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }\n          iVar15 = FUN_0003ddd0(iVar26);\n          if (iVar15 == 0) {\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }\n          else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }\nLAB_00023df1:\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;\n          *(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);\n        }\n        iVar15 = FUN_0003dc20(iVar26);\n        if (((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||\n           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)) {\n          iVar15 = FUN_0003dd80(iVar26);\n          if (iVar15 != 0) goto LAB_0002410f;\n          if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }\n          else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }\nLAB_0002402d:\n          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;\n          if (uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }\n          (*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);\n          local_a0 = (undefined4 ******)((int)local_a0 + uVar36);\n          puVar6[9] = local_a8;\n          puVar7 = (uint *)puVar6[5];\n          if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {\n            puVar7[3] = (int)local_a8 - local_8c;\n          }\n          local_a8 = (undefined4 ******)((int)local_a8 + 1);\n          if ((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          FUN_0003dd80(iVar26);\nLAB_0002410f:\n          if (puVar6[6] != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (puVar6[8] != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          iVar15 = FUN_00041590(iVar26);\n          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }\n        }\n        if (local_70 <= puVar6 + 0x10) goto LAB_00024380;\n        uVar32 = puVar6[0x14];\n        puVar6 = puVar6 + 0x10;\n      } while( true );\n    }\n    goto LAB_000243a4;\n  }" if (parenthesized_expression "(DAT_00078240 != 0)" ( (binary_expression "DAT_00078240 != 0" identifier != number_literal) )) (compound_statement "{\n    local_8c = 0;\n    puVar20 = (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0x180);\n    iVar26 = DAT_00078240;\nLAB_00023b80:\n    local_5c = iVar26;\n    local_9c = *(undefined4 ******)(local_5c + 8);\n    if (*(int *)(local_5c + 4) == 0) {\n      local_54 = (uint)DAT_00078250 * 0x294 + (int)local_9c;\n      if (local_54 <= local_9c) {\n        local_68 = local_68 + local_8c * uVar36;\n        uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28));\n        goto LAB_0002441d;\n      }\n    }\n    else {\n      local_54 = (uint)DAT_0007824e * 0x294 + (int)local_9c;\n      iVar26 = *(int *)(local_5c + 4);\n      if (local_54 <= local_9c) goto LAB_00023b80;\n    }\nLAB_00023bb7:\n    *(int *)((int)local_9c + 0x18) = local_8c;\n    iVar26 = *(int *)((int)local_9c + 0x8c);\n    if (iVar26 != 0) {\n      local_a8 = (undefined4 ******)local_8c;\nLAB_00023bdc:\n      local_64 = iVar26;\n      puVar6 = *(undefined4 **)(local_64 + 8);\n      if (*(int *)(local_64 + 4) == 0) {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10;\n        if (local_70 <= puVar6) {\n          local_8c = (int)local_a8;\n          iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n          goto LAB_000243a4;\n        }\n      }\n      else {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10;\n        iVar26 = *(int *)(local_64 + 4);\n        if (local_70 <= puVar6) goto LAB_00023bdc;\n      }\n      uVar32 = puVar6[4];\n      do {\n        if ((undefined4 *****)uVar32 != local_9c) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }\n        iVar26 = puVar6[1];\n        if (iVar26 == 0) {\n          local_b4 = (undefined4 *******)puVar6[6];\n          if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n          piVar25 = (int *)puVar6[8];\n          if (piVar25 == (int *)0x0) goto LAB_0002402d;\nLAB_00024237:\n          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n          goto LAB_00023ff8;\n        }\n        if ((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47) {\n          if ((int *)puVar6[5] == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }\n          uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n          iVar15 = FUN_0003e1d0(iVar26);\n          iVar21 = FUN_0003e1d0(uVar13);\n          if (iVar15 != iVar21) {\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }\n          lVar45 = FUN_0003fad0(iVar26);\n          lVar46 = FUN_0003fad0(uVar13);\n          *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n        }\n        else {\n          uVar44 = FUN_0003fad0(iVar26);\n          iVar21 = FUN_0003e1d0(iVar26);\n          uVar33 = (uint)uVar44 + puVar6[2];\n          uVar32 = *(uint *)(iVar21 + 0x1c);\n          iVar15 = *(int *)(iVar21 + 0x20);\n          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);\n          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);\n        }\n        bVar11 = FUN_0003dc90(iVar26);\n        *(byte *)(puVar6 + 10) = *(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04';\n        if (((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&\n           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) {\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;\n        }\n        if (((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&\n           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))) {\n          puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);\n          pbVar35 = (byte *)*puVar23;\n          if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }\n          else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }\n          iVar15 = FUN_0003ddd0(iVar26);\n          if (iVar15 == 0) {\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }\n          else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }\nLAB_00023df1:\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;\n          *(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);\n        }\n        iVar15 = FUN_0003dc20(iVar26);\n        if (((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||\n           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)) {\n          iVar15 = FUN_0003dd80(iVar26);\n          if (iVar15 != 0) goto LAB_0002410f;\n          if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }\n          else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }\nLAB_0002402d:\n          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;\n          if (uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }\n          (*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);\n          local_a0 = (undefined4 ******)((int)local_a0 + uVar36);\n          puVar6[9] = local_a8;\n          puVar7 = (uint *)puVar6[5];\n          if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {\n            puVar7[3] = (int)local_a8 - local_8c;\n          }\n          local_a8 = (undefined4 ******)((int)local_a8 + 1);\n          if ((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          FUN_0003dd80(iVar26);\nLAB_0002410f:\n          if (puVar6[6] != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (puVar6[8] != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          iVar15 = FUN_00041590(iVar26);\n          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }\n        }\n        if (local_70 <= puVar6 + 0x10) goto LAB_00024380;\n        uVar32 = puVar6[0x14];\n        puVar6 = puVar6 + 0x10;\n      } while( true );\n    }\n    goto LAB_000243a4;\n  }" { (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" identifier = number_literal) ;) (expression_statement "puVar20 = (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0x180);" (assignment_expression "puVar20 = (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0x180)" identifier = (cast_expression "(undefined4 *)(PTR__bfd_std_section_00077fa0 + 0x180)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_00077fa0 + 0x180)" ( (binary_expression "PTR__bfd_std_section_00077fa0 + 0x180" identifier + number_literal) )))) ;) (expression_statement "iVar26 = DAT_00078240;" (assignment_expression "iVar26 = DAT_00078240" identifier = identifier) ;) (labeled_statement "LAB_00023b80:\n    local_5c = iVar26;" statement_identifier : (expression_statement "local_5c = iVar26;" (assignment_expression "local_5c = iVar26" identifier = identifier) ;)) (expression_statement "local_9c = *(undefined4 ******)(local_5c + 8);" (assignment_expression "local_9c = *(undefined4 ******)(local_5c + 8)" identifier = (pointer_expression "*(undefined4 ******)(local_5c + 8)" * (cast_expression "(undefined4 ******)(local_5c + 8)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(local_5c + 8)" ( (binary_expression "local_5c + 8" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(local_5c + 4) == 0) {\n      local_54 = (uint)DAT_00078250 * 0x294 + (int)local_9c;\n      if (local_54 <= local_9c) {\n        local_68 = local_68 + local_8c * uVar36;\n        uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28));\n        goto LAB_0002441d;\n      }\n    }\n    else {\n      local_54 = (uint)DAT_0007824e * 0x294 + (int)local_9c;\n      iVar26 = *(int *)(local_5c + 4);\n      if (local_54 <= local_9c) goto LAB_00023b80;\n    }" if (parenthesized_expression "(*(int *)(local_5c + 4) == 0)" ( (binary_expression "*(int *)(local_5c + 4) == 0" (pointer_expression "*(int *)(local_5c + 4)" * (cast_expression "(int *)(local_5c + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_5c + 4)" ( (binary_expression "local_5c + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      local_54 = (uint)DAT_00078250 * 0x294 + (int)local_9c;\n      if (local_54 <= local_9c) {\n        local_68 = local_68 + local_8c * uVar36;\n        uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28));\n        goto LAB_0002441d;\n      }\n    }" { (expression_statement "local_54 = (uint)DAT_00078250 * 0x294 + (int)local_9c;" (assignment_expression "local_54 = (uint)DAT_00078250 * 0x294 + (int)local_9c" identifier = (binary_expression "(uint)DAT_00078250 * 0x294 + (int)local_9c" (binary_expression "(uint)DAT_00078250 * 0x294" (cast_expression "(uint)DAT_00078250" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) + (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (local_54 <= local_9c) {\n        local_68 = local_68 + local_8c * uVar36;\n        uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28));\n        goto LAB_0002441d;\n      }" if (parenthesized_expression "(local_54 <= local_9c)" ( (binary_expression "local_54 <= local_9c" identifier <= identifier) )) (compound_statement "{\n        local_68 = local_68 + local_8c * uVar36;\n        uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28));\n        goto LAB_0002441d;\n      }" { (expression_statement "local_68 = local_68 + local_8c * uVar36;" (assignment_expression "local_68 = local_68 + local_8c * uVar36" identifier = (binary_expression "local_68 + local_8c * uVar36" identifier + (binary_expression "local_8c * uVar36" identifier * identifier))) ;) (expression_statement "uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28));" (assignment_expression "uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28))" identifier = (call_expression "FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28))" identifier (argument_list "(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28))" ( (binary_expression "local_68 - *(uint *)(param_1 + 0x34)" identifier - (pointer_expression "*(uint *)(param_1 + 0x34)" * (cast_expression "(uint *)(param_1 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) , (binary_expression "-(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38)" (unary_expression "-(uint)(local_68 < *(uint *)(param_1 + 0x34))" - (call_expression "(uint)(local_68 < *(uint *)(param_1 + 0x34))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_68 < *(uint *)(param_1 + 0x34))" ( (binary_expression "local_68 < *(uint *)(param_1 + 0x34)" identifier < (pointer_expression "*(uint *)(param_1 + 0x34)" * (cast_expression "(uint *)(param_1 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) )))) - (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) , (pointer_expression "*(undefined4 *)(param_3 + 0x24)" * (cast_expression "(undefined4 *)(param_3 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x24)" ( (binary_expression "param_3 + 0x24" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_3 + 0x28)" * (cast_expression "(undefined4 *)(param_3 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x28)" ( (binary_expression "param_3 + 0x28" identifier + number_literal) )))) )))) ;) (goto_statement "goto LAB_0002441d;" goto statement_identifier ;) })) }) (else_clause "else {\n      local_54 = (uint)DAT_0007824e * 0x294 + (int)local_9c;\n      iVar26 = *(int *)(local_5c + 4);\n      if (local_54 <= local_9c) goto LAB_00023b80;\n    }" else (compound_statement "{\n      local_54 = (uint)DAT_0007824e * 0x294 + (int)local_9c;\n      iVar26 = *(int *)(local_5c + 4);\n      if (local_54 <= local_9c) goto LAB_00023b80;\n    }" { (expression_statement "local_54 = (uint)DAT_0007824e * 0x294 + (int)local_9c;" (assignment_expression "local_54 = (uint)DAT_0007824e * 0x294 + (int)local_9c" identifier = (binary_expression "(uint)DAT_0007824e * 0x294 + (int)local_9c" (binary_expression "(uint)DAT_0007824e * 0x294" (cast_expression "(uint)DAT_0007824e" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) + (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar26 = *(int *)(local_5c + 4);" (assignment_expression "iVar26 = *(int *)(local_5c + 4)" identifier = (pointer_expression "*(int *)(local_5c + 4)" * (cast_expression "(int *)(local_5c + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_5c + 4)" ( (binary_expression "local_5c + 4" identifier + number_literal) ))))) ;) (if_statement "if (local_54 <= local_9c) goto LAB_00023b80;" if (parenthesized_expression "(local_54 <= local_9c)" ( (binary_expression "local_54 <= local_9c" identifier <= identifier) )) (goto_statement "goto LAB_00023b80;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00023bb7:\n    *(int *)((int)local_9c + 0x18) = local_8c;" statement_identifier : (expression_statement "*(int *)((int)local_9c + 0x18) = local_8c;" (assignment_expression "*(int *)((int)local_9c + 0x18) = local_8c" (pointer_expression "*(int *)((int)local_9c + 0x18)" * (cast_expression "(int *)((int)local_9c + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c + 0x18)" ( (binary_expression "(int)local_9c + 0x18" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "iVar26 = *(int *)((int)local_9c + 0x8c);" (assignment_expression "iVar26 = *(int *)((int)local_9c + 0x8c)" identifier = (pointer_expression "*(int *)((int)local_9c + 0x8c)" * (cast_expression "(int *)((int)local_9c + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c + 0x8c)" ( (binary_expression "(int)local_9c + 0x8c" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (iVar26 != 0) {\n      local_a8 = (undefined4 ******)local_8c;\nLAB_00023bdc:\n      local_64 = iVar26;\n      puVar6 = *(undefined4 **)(local_64 + 8);\n      if (*(int *)(local_64 + 4) == 0) {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10;\n        if (local_70 <= puVar6) {\n          local_8c = (int)local_a8;\n          iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n          goto LAB_000243a4;\n        }\n      }\n      else {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10;\n        iVar26 = *(int *)(local_64 + 4);\n        if (local_70 <= puVar6) goto LAB_00023bdc;\n      }\n      uVar32 = puVar6[4];\n      do {\n        if ((undefined4 *****)uVar32 != local_9c) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }\n        iVar26 = puVar6[1];\n        if (iVar26 == 0) {\n          local_b4 = (undefined4 *******)puVar6[6];\n          if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n          piVar25 = (int *)puVar6[8];\n          if (piVar25 == (int *)0x0) goto LAB_0002402d;\nLAB_00024237:\n          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n          goto LAB_00023ff8;\n        }\n        if ((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47) {\n          if ((int *)puVar6[5] == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }\n          uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n          iVar15 = FUN_0003e1d0(iVar26);\n          iVar21 = FUN_0003e1d0(uVar13);\n          if (iVar15 != iVar21) {\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }\n          lVar45 = FUN_0003fad0(iVar26);\n          lVar46 = FUN_0003fad0(uVar13);\n          *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n        }\n        else {\n          uVar44 = FUN_0003fad0(iVar26);\n          iVar21 = FUN_0003e1d0(iVar26);\n          uVar33 = (uint)uVar44 + puVar6[2];\n          uVar32 = *(uint *)(iVar21 + 0x1c);\n          iVar15 = *(int *)(iVar21 + 0x20);\n          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);\n          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);\n        }\n        bVar11 = FUN_0003dc90(iVar26);\n        *(byte *)(puVar6 + 10) = *(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04';\n        if (((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&\n           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) {\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;\n        }\n        if (((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&\n           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))) {\n          puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);\n          pbVar35 = (byte *)*puVar23;\n          if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }\n          else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }\n          iVar15 = FUN_0003ddd0(iVar26);\n          if (iVar15 == 0) {\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }\n          else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }\nLAB_00023df1:\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;\n          *(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);\n        }\n        iVar15 = FUN_0003dc20(iVar26);\n        if (((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||\n           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)) {\n          iVar15 = FUN_0003dd80(iVar26);\n          if (iVar15 != 0) goto LAB_0002410f;\n          if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }\n          else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }\nLAB_0002402d:\n          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;\n          if (uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }\n          (*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);\n          local_a0 = (undefined4 ******)((int)local_a0 + uVar36);\n          puVar6[9] = local_a8;\n          puVar7 = (uint *)puVar6[5];\n          if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {\n            puVar7[3] = (int)local_a8 - local_8c;\n          }\n          local_a8 = (undefined4 ******)((int)local_a8 + 1);\n          if ((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          FUN_0003dd80(iVar26);\nLAB_0002410f:\n          if (puVar6[6] != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (puVar6[8] != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          iVar15 = FUN_00041590(iVar26);\n          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }\n        }\n        if (local_70 <= puVar6 + 0x10) goto LAB_00024380;\n        uVar32 = puVar6[0x14];\n        puVar6 = puVar6 + 0x10;\n      } while( true );\n    }" if (parenthesized_expression "(iVar26 != 0)" ( (binary_expression "iVar26 != 0" identifier != number_literal) )) (compound_statement "{\n      local_a8 = (undefined4 ******)local_8c;\nLAB_00023bdc:\n      local_64 = iVar26;\n      puVar6 = *(undefined4 **)(local_64 + 8);\n      if (*(int *)(local_64 + 4) == 0) {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10;\n        if (local_70 <= puVar6) {\n          local_8c = (int)local_a8;\n          iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n          goto LAB_000243a4;\n        }\n      }\n      else {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10;\n        iVar26 = *(int *)(local_64 + 4);\n        if (local_70 <= puVar6) goto LAB_00023bdc;\n      }\n      uVar32 = puVar6[4];\n      do {\n        if ((undefined4 *****)uVar32 != local_9c) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }\n        iVar26 = puVar6[1];\n        if (iVar26 == 0) {\n          local_b4 = (undefined4 *******)puVar6[6];\n          if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n          piVar25 = (int *)puVar6[8];\n          if (piVar25 == (int *)0x0) goto LAB_0002402d;\nLAB_00024237:\n          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n          goto LAB_00023ff8;\n        }\n        if ((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47) {\n          if ((int *)puVar6[5] == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }\n          uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n          iVar15 = FUN_0003e1d0(iVar26);\n          iVar21 = FUN_0003e1d0(uVar13);\n          if (iVar15 != iVar21) {\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }\n          lVar45 = FUN_0003fad0(iVar26);\n          lVar46 = FUN_0003fad0(uVar13);\n          *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n        }\n        else {\n          uVar44 = FUN_0003fad0(iVar26);\n          iVar21 = FUN_0003e1d0(iVar26);\n          uVar33 = (uint)uVar44 + puVar6[2];\n          uVar32 = *(uint *)(iVar21 + 0x1c);\n          iVar15 = *(int *)(iVar21 + 0x20);\n          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);\n          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);\n        }\n        bVar11 = FUN_0003dc90(iVar26);\n        *(byte *)(puVar6 + 10) = *(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04';\n        if (((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&\n           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) {\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;\n        }\n        if (((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&\n           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))) {\n          puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);\n          pbVar35 = (byte *)*puVar23;\n          if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }\n          else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }\n          iVar15 = FUN_0003ddd0(iVar26);\n          if (iVar15 == 0) {\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }\n          else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }\nLAB_00023df1:\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;\n          *(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);\n        }\n        iVar15 = FUN_0003dc20(iVar26);\n        if (((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||\n           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)) {\n          iVar15 = FUN_0003dd80(iVar26);\n          if (iVar15 != 0) goto LAB_0002410f;\n          if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }\n          else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }\nLAB_0002402d:\n          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;\n          if (uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }\n          (*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);\n          local_a0 = (undefined4 ******)((int)local_a0 + uVar36);\n          puVar6[9] = local_a8;\n          puVar7 = (uint *)puVar6[5];\n          if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {\n            puVar7[3] = (int)local_a8 - local_8c;\n          }\n          local_a8 = (undefined4 ******)((int)local_a8 + 1);\n          if ((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          FUN_0003dd80(iVar26);\nLAB_0002410f:\n          if (puVar6[6] != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (puVar6[8] != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          iVar15 = FUN_00041590(iVar26);\n          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }\n        }\n        if (local_70 <= puVar6 + 0x10) goto LAB_00024380;\n        uVar32 = puVar6[0x14];\n        puVar6 = puVar6 + 0x10;\n      } while( true );\n    }" { (expression_statement "local_a8 = (undefined4 ******)local_8c;" (assignment_expression "local_a8 = (undefined4 ******)local_8c" identifier = (cast_expression "(undefined4 ******)local_8c" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (labeled_statement "LAB_00023bdc:\n      local_64 = iVar26;" statement_identifier : (expression_statement "local_64 = iVar26;" (assignment_expression "local_64 = iVar26" identifier = identifier) ;)) (expression_statement "puVar6 = *(undefined4 **)(local_64 + 8);" (assignment_expression "puVar6 = *(undefined4 **)(local_64 + 8)" identifier = (pointer_expression "*(undefined4 **)(local_64 + 8)" * (cast_expression "(undefined4 **)(local_64 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_64 + 8)" ( (binary_expression "local_64 + 8" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(local_64 + 4) == 0) {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10;\n        if (local_70 <= puVar6) {\n          local_8c = (int)local_a8;\n          iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n          goto LAB_000243a4;\n        }\n      }\n      else {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10;\n        iVar26 = *(int *)(local_64 + 4);\n        if (local_70 <= puVar6) goto LAB_00023bdc;\n      }" if (parenthesized_expression "(*(int *)(local_64 + 4) == 0)" ( (binary_expression "*(int *)(local_64 + 4) == 0" (pointer_expression "*(int *)(local_64 + 4)" * (cast_expression "(int *)(local_64 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_64 + 4)" ( (binary_expression "local_64 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10;\n        if (local_70 <= puVar6) {\n          local_8c = (int)local_a8;\n          iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n          goto LAB_000243a4;\n        }\n      }" { (expression_statement "local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10;" (assignment_expression "local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10" identifier = (binary_expression "puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10" identifier + (binary_expression "(uint)*(ushort *)((int)local_9c + 0x9c) * 0x10" (binary_expression "(uint)*(ushort *)((int)local_9c + 0x9c)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)((int)local_9c + 0x9c)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c + 0x9c)" ( (binary_expression "(int)local_9c + 0x9c" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) * number_literal))) ;) (if_statement "if (local_70 <= puVar6) {\n          local_8c = (int)local_a8;\n          iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n          goto LAB_000243a4;\n        }" if (parenthesized_expression "(local_70 <= puVar6)" ( (binary_expression "local_70 <= puVar6" identifier <= identifier) )) (compound_statement "{\n          local_8c = (int)local_a8;\n          iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n          goto LAB_000243a4;\n        }" { (expression_statement "local_8c = (int)local_a8;" (assignment_expression "local_8c = (int)local_a8" identifier = (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);" (assignment_expression "iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18)" identifier = (binary_expression "(int)local_a8 - *(int *)((int)local_9c + 0x18)" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)((int)local_9c + 0x18)" * (cast_expression "(int *)((int)local_9c + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c + 0x18)" ( (binary_expression "(int)local_9c + 0x18" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (goto_statement "goto LAB_000243a4;" goto statement_identifier ;) })) }) (else_clause "else {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10;\n        iVar26 = *(int *)(local_64 + 4);\n        if (local_70 <= puVar6) goto LAB_00023bdc;\n      }" else (compound_statement "{\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10;\n        iVar26 = *(int *)(local_64 + 4);\n        if (local_70 <= puVar6) goto LAB_00023bdc;\n      }" { (expression_statement "local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10;" (assignment_expression "local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10" identifier = (binary_expression "puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10" identifier + (binary_expression "(uint)*(ushort *)((int)local_9c + 0x9a) * 0x10" (binary_expression "(uint)*(ushort *)((int)local_9c + 0x9a)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)((int)local_9c + 0x9a)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c + 0x9a)" ( (binary_expression "(int)local_9c + 0x9a" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) * number_literal))) ;) (expression_statement "iVar26 = *(int *)(local_64 + 4);" (assignment_expression "iVar26 = *(int *)(local_64 + 4)" identifier = (pointer_expression "*(int *)(local_64 + 4)" * (cast_expression "(int *)(local_64 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_64 + 4)" ( (binary_expression "local_64 + 4" identifier + number_literal) ))))) ;) (if_statement "if (local_70 <= puVar6) goto LAB_00023bdc;" if (parenthesized_expression "(local_70 <= puVar6)" ( (binary_expression "local_70 <= puVar6" identifier <= identifier) )) (goto_statement "goto LAB_00023bdc;" goto statement_identifier ;)) }))) (expression_statement "uVar32 = puVar6[4];" (assignment_expression "uVar32 = puVar6[4]" identifier = (subscript_expression "puVar6[4]" identifier [ number_literal ])) ;) (do_statement "do {\n        if ((undefined4 *****)uVar32 != local_9c) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }\n        iVar26 = puVar6[1];\n        if (iVar26 == 0) {\n          local_b4 = (undefined4 *******)puVar6[6];\n          if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n          piVar25 = (int *)puVar6[8];\n          if (piVar25 == (int *)0x0) goto LAB_0002402d;\nLAB_00024237:\n          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n          goto LAB_00023ff8;\n        }\n        if ((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47) {\n          if ((int *)puVar6[5] == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }\n          uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n          iVar15 = FUN_0003e1d0(iVar26);\n          iVar21 = FUN_0003e1d0(uVar13);\n          if (iVar15 != iVar21) {\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }\n          lVar45 = FUN_0003fad0(iVar26);\n          lVar46 = FUN_0003fad0(uVar13);\n          *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n        }\n        else {\n          uVar44 = FUN_0003fad0(iVar26);\n          iVar21 = FUN_0003e1d0(iVar26);\n          uVar33 = (uint)uVar44 + puVar6[2];\n          uVar32 = *(uint *)(iVar21 + 0x1c);\n          iVar15 = *(int *)(iVar21 + 0x20);\n          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);\n          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);\n        }\n        bVar11 = FUN_0003dc90(iVar26);\n        *(byte *)(puVar6 + 10) = *(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04';\n        if (((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&\n           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) {\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;\n        }\n        if (((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&\n           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))) {\n          puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);\n          pbVar35 = (byte *)*puVar23;\n          if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }\n          else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }\n          iVar15 = FUN_0003ddd0(iVar26);\n          if (iVar15 == 0) {\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }\n          else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }\nLAB_00023df1:\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;\n          *(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);\n        }\n        iVar15 = FUN_0003dc20(iVar26);\n        if (((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||\n           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)) {\n          iVar15 = FUN_0003dd80(iVar26);\n          if (iVar15 != 0) goto LAB_0002410f;\n          if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }\n          else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }\nLAB_0002402d:\n          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;\n          if (uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }\n          (*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);\n          local_a0 = (undefined4 ******)((int)local_a0 + uVar36);\n          puVar6[9] = local_a8;\n          puVar7 = (uint *)puVar6[5];\n          if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {\n            puVar7[3] = (int)local_a8 - local_8c;\n          }\n          local_a8 = (undefined4 ******)((int)local_a8 + 1);\n          if ((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          FUN_0003dd80(iVar26);\nLAB_0002410f:\n          if (puVar6[6] != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (puVar6[8] != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          iVar15 = FUN_00041590(iVar26);\n          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }\n        }\n        if (local_70 <= puVar6 + 0x10) goto LAB_00024380;\n        uVar32 = puVar6[0x14];\n        puVar6 = puVar6 + 0x10;\n      } while( true );" do (compound_statement "{\n        if ((undefined4 *****)uVar32 != local_9c) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }\n        iVar26 = puVar6[1];\n        if (iVar26 == 0) {\n          local_b4 = (undefined4 *******)puVar6[6];\n          if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n          piVar25 = (int *)puVar6[8];\n          if (piVar25 == (int *)0x0) goto LAB_0002402d;\nLAB_00024237:\n          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n          goto LAB_00023ff8;\n        }\n        if ((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47) {\n          if ((int *)puVar6[5] == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }\n          uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n          iVar15 = FUN_0003e1d0(iVar26);\n          iVar21 = FUN_0003e1d0(uVar13);\n          if (iVar15 != iVar21) {\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }\n          lVar45 = FUN_0003fad0(iVar26);\n          lVar46 = FUN_0003fad0(uVar13);\n          *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n        }\n        else {\n          uVar44 = FUN_0003fad0(iVar26);\n          iVar21 = FUN_0003e1d0(iVar26);\n          uVar33 = (uint)uVar44 + puVar6[2];\n          uVar32 = *(uint *)(iVar21 + 0x1c);\n          iVar15 = *(int *)(iVar21 + 0x20);\n          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);\n          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);\n        }\n        bVar11 = FUN_0003dc90(iVar26);\n        *(byte *)(puVar6 + 10) = *(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04';\n        if (((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&\n           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) {\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;\n        }\n        if (((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&\n           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))) {\n          puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);\n          pbVar35 = (byte *)*puVar23;\n          if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }\n          else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }\n          iVar15 = FUN_0003ddd0(iVar26);\n          if (iVar15 == 0) {\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }\n          else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }\nLAB_00023df1:\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;\n          *(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);\n        }\n        iVar15 = FUN_0003dc20(iVar26);\n        if (((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||\n           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)) {\n          iVar15 = FUN_0003dd80(iVar26);\n          if (iVar15 != 0) goto LAB_0002410f;\n          if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }\n          else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }\nLAB_0002402d:\n          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;\n          if (uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }\n          (*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);\n          local_a0 = (undefined4 ******)((int)local_a0 + uVar36);\n          puVar6[9] = local_a8;\n          puVar7 = (uint *)puVar6[5];\n          if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {\n            puVar7[3] = (int)local_a8 - local_8c;\n          }\n          local_a8 = (undefined4 ******)((int)local_a8 + 1);\n          if ((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          FUN_0003dd80(iVar26);\nLAB_0002410f:\n          if (puVar6[6] != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (puVar6[8] != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          iVar15 = FUN_00041590(iVar26);\n          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }\n        }\n        if (local_70 <= puVar6 + 0x10) goto LAB_00024380;\n        uVar32 = puVar6[0x14];\n        puVar6 = puVar6 + 0x10;\n      }" { (if_statement "if ((undefined4 *****)uVar32 != local_9c) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }" if (parenthesized_expression "((undefined4 *****)uVar32 != local_9c)" ( (binary_expression "(undefined4 *****)uVar32 != local_9c" (cast_expression "(undefined4 *****)uVar32" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }" { comment (expression_statement "FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");" (call_expression "FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols")" identifier (argument_list "("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols")" ( (string_literal ""../../gas/ecoff.c"" " string_content ") , number_literal , (string_literal ""ecoff_build_symbols"" " string_content ") ))) ;) })) (expression_statement "iVar26 = puVar6[1];" (assignment_expression "iVar26 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (if_statement "if (iVar26 == 0) {\n          local_b4 = (undefined4 *******)puVar6[6];\n          if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n          piVar25 = (int *)puVar6[8];\n          if (piVar25 == (int *)0x0) goto LAB_0002402d;\nLAB_00024237:\n          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n          goto LAB_00023ff8;\n        }" if (parenthesized_expression "(iVar26 == 0)" ( (binary_expression "iVar26 == 0" identifier == number_literal) )) (compound_statement "{\n          local_b4 = (undefined4 *******)puVar6[6];\n          if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n          piVar25 = (int *)puVar6[8];\n          if (piVar25 == (int *)0x0) goto LAB_0002402d;\nLAB_00024237:\n          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n          goto LAB_00023ff8;\n        }" { (expression_statement "local_b4 = (undefined4 *******)puVar6[6];" (assignment_expression "local_b4 = (undefined4 *******)puVar6[6]" identifier = (cast_expression "(undefined4 *******)puVar6[6]" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "puVar6[6]" identifier [ number_literal ]))) ;) (if_statement "if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;" if (parenthesized_expression "(local_b4 != (undefined4 *******)0x0)" ( (binary_expression "local_b4 != (undefined4 *******)0x0" identifier != (cast_expression "(undefined4 *******)0x0" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00023e89;" goto statement_identifier ;)) (expression_statement "piVar25 = (int *)puVar6[8];" (assignment_expression "piVar25 = (int *)puVar6[8]" identifier = (cast_expression "(int *)puVar6[8]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[8]" identifier [ number_literal ]))) ;) (if_statement "if (piVar25 == (int *)0x0) goto LAB_0002402d;" if (parenthesized_expression "(piVar25 == (int *)0x0)" ( (binary_expression "piVar25 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002402d;" goto statement_identifier ;)) (labeled_statement "LAB_00024237:\n          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);" statement_identifier : (expression_statement "local_a4 = (undefined4 *****)((int)local_a8 - local_8c);" (assignment_expression "local_a4 = (undefined4 *****)((int)local_a8 - local_8c)" identifier = (cast_expression "(undefined4 *****)((int)local_a8 - local_8c)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_a8 - local_8c)" ( (binary_expression "(int)local_a8 - local_8c" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;)) (goto_statement "goto LAB_00023ff8;" goto statement_identifier ;) })) (if_statement "if ((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47) {\n          if ((int *)puVar6[5] == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }\n          uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n          iVar15 = FUN_0003e1d0(iVar26);\n          iVar21 = FUN_0003e1d0(uVar13);\n          if (iVar15 != iVar21) {\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }\n          lVar45 = FUN_0003fad0(iVar26);\n          lVar46 = FUN_0003fad0(uVar13);\n          *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n        }\n        else {\n          uVar44 = FUN_0003fad0(iVar26);\n          iVar21 = FUN_0003e1d0(iVar26);\n          uVar33 = (uint)uVar44 + puVar6[2];\n          uVar32 = *(uint *)(iVar21 + 0x1c);\n          iVar15 = *(int *)(iVar21 + 0x20);\n          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);\n          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);\n        }" if (parenthesized_expression "((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47)" ( (binary_expression "(*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47" (parenthesized_expression "(*(ushort *)(puVar6 + 0xf) & 0x7ff)" ( (binary_expression "*(ushort *)(puVar6 + 0xf) & 0x7ff" (pointer_expression "*(ushort *)(puVar6 + 0xf)" * (cast_expression "(ushort *)(puVar6 + 0xf)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xf)" ( (binary_expression "puVar6 + 0xf" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n          if ((int *)puVar6[5] == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }\n          uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n          iVar15 = FUN_0003e1d0(iVar26);\n          iVar21 = FUN_0003e1d0(uVar13);\n          if (iVar15 != iVar21) {\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }\n          lVar45 = FUN_0003fad0(iVar26);\n          lVar46 = FUN_0003fad0(uVar13);\n          *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n        }" { (if_statement "if ((int *)puVar6[5] == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }" if (parenthesized_expression "((int *)puVar6[5] == (int *)0x0)" ( (binary_expression "(int *)puVar6[5] == (int *)0x0" (cast_expression "(int *)puVar6[5]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[5]" identifier [ number_literal ])) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }" { comment (expression_statement "FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");" (call_expression "FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols")" identifier (argument_list "("../../gas/ecoff.c",0xf85,"ecoff_build_symbols")" ( (string_literal ""../../gas/ecoff.c"" " string_content ") , number_literal , (string_literal ""ecoff_build_symbols"" " string_content ") ))) ;) })) (expression_statement "uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);" (assignment_expression "uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4)" identifier = (pointer_expression "*(undefined4 *)(*(int *)puVar6[5] + 4)" * (cast_expression "(undefined4 *)(*(int *)puVar6[5] + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar6[5] + 4)" ( (binary_expression "*(int *)puVar6[5] + 4" (pointer_expression "*(int *)puVar6[5]" * (cast_expression "(int *)puVar6[5]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[5]" identifier [ number_literal ]))) + number_literal) ))))) ;) (expression_statement "iVar15 = FUN_0003e1d0(iVar26);" (assignment_expression "iVar15 = FUN_0003e1d0(iVar26)" identifier = (call_expression "FUN_0003e1d0(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (expression_statement "iVar21 = FUN_0003e1d0(uVar13);" (assignment_expression "iVar21 = FUN_0003e1d0(uVar13)" identifier = (call_expression "FUN_0003e1d0(uVar13)" identifier (argument_list "(uVar13)" ( identifier )))) ;) (if_statement "if (iVar15 != iVar21) {\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }" if (parenthesized_expression "(iVar15 != iVar21)" ( (binary_expression "iVar15 != iVar21" identifier != identifier) )) (compound_statement "{\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }" { (expression_statement "uVar22 = dcgettext(0,".begin/.bend in different segments",5);" (assignment_expression "uVar22 = dcgettext(0,".begin/.bend in different segments",5)" identifier = (call_expression "dcgettext(0,".begin/.bend in different segments",5)" identifier (argument_list "(0,".begin/.bend in different segments",5)" ( number_literal , (string_literal "".begin/.bend in different segments"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_00031540(uVar22);" (call_expression "FUN_00031540(uVar22)" identifier (argument_list "(uVar22)" ( identifier ))) ;) })) (expression_statement "lVar45 = FUN_0003fad0(iVar26);" (assignment_expression "lVar45 = FUN_0003fad0(iVar26)" identifier = (call_expression "FUN_0003fad0(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (expression_statement "lVar46 = FUN_0003fad0(uVar13);" (assignment_expression "lVar46 = FUN_0003fad0(uVar13)" identifier = (call_expression "FUN_0003fad0(uVar13)" identifier (argument_list "(uVar13)" ( identifier )))) ;) (expression_statement "*(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;" (assignment_expression "*(longlong *)(puVar6 + 0xd) = lVar45 - lVar46" (pointer_expression "*(longlong *)(puVar6 + 0xd)" * (cast_expression "(longlong *)(puVar6 + 0xd)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xd)" ( (binary_expression "puVar6 + 0xd" identifier + number_literal) )))) = (binary_expression "lVar45 - lVar46" identifier - identifier)) ;) }) (else_clause "else {\n          uVar44 = FUN_0003fad0(iVar26);\n          iVar21 = FUN_0003e1d0(iVar26);\n          uVar33 = (uint)uVar44 + puVar6[2];\n          uVar32 = *(uint *)(iVar21 + 0x1c);\n          iVar15 = *(int *)(iVar21 + 0x20);\n          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);\n          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);\n        }" else (compound_statement "{\n          uVar44 = FUN_0003fad0(iVar26);\n          iVar21 = FUN_0003e1d0(iVar26);\n          uVar33 = (uint)uVar44 + puVar6[2];\n          uVar32 = *(uint *)(iVar21 + 0x1c);\n          iVar15 = *(int *)(iVar21 + 0x20);\n          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);\n          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);\n        }" { (expression_statement "uVar44 = FUN_0003fad0(iVar26);" (assignment_expression "uVar44 = FUN_0003fad0(iVar26)" identifier = (call_expression "FUN_0003fad0(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (expression_statement "iVar21 = FUN_0003e1d0(iVar26);" (assignment_expression "iVar21 = FUN_0003e1d0(iVar26)" identifier = (call_expression "FUN_0003e1d0(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (expression_statement "uVar33 = (uint)uVar44 + puVar6[2];" (assignment_expression "uVar33 = (uint)uVar44 + puVar6[2]" identifier = (binary_expression "(uint)uVar44 + puVar6[2]" (cast_expression "(uint)uVar44" ( (type_descriptor "uint" type_identifier) ) identifier) + (subscript_expression "puVar6[2]" identifier [ number_literal ]))) ;) (expression_statement "uVar32 = *(uint *)(iVar21 + 0x1c);" (assignment_expression "uVar32 = *(uint *)(iVar21 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar21 + 0x1c)" * (cast_expression "(uint *)(iVar21 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x1c)" ( (binary_expression "iVar21 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "iVar15 = *(int *)(iVar21 + 0x20);" (assignment_expression "iVar15 = *(int *)(iVar21 + 0x20)" identifier = (pointer_expression "*(int *)(iVar21 + 0x20)" * (cast_expression "(int *)(iVar21 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x20)" ( (binary_expression "iVar21 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);" (assignment_expression "puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c)" (subscript_expression "puVar6[0xd]" identifier [ number_literal ]) = (binary_expression "uVar33 + *(uint *)(iVar21 + 0x1c)" identifier + (pointer_expression "*(uint *)(iVar21 + 0x1c)" * (cast_expression "(uint *)(iVar21 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x1c)" ( (binary_expression "iVar21 + 0x1c" identifier + number_literal) )))))) ;) (expression_statement "puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);" (assignment_expression "puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32)" (subscript_expression "puVar6[0xe]" identifier [ number_literal ]) = (binary_expression "(int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32)" (binary_expression "(int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15" (binary_expression "(int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2])" (binary_expression "(int)((ulonglong)uVar44 >> 0x20) + puVar6[3]" (cast_expression "(int)((ulonglong)uVar44 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar44 >> 0x20)" ( (binary_expression "(ulonglong)uVar44 >> 0x20" (cast_expression "(ulonglong)uVar44" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + (subscript_expression "puVar6[3]" identifier [ number_literal ])) + (cast_expression "(uint)CARRY4((uint)uVar44,puVar6[2])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)uVar44,puVar6[2])" identifier (argument_list "((uint)uVar44,puVar6[2])" ( (cast_expression "(uint)uVar44" ( (type_descriptor "uint" type_identifier) ) identifier) , (subscript_expression "puVar6[2]" identifier [ number_literal ]) ))))) + identifier) + (cast_expression "(uint)CARRY4(uVar33,uVar32)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar33,uVar32)" identifier (argument_list "(uVar33,uVar32)" ( identifier , identifier )))))) ;) }))) (expression_statement "bVar11 = FUN_0003dc90(iVar26);" (assignment_expression "bVar11 = FUN_0003dc90(iVar26)" identifier = (call_expression "FUN_0003dc90(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (expression_statement "*(byte *)(puVar6 + 10) = *(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04';" (assignment_expression "*(byte *)(puVar6 + 10) = *(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04'" (pointer_expression "*(byte *)(puVar6 + 10)" * (cast_expression "(byte *)(puVar6 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 10)" ( (binary_expression "puVar6 + 10" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04'" (binary_expression "*(byte *)(puVar6 + 10) & 0xfb" (pointer_expression "*(byte *)(puVar6 + 10)" * (cast_expression "(byte *)(puVar6 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 10)" ( (binary_expression "puVar6 + 10" identifier + number_literal) )))) & number_literal) | (binary_expression "(bVar11 & 1) * '\x04'" (parenthesized_expression "(bVar11 & 1)" ( (binary_expression "bVar11 & 1" identifier & number_literal) )) * (char_literal "'\x04'" ' escape_sequence ')))) ;) (if_statement "if (((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&\n           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) {\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;\n        }" if (parenthesized_expression "(((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&\n           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0))" ( (binary_expression "((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&\n           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)" (parenthesized_expression "((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0))" ( (binary_expression "(((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)" (parenthesized_expression "(((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0))" ( (binary_expression "((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)" (parenthesized_expression "((*(byte *)(puVar6 + 0xf) & 0x3f) == 6)" ( (binary_expression "(*(byte *)(puVar6 + 0xf) & 0x3f) == 6" (parenthesized_expression "(*(byte *)(puVar6 + 0xf) & 0x3f)" ( (binary_expression "*(byte *)(puVar6 + 0xf) & 0x3f" (pointer_expression "*(byte *)(puVar6 + 0xf)" * (cast_expression "(byte *)(puVar6 + 0xf)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xf)" ( (binary_expression "puVar6 + 0xf" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)" ( (comma_expression "iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0" (assignment_expression "iVar15 = FUN_0003ddd0(iVar26)" identifier = (call_expression "FUN_0003ddd0(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) , (binary_expression "iVar15 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)" ( (comma_expression "iVar15 = FUN_0003dc20(iVar26), iVar15 == 0" (assignment_expression "iVar15 = FUN_0003dc20(iVar26)" identifier = (call_expression "FUN_0003dc20(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) , (binary_expression "iVar15 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)" ( (comma_expression "iVar15 = FUN_0003dc90(iVar26), iVar15 == 0" (assignment_expression "iVar15 = FUN_0003dc90(iVar26)" identifier = (call_expression "FUN_0003dc90(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) , (binary_expression "iVar15 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;\n        }" { (expression_statement "*(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;" (assignment_expression "*(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe" (pointer_expression "*(byte *)(puVar6 + 0xf)" * (cast_expression "(byte *)(puVar6 + 0xf)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xf)" ( (binary_expression "puVar6 + 0xf" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar6 + 0xf) & 0xc0 | 0xe" (binary_expression "*(byte *)(puVar6 + 0xf) & 0xc0" (pointer_expression "*(byte *)(puVar6 + 0xf)" * (cast_expression "(byte *)(puVar6 + 0xf)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xf)" ( (binary_expression "puVar6 + 0xf" identifier + number_literal) )))) & number_literal) | number_literal)) ;) })) (if_statement "if (((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&\n           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))) {\n          puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);\n          pbVar35 = (byte *)*puVar23;\n          if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }\n          else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }\n          iVar15 = FUN_0003ddd0(iVar26);\n          if (iVar15 == 0) {\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }\n          else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }\nLAB_00023df1:\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;\n          *(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);\n        }" if (parenthesized_expression "(((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&\n           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0))))" ( (binary_expression "((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&\n           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))" (parenthesized_expression "((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0)" ( (binary_expression "(*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0" (parenthesized_expression "(*(ushort *)(puVar6 + 0xf) & 0x7ff)" ( (binary_expression "*(ushort *)(puVar6 + 0xf) & 0x7ff" (pointer_expression "*(ushort *)(puVar6 + 0xf)" * (cast_expression "(ushort *)(puVar6 + 0xf)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xf)" ( (binary_expression "puVar6 + 0xf" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))" ( (parenthesized_expression "(((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0))" ( (binary_expression "((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)" (binary_expression "((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300" (parenthesized_expression "((uint)puVar6[0xf] >> 0xc & 0xfff00)" ( (binary_expression "(uint)puVar6[0xf] >> 0xc & 0xfff00" (binary_expression "(uint)puVar6[0xf] >> 0xc" (cast_expression "(uint)puVar6[0xf]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar6[0xf]" identifier [ number_literal ])) >> number_literal) & number_literal) )) != number_literal) || (parenthesized_expression "(((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)" ( (binary_expression "((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0" (parenthesized_expression "((uint)puVar6[0xf] >> 0xc & 0xfffdf)" ( (binary_expression "(uint)puVar6[0xf] >> 0xc & 0xfffdf" (binary_expression "(uint)puVar6[0xf] >> 0xc" (cast_expression "(uint)puVar6[0xf]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar6[0xf]" identifier [ number_literal ])) >> number_literal) & number_literal) )) != number_literal) ))) )) ))) )) (compound_statement "{\n          puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);\n          pbVar35 = (byte *)*puVar23;\n          if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }\n          else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }\n          iVar15 = FUN_0003ddd0(iVar26);\n          if (iVar15 == 0) {\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }\n          else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }\nLAB_00023df1:\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;\n          *(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);\n        }" { (expression_statement "puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);" (assignment_expression "puVar23 = (undefined4 *)FUN_0003e1d0(iVar26)" identifier = (cast_expression "(undefined4 *)FUN_0003e1d0(iVar26)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0003e1d0(iVar26)" identifier (argument_list "(iVar26)" ( identifier ))))) ;) (expression_statement "pbVar35 = (byte *)*puVar23;" (assignment_expression "pbVar35 = (byte *)*puVar23" identifier = (cast_expression "(byte *)*puVar23" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar23" * identifier))) ;) (if_statement "if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }\n          else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }" if (parenthesized_expression "((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0))))" ( (binary_expression "(((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))" (parenthesized_expression "(((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)" ( (binary_expression "((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300" (parenthesized_expression "((uint)puVar6[0xf] >> 0xc & 0xfff00)" ( (binary_expression "(uint)puVar6[0xf] >> 0xc & 0xfff00" (binary_expression "(uint)puVar6[0xf] >> 0xc" (cast_expression "(uint)puVar6[0xf]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar6[0xf]" identifier [ number_literal ])) >> number_literal) & number_literal) )) == number_literal) )) || (parenthesized_expression "(((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))" ( (parenthesized_expression "((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0))" ( (binary_expression "(iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)" (parenthesized_expression "(iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0))" ( (comma_expression "iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)" (assignment_expression "iVar15 = FUN_0003dc20(iVar26)" identifier = (call_expression "FUN_0003dc20(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) , (binary_expression "iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)" (binary_expression "iVar15 == 0" identifier == number_literal) && (parenthesized_expression "(iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)" ( (comma_expression "iVar15 = FUN_0003dc90(iVar26), iVar15 == 0" (assignment_expression "iVar15 = FUN_0003dc90(iVar26)" identifier = (call_expression "FUN_0003dc90(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) , (binary_expression "iVar15 == 0" identifier == number_literal)) )))) )) && (parenthesized_expression "(iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)" ( (comma_expression "iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0" (assignment_expression "iVar15 = FUN_0003ddd0(iVar26)" identifier = (call_expression "FUN_0003ddd0(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) , (binary_expression "iVar15 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }" { (expression_statement "bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;" (assignment_expression "bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2" identifier = (binary_expression "(puVar23 == DAT_00081494) * '\x03' + 2" (binary_expression "(puVar23 == DAT_00081494) * '\x03'" (parenthesized_expression "(puVar23 == DAT_00081494)" ( (binary_expression "puVar23 == DAT_00081494" identifier == identifier) )) * (char_literal "'\x03'" ' escape_sequence ')) + number_literal)) ;) }) (else_clause "else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }" else (compound_statement "{\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }" { (expression_statement "iVar15 = FUN_000414f0(iVar26);" (assignment_expression "iVar15 = FUN_000414f0(iVar26)" identifier = (call_expression "FUN_000414f0(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (expression_statement "bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;" (assignment_expression "bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6" identifier = (binary_expression "(-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6" (parenthesized_expression "(-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU)" ( (binary_expression "-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU" (unary_expression "-((*(uint *)(iVar15 + 0x10) & 8) == 0)" - (parenthesized_expression "((*(uint *)(iVar15 + 0x10) & 8) == 0)" ( (binary_expression "(*(uint *)(iVar15 + 0x10) & 8) == 0" (parenthesized_expression "(*(uint *)(iVar15 + 0x10) & 8)" ( (binary_expression "*(uint *)(iVar15 + 0x10) & 8" (pointer_expression "*(uint *)(iVar15 + 0x10)" * (cast_expression "(uint *)(iVar15 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x10)" ( (binary_expression "iVar15 + 0x10" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) & number_literal) )) + number_literal)) ;) }))) (expression_statement "iVar15 = FUN_0003ddd0(iVar26);" (assignment_expression "iVar15 = FUN_0003ddd0(iVar26)" identifier = (call_expression "FUN_0003ddd0(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (if_statement "if (iVar15 == 0) {\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }\n          else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }" { (expression_statement "iVar21 = FUN_00041590(iVar26);" (assignment_expression "iVar21 = FUN_00041590(iVar26)" identifier = (call_expression "FUN_00041590(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (expression_statement "iVar15 = *(int *)(iVar21 + 0x18);" (assignment_expression "iVar15 = *(int *)(iVar21 + 0x18)" identifier = (pointer_expression "*(int *)(iVar21 + 0x18)" * (cast_expression "(int *)(iVar21 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x18)" ( (binary_expression "iVar21 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "uVar33 = *(uint *)(iVar21 + 0x14);" (assignment_expression "uVar33 = *(uint *)(iVar21 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar21 + 0x14)" * (cast_expression "(uint *)(iVar21 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x14)" ( (binary_expression "iVar21 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }" if (parenthesized_expression "((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33)))" ( (binary_expression "(iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))" (parenthesized_expression "(iVar15 == 0 && uVar33 == 0)" ( (binary_expression "iVar15 == 0 && uVar33 == 0" (binary_expression "iVar15 == 0" identifier == number_literal) && (binary_expression "uVar33 == 0" identifier == number_literal)) )) || (parenthesized_expression "(uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))" ( (comma_expression "uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33)" (assignment_expression "uVar32 = bfd_get_gp_size(DAT_00081544)" identifier = (call_expression "bfd_get_gp_size(DAT_00081544)" identifier (argument_list "(DAT_00081544)" ( identifier )))) , (binary_expression "iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33)" (binary_expression "iVar15 != 0" identifier != number_literal) || (binary_expression "(uint)-iVar15 < (uint)(uVar32 < uVar33)" (binary_expression "(uint)-iVar15" (parenthesized_expression "(uint)" ( identifier )) - identifier) < (call_expression "(uint)(uVar32 < uVar33)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar32 < uVar33)" ( (binary_expression "uVar32 < uVar33" identifier < identifier) )))))) ))) )) (compound_statement "{\n              bVar31 = 6;\n            }" { (expression_statement "bVar31 = 6;" (assignment_expression "bVar31 = 6" identifier = number_literal) ;) }) (else_clause "else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }" else (compound_statement "{\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }" { (expression_statement "puVar6[0xd] = uVar33;" (assignment_expression "puVar6[0xd] = uVar33" (subscript_expression "puVar6[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar31 = 0x15;" (assignment_expression "bVar31 = 0x15" identifier = number_literal) ;) (expression_statement "puVar6[0xe] = iVar15;" (assignment_expression "puVar6[0xe] = iVar15" (subscript_expression "puVar6[0xe]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "iVar21 = FUN_000414f0(iVar26);" (assignment_expression "iVar21 = FUN_000414f0(iVar26)" identifier = (call_expression "FUN_000414f0(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (expression_statement "uVar32 = (uint)bVar31;" (assignment_expression "uVar32 = (uint)bVar31" identifier = (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(uint *)(iVar21 + 0x28) = uVar33;" (assignment_expression "*(uint *)(iVar21 + 0x28) = uVar33" (pointer_expression "*(uint *)(iVar21 + 0x28)" * (cast_expression "(uint *)(iVar21 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x28)" ( (binary_expression "iVar21 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar21 + 0x2c) = iVar15;" (assignment_expression "*(int *)(iVar21 + 0x2c) = iVar15" (pointer_expression "*(int *)(iVar21 + 0x2c)" * (cast_expression "(int *)(iVar21 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x2c)" ( (binary_expression "iVar21 + 0x2c" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }" else (compound_statement "{\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }" { (expression_statement "iVar15 = FUN_0003dd80(iVar26);" (assignment_expression "iVar15 = FUN_0003dd80(iVar26)" identifier = (call_expression "FUN_0003dd80(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (if_statement "if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }" { (expression_statement "uVar32 = 1;" (assignment_expression "uVar32 = 1" identifier = number_literal) ;) (if_statement "if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }" if (parenthesized_expression "(puVar23 != DAT_00081494)" ( (binary_expression "puVar23 != DAT_00081494" identifier != identifier) )) (compound_statement "{\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }" { (expression_statement "uVar32 = 2;" (assignment_expression "uVar32 = 2" identifier = number_literal) ;) (expression_statement "bVar41 = puVar23 < DAT_000813f0;" (assignment_expression "bVar41 = puVar23 < DAT_000813f0" identifier = (binary_expression "puVar23 < DAT_000813f0" identifier < identifier)) ;) (expression_statement "bVar42 = puVar23 == DAT_000813f0;" (assignment_expression "bVar42 = puVar23 == DAT_000813f0" identifier = (binary_expression "puVar23 == DAT_000813f0" identifier == identifier)) ;) (if_statement "if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }" if (parenthesized_expression "(!bVar42)" ( (unary_expression "!bVar42" ! identifier) )) (compound_statement "{\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }" { (expression_statement "iVar15 = 7;" (assignment_expression "iVar15 = 7" identifier = number_literal) ;) (expression_statement "uVar32 = 0xf;" (assignment_expression "uVar32 = 0xf" identifier = number_literal) ;) (expression_statement "pbVar34 = pbVar35;" (assignment_expression "pbVar34 = pbVar35" identifier = identifier) ;) (expression_statement "pbVar39 = (byte *)".rdata";" (assignment_expression "pbVar39 = (byte *)".rdata"" identifier = (cast_expression "(byte *)".rdata"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".rdata"" " string_content "))) ;) (do_statement "do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);" do (compound_statement "{\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  }" { (if_statement "if (iVar15 == 0) break;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar41 = *pbVar34 < *pbVar39;" (assignment_expression "bVar41 = *pbVar34 < *pbVar39" identifier = (binary_expression "*pbVar34 < *pbVar39" (pointer_expression "*pbVar34" * identifier) < (pointer_expression "*pbVar39" * identifier))) ;) (expression_statement "bVar42 = *pbVar34 == *pbVar39;" (assignment_expression "bVar42 = *pbVar34 == *pbVar39" identifier = (binary_expression "*pbVar34 == *pbVar39" (pointer_expression "*pbVar34" * identifier) == (pointer_expression "*pbVar39" * identifier))) ;) (expression_statement "pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;" (assignment_expression "pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1" identifier = (binary_expression "pbVar34 + (uint)bVar43 * -2 + 1" (binary_expression "pbVar34 + (uint)bVar43 * -2" identifier + (binary_expression "(uint)bVar43 * -2" (cast_expression "(uint)bVar43" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;" (assignment_expression "pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1" identifier = (binary_expression "pbVar39 + (uint)bVar43 * -2 + 1" (binary_expression "pbVar39 + (uint)bVar43 * -2" identifier + (binary_expression "(uint)bVar43 * -2" (cast_expression "(uint)bVar43" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar42)" ( identifier )) ;) (expression_statement "bVar40 = false;" (assignment_expression "bVar40 = false" identifier = false) ;) (expression_statement "bVar41 = (!bVar41 && !bVar42) == bVar41;" (assignment_expression "bVar41 = (!bVar41 && !bVar42) == bVar41" identifier = (binary_expression "(!bVar41 && !bVar42) == bVar41" (parenthesized_expression "(!bVar41 && !bVar42)" ( (binary_expression "!bVar41 && !bVar42" (unary_expression "!bVar41" ! identifier) && (unary_expression "!bVar42" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }" if (parenthesized_expression "(!bVar41)" ( (unary_expression "!bVar41" ! identifier) )) (compound_statement "{\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }" { (expression_statement "iVar15 = 8;" (assignment_expression "iVar15 = 8" identifier = number_literal) ;) (expression_statement "pbVar34 = pbVar35;" (assignment_expression "pbVar34 = pbVar35" identifier = identifier) ;) (expression_statement "pbVar39 = (byte *)".rodata";" (assignment_expression "pbVar39 = (byte *)".rodata"" identifier = (cast_expression "(byte *)".rodata"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".rodata"" " string_content "))) ;) (do_statement "do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);" do (compound_statement "{\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    }" { (if_statement "if (iVar15 == 0) break;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar40 = *pbVar34 < *pbVar39;" (assignment_expression "bVar40 = *pbVar34 < *pbVar39" identifier = (binary_expression "*pbVar34 < *pbVar39" (pointer_expression "*pbVar34" * identifier) < (pointer_expression "*pbVar39" * identifier))) ;) (expression_statement "bVar41 = *pbVar34 == *pbVar39;" (assignment_expression "bVar41 = *pbVar34 == *pbVar39" identifier = (binary_expression "*pbVar34 == *pbVar39" (pointer_expression "*pbVar34" * identifier) == (pointer_expression "*pbVar39" * identifier))) ;) (expression_statement "pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;" (assignment_expression "pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1" identifier = (binary_expression "pbVar34 + (uint)bVar43 * -2 + 1" (binary_expression "pbVar34 + (uint)bVar43 * -2" identifier + (binary_expression "(uint)bVar43 * -2" (cast_expression "(uint)bVar43" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;" (assignment_expression "pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1" identifier = (binary_expression "pbVar39 + (uint)bVar43 * -2 + 1" (binary_expression "pbVar39 + (uint)bVar43 * -2" identifier + (binary_expression "(uint)bVar43 * -2" (cast_expression "(uint)bVar43" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar41)" ( identifier )) ;) (expression_statement "bVar42 = false;" (assignment_expression "bVar42 = false" identifier = false) ;) (expression_statement "bVar41 = (!bVar40 && !bVar41) == bVar40;" (assignment_expression "bVar41 = (!bVar40 && !bVar41) == bVar40" identifier = (binary_expression "(!bVar40 && !bVar41) == bVar40" (parenthesized_expression "(!bVar40 && !bVar41)" ( (binary_expression "!bVar40 && !bVar41" (unary_expression "!bVar40" ! identifier) && (unary_expression "!bVar41" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }" if (parenthesized_expression "(!bVar41)" ( (unary_expression "!bVar41" ! identifier) )) (compound_statement "{\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }" { (expression_statement "iVar15 = 7;" (assignment_expression "iVar15 = 7" identifier = number_literal) ;) (expression_statement "uVar32 = 0xd;" (assignment_expression "uVar32 = 0xd" identifier = number_literal) ;) (expression_statement "pbVar34 = pbVar35;" (assignment_expression "pbVar34 = pbVar35" identifier = identifier) ;) (expression_statement "pbVar39 = (byte *)".sdata";" (assignment_expression "pbVar39 = (byte *)".sdata"" identifier = (cast_expression "(byte *)".sdata"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".sdata"" " string_content "))) ;) (do_statement "do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);" do (compound_statement "{\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      }" { (if_statement "if (iVar15 == 0) break;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar42 = *pbVar34 < *pbVar39;" (assignment_expression "bVar42 = *pbVar34 < *pbVar39" identifier = (binary_expression "*pbVar34 < *pbVar39" (pointer_expression "*pbVar34" * identifier) < (pointer_expression "*pbVar39" * identifier))) ;) (expression_statement "bVar41 = *pbVar34 == *pbVar39;" (assignment_expression "bVar41 = *pbVar34 == *pbVar39" identifier = (binary_expression "*pbVar34 == *pbVar39" (pointer_expression "*pbVar34" * identifier) == (pointer_expression "*pbVar39" * identifier))) ;) (expression_statement "pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;" (assignment_expression "pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1" identifier = (binary_expression "pbVar34 + (uint)bVar43 * -2 + 1" (binary_expression "pbVar34 + (uint)bVar43 * -2" identifier + (binary_expression "(uint)bVar43 * -2" (cast_expression "(uint)bVar43" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;" (assignment_expression "pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1" identifier = (binary_expression "pbVar39 + (uint)bVar43 * -2 + 1" (binary_expression "pbVar39 + (uint)bVar43 * -2" identifier + (binary_expression "(uint)bVar43 * -2" (cast_expression "(uint)bVar43" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar41)" ( identifier )) ;) (if_statement "if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }" if (parenthesized_expression "((!bVar42 && !bVar41) != bVar42)" ( (binary_expression "(!bVar42 && !bVar41) != bVar42" (parenthesized_expression "(!bVar42 && !bVar41)" ( (binary_expression "!bVar42 && !bVar41" (unary_expression "!bVar42" ! identifier) && (unary_expression "!bVar41" ! identifier)) )) != identifier) )) (compound_statement "{\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }" { (expression_statement "uVar32 = 3;" (assignment_expression "uVar32 = 3" identifier = number_literal) ;) (expression_statement "bVar41 = puVar23 < DAT_0008136c;" (assignment_expression "bVar41 = puVar23 < DAT_0008136c" identifier = (binary_expression "puVar23 < DAT_0008136c" identifier < identifier)) ;) (expression_statement "bVar42 = puVar23 == DAT_0008136c;" (assignment_expression "bVar42 = puVar23 == DAT_0008136c" identifier = (binary_expression "puVar23 == DAT_0008136c" identifier == identifier)) ;) (if_statement "if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }" if (parenthesized_expression "(!bVar42)" ( (unary_expression "!bVar42" ! identifier) )) (compound_statement "{\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }" { (expression_statement "iVar15 = 6;" (assignment_expression "iVar15 = 6" identifier = number_literal) ;) (expression_statement "uVar32 = 0xe;" (assignment_expression "uVar32 = 0xe" identifier = number_literal) ;) (expression_statement "pbVar34 = (byte *)".sbss";" (assignment_expression "pbVar34 = (byte *)".sbss"" identifier = (cast_expression "(byte *)".sbss"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".sbss"" " string_content "))) ;) (do_statement "do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);" do (compound_statement "{\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          }" { (if_statement "if (iVar15 == 0) break;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar41 = *pbVar35 < *pbVar34;" (assignment_expression "bVar41 = *pbVar35 < *pbVar34" identifier = (binary_expression "*pbVar35 < *pbVar34" (pointer_expression "*pbVar35" * identifier) < (pointer_expression "*pbVar34" * identifier))) ;) (expression_statement "bVar42 = *pbVar35 == *pbVar34;" (assignment_expression "bVar42 = *pbVar35 == *pbVar34" identifier = (binary_expression "*pbVar35 == *pbVar34" (pointer_expression "*pbVar35" * identifier) == (pointer_expression "*pbVar34" * identifier))) ;) (expression_statement "pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;" (assignment_expression "pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1" identifier = (binary_expression "pbVar35 + (uint)bVar43 * -2 + 1" (binary_expression "pbVar35 + (uint)bVar43 * -2" identifier + (binary_expression "(uint)bVar43 * -2" (cast_expression "(uint)bVar43" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;" (assignment_expression "pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1" identifier = (binary_expression "pbVar34 + (uint)bVar43 * -2 + 1" (binary_expression "pbVar34 + (uint)bVar43 * -2" identifier + (binary_expression "(uint)bVar43 * -2" (cast_expression "(uint)bVar43" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar42)" ( identifier )) ;) (if_statement "if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }" if (parenthesized_expression "((!bVar41 && !bVar42) != bVar41)" ( (binary_expression "(!bVar41 && !bVar42) != bVar41" (parenthesized_expression "(!bVar41 && !bVar42)" ( (binary_expression "!bVar41 && !bVar42" (unary_expression "!bVar41" ! identifier) && (unary_expression "!bVar42" ! identifier)) )) != identifier) )) (compound_statement "{\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }" { (expression_statement "uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;" (assignment_expression "uVar32 = (uint)(puVar23 == puVar20) * 3 + 2" identifier = (binary_expression "(uint)(puVar23 == puVar20) * 3 + 2" (binary_expression "(uint)(puVar23 == puVar20) * 3" (call_expression "(uint)(puVar23 == puVar20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar23 == puVar20)" ( (binary_expression "puVar23 == puVar20" identifier == identifier) ))) * number_literal) + number_literal)) ;) })) })) })) })) })) })) })) }) (else_clause "else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }" else (compound_statement "{\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }" { (expression_statement "lVar45 = FUN_0003fad0(iVar26);" (assignment_expression "lVar45 = FUN_0003fad0(iVar26)" identifier = (call_expression "FUN_0003fad0(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (if_statement "if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }" if (parenthesized_expression "(lVar45 != 0)" ( (binary_expression "lVar45 != 0" identifier != number_literal) )) (compound_statement "{\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }" { (expression_statement "uVar44 = FUN_0003fad0(iVar26);" (assignment_expression "uVar44 = FUN_0003fad0(iVar26)" identifier = (call_expression "FUN_0003fad0(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (expression_statement "iVar15 = (int)((ulonglong)uVar44 >> 0x20);" (assignment_expression "iVar15 = (int)((ulonglong)uVar44 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar44 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar44 >> 0x20)" ( (binary_expression "(ulonglong)uVar44 >> 0x20" (cast_expression "(ulonglong)uVar44" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar33 = bfd_get_gp_size(DAT_00081544);" (assignment_expression "uVar33 = bfd_get_gp_size(DAT_00081544)" identifier = (call_expression "bfd_get_gp_size(DAT_00081544)" identifier (argument_list "(DAT_00081544)" ( identifier )))) ;) (expression_statement "uVar32 = 0x12;" (assignment_expression "uVar32 = 0x12" identifier = number_literal) ;) (if_statement "if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;" if (parenthesized_expression "(iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)" ( (binary_expression "iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15" (binary_expression "iVar15 == 0" identifier == number_literal) && (binary_expression "(uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15" (call_expression "(uint)(uVar33 < (uint)uVar44)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar33 < (uint)uVar44)" ( (binary_expression "uVar33 < (uint)uVar44" identifier < (cast_expression "(uint)uVar44" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) <= (binary_expression "(uint)-iVar15" (parenthesized_expression "(uint)" ( identifier )) - identifier))) )) (goto_statement "goto LAB_00023df1;" goto statement_identifier ;)) })) (expression_statement "uVar32 = 0x11;" (assignment_expression "uVar32 = 0x11" identifier = number_literal) ;) }))) }))) (labeled_statement "LAB_00023df1:\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;" statement_identifier : (expression_statement "*(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;" (assignment_expression "*(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f" (pointer_expression "*(byte *)(puVar6 + 0xf)" * (cast_expression "(byte *)(puVar6 + 0xf)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xf)" ( (binary_expression "puVar6 + 0xf" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f" (binary_expression "*(byte *)(puVar6 + 0xf) & 0xc0" (pointer_expression "*(byte *)(puVar6 + 0xf)" * (cast_expression "(byte *)(puVar6 + 0xf)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xf)" ( (binary_expression "puVar6 + 0xf" identifier + number_literal) )))) & number_literal) | (binary_expression "bVar11 & 0x3f" identifier & number_literal))) ;)) (expression_statement "*(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);" (assignment_expression "*(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6)" (pointer_expression "*(ushort *)(puVar6 + 0xf)" * (cast_expression "(ushort *)(puVar6 + 0xf)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xf)" ( (binary_expression "puVar6 + 0xf" identifier + number_literal) )))) = (binary_expression "*(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6)" (binary_expression "*(ushort *)(puVar6 + 0xf) & 0xf83f" (pointer_expression "*(ushort *)(puVar6 + 0xf)" * (cast_expression "(ushort *)(puVar6 + 0xf)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xf)" ( (binary_expression "puVar6 + 0xf" identifier + number_literal) )))) & number_literal) | (call_expression "(ushort)(uVar32 << 6)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(uVar32 << 6)" ( (binary_expression "uVar32 << 6" identifier << number_literal) ))))) ;) })) (expression_statement "iVar15 = FUN_0003dc20(iVar26);" (assignment_expression "iVar15 = FUN_0003dc20(iVar26)" identifier = (call_expression "FUN_0003dc20(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (if_statement "if (((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||\n           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)) {\n          iVar15 = FUN_0003dd80(iVar26);\n          if (iVar15 != 0) goto LAB_0002410f;\n          if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }\n          else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }\nLAB_0002402d:\n          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;\n          if (uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }\n          (*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);\n          local_a0 = (undefined4 ******)((int)local_a0 + uVar36);\n          puVar6[9] = local_a8;\n          puVar7 = (uint *)puVar6[5];\n          if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {\n            puVar7[3] = (int)local_a8 - local_8c;\n          }\n          local_a8 = (undefined4 ******)((int)local_a8 + 1);\n          if ((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          FUN_0003dd80(iVar26);\nLAB_0002410f:\n          if (puVar6[6] != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (puVar6[8] != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          iVar15 = FUN_00041590(iVar26);\n          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }\n        }" if (parenthesized_expression "(((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||\n           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300))" ( (binary_expression "((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||\n           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)" (parenthesized_expression "((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0))))" ( (binary_expression "(((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))" (parenthesized_expression "(((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0))" ( (binary_expression "((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)" (parenthesized_expression "((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0))" ( (binary_expression "(iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)" (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)" ( (comma_expression "iVar15 = FUN_0003dc90(iVar26), iVar15 == 0" (assignment_expression "iVar15 = FUN_0003dc90(iVar26)" identifier = (call_expression "FUN_0003dc90(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) , (binary_expression "iVar15 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)" ( (comma_expression "iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0" (assignment_expression "iVar15 = FUN_0003ddd0(iVar26)" identifier = (call_expression "FUN_0003ddd0(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) , (binary_expression "iVar15 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))" ( (parenthesized_expression "(puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0))" ( (binary_expression "puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)" (binary_expression "puVar6[5] != 0" (subscript_expression "puVar6[5]" identifier [ number_literal ]) != number_literal) || (parenthesized_expression "((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)" ( (binary_expression "(*(byte *)(puVar6 + 0xf) & 0x3f) == 0" (parenthesized_expression "(*(byte *)(puVar6 + 0xf) & 0x3f)" ( (binary_expression "*(byte *)(puVar6 + 0xf) & 0x3f" (pointer_expression "*(byte *)(puVar6 + 0xf)" * (cast_expression "(byte *)(puVar6 + 0xf)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xf)" ( (binary_expression "puVar6 + 0xf" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) ))) )) || (parenthesized_expression "(((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)" ( (binary_expression "((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300" (parenthesized_expression "((uint)puVar6[0xf] >> 0xc & 0xfff00)" ( (binary_expression "(uint)puVar6[0xf] >> 0xc & 0xfff00" (binary_expression "(uint)puVar6[0xf] >> 0xc" (cast_expression "(uint)puVar6[0xf]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar6[0xf]" identifier [ number_literal ])) >> number_literal) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          iVar15 = FUN_0003dd80(iVar26);\n          if (iVar15 != 0) goto LAB_0002410f;\n          if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }\n          else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }\nLAB_0002402d:\n          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;\n          if (uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }\n          (*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);\n          local_a0 = (undefined4 ******)((int)local_a0 + uVar36);\n          puVar6[9] = local_a8;\n          puVar7 = (uint *)puVar6[5];\n          if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {\n            puVar7[3] = (int)local_a8 - local_8c;\n          }\n          local_a8 = (undefined4 ******)((int)local_a8 + 1);\n          if ((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }" { (expression_statement "iVar15 = FUN_0003dd80(iVar26);" (assignment_expression "iVar15 = FUN_0003dd80(iVar26)" identifier = (call_expression "FUN_0003dd80(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (if_statement "if (iVar15 != 0) goto LAB_0002410f;" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002410f;" goto statement_identifier ;)) (if_statement "if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }\n          else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }" if (parenthesized_expression "(((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0))" ( (binary_expression "((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)" (parenthesized_expression "((*(byte *)(puVar6 + 0xf) & 0x3f) == 8)" ( (binary_expression "(*(byte *)(puVar6 + 0xf) & 0x3f) == 8" (parenthesized_expression "(*(byte *)(puVar6 + 0xf) & 0x3f)" ( (binary_expression "*(byte *)(puVar6 + 0xf) & 0x3f" (pointer_expression "*(byte *)(puVar6 + 0xf)" * (cast_expression "(byte *)(puVar6 + 0xf)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xf)" ( (binary_expression "puVar6 + 0xf" identifier + number_literal) )))) & number_literal) )) == number_literal) )) || (parenthesized_expression "(pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)" ( (comma_expression "pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0" (assignment_expression "pcVar24 = strchr((char *)*puVar6,1)" identifier = (call_expression "strchr((char *)*puVar6,1)" identifier (argument_list "((char *)*puVar6,1)" ( (cast_expression "(char *)*puVar6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier)) , number_literal )))) , (binary_expression "pcVar24 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }" { (expression_statement "local_b4 = (undefined4 *******)puVar6[6];" (assignment_expression "local_b4 = (undefined4 *******)puVar6[6]" identifier = (cast_expression "(undefined4 *******)puVar6[6]" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "puVar6[6]" identifier [ number_literal ]))) ;) (if_statement "if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;" if (parenthesized_expression "(local_b4 != (undefined4 *******)0x0)" ( (binary_expression "local_b4 != (undefined4 *******)0x0" identifier != (cast_expression "(undefined4 *******)0x0" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00023e89;" goto statement_identifier ;)) (expression_statement "piVar25 = (int *)puVar6[8];" (assignment_expression "piVar25 = (int *)puVar6[8]" identifier = (cast_expression "(int *)puVar6[8]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[8]" identifier [ number_literal ]))) ;) (if_statement "if (piVar25 == (int *)0x0) goto LAB_0002402d;" if (parenthesized_expression "(piVar25 == (int *)0x0)" ( (binary_expression "piVar25 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002402d;" goto statement_identifier ;)) (expression_statement "local_a4 = (undefined4 *****)((int)local_a8 - local_8c);" (assignment_expression "local_a4 = (undefined4 *****)((int)local_a8 - local_8c)" identifier = (cast_expression "(undefined4 *****)((int)local_a8 - local_8c)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_a8 - local_8c)" ( (binary_expression "(int)local_a8 - local_8c" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (labeled_statement "LAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);" statement_identifier : (expression_statement "uVar13 = *(undefined4 *)((int)local_9c + 0x70);" (assignment_expression "uVar13 = *(undefined4 *)((int)local_9c + 0x70)" identifier = (pointer_expression "*(undefined4 *)((int)local_9c + 0x70)" * (cast_expression "(undefined4 *)((int)local_9c + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c + 0x70)" ( (binary_expression "(int)local_9c + 0x70" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (do_statement "do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);" do (compound_statement "{\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            }" { (expression_statement "iVar15 = piVar25[3];" (assignment_expression "iVar15 = piVar25[3]" identifier = (subscript_expression "piVar25[3]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(piVar25[2] + 4) = uVar13;" (assignment_expression "*(undefined4 *)(piVar25[2] + 4) = uVar13" (pointer_expression "*(undefined4 *)(piVar25[2] + 4)" * (cast_expression "(undefined4 *)(piVar25[2] + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar25[2] + 4)" ( (binary_expression "piVar25[2] + 4" (subscript_expression "piVar25[2]" identifier [ number_literal ]) + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;" (assignment_expression "*(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc" (pointer_expression "*(uint *)(iVar15 + 4)" * (cast_expression "(uint *)(iVar15 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 4)" ( (binary_expression "iVar15 + 4" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc" (binary_expression "*(uint *)(iVar15 + 4) & 0xfff" (pointer_expression "*(uint *)(iVar15 + 4)" * (cast_expression "(uint *)(iVar15 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 4)" ( (binary_expression "iVar15 + 4" identifier + number_literal) )))) & number_literal) | (binary_expression "(int)local_a4 << 0xc" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal))) ;) (expression_statement "piVar25 = (int *)*piVar25;" (assignment_expression "piVar25 = (int *)*piVar25" identifier = (cast_expression "(int *)*piVar25" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar25" * identifier))) ;) }) while (parenthesized_expression "(piVar25 != (int *)0x0)" ( (binary_expression "piVar25 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) }) (else_clause "else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }" else (compound_statement "{\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }" { (expression_statement "uVar13 = FUN_000203f0(0);" (assignment_expression "uVar13 = FUN_000203f0(0)" identifier = (call_expression "FUN_000203f0(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "puVar6[0xc] = uVar13;" (assignment_expression "puVar6[0xc] = uVar13" (subscript_expression "puVar6[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_b4 = (undefined4 *******)puVar6[6];" (assignment_expression "local_b4 = (undefined4 *******)puVar6[6]" identifier = (cast_expression "(undefined4 *******)puVar6[6]" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "puVar6[6]" identifier [ number_literal ]))) ;) (if_statement "if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }" if (parenthesized_expression "(local_b4 == (undefined4 *******)0x0)" ( (binary_expression "local_b4 == (undefined4 *******)0x0" identifier == (cast_expression "(undefined4 *******)0x0" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }" { (expression_statement "piVar25 = (int *)puVar6[8];" (assignment_expression "piVar25 = (int *)puVar6[8]" identifier = (cast_expression "(int *)puVar6[8]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[8]" identifier [ number_literal ]))) ;) (expression_statement "local_a4 = (undefined4 *****)((int)local_a8 - local_8c);" (assignment_expression "local_a4 = (undefined4 *****)((int)local_a8 - local_8c)" identifier = (cast_expression "(undefined4 *****)((int)local_a8 - local_8c)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_a8 - local_8c)" ( (binary_expression "(int)local_a8 - local_8c" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (labeled_statement "joined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;" statement_identifier : (if_statement "if (piVar25 != (int *)0x0) goto LAB_00023ff8;" if (parenthesized_expression "(piVar25 != (int *)0x0)" ( (binary_expression "piVar25 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00023ff8;" goto statement_identifier ;))) }) (else_clause "else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }" else (compound_statement "{\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }" { (labeled_statement "LAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);" statement_identifier : (expression_statement "iVar15 = *(int *)((int)local_b4 + 0x24);" (assignment_expression "iVar15 = *(int *)((int)local_b4 + 0x24)" identifier = (pointer_expression "*(int *)((int)local_b4 + 0x24)" * (cast_expression "(int *)((int)local_b4 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + 0x24)" ( (binary_expression "(int)local_b4 + 0x24" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (if_statement "if (iVar15 == -1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }" if (parenthesized_expression "(iVar15 == -1)" ( (binary_expression "iVar15 == -1" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }" { comment (expression_statement "FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");" (call_expression "FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols")" identifier (argument_list "("../../gas/ecoff.c",0x1020,"ecoff_build_symbols")" ( (string_literal ""../../gas/ecoff.c"" " string_content ") , number_literal , (string_literal ""ecoff_build_symbols"" " string_content ") ))) ;) })) (expression_statement "uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;" (assignment_expression "uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc" identifier = (binary_expression "puVar6[0xf] & 0xfff | iVar15 << 0xc" (binary_expression "puVar6[0xf] & 0xfff" (subscript_expression "puVar6[0xf]" identifier [ number_literal ]) & number_literal) | (binary_expression "iVar15 << 0xc" identifier << number_literal))) ;) (expression_statement "puVar6[0xf] = uVar32;" (assignment_expression "puVar6[0xf] = uVar32" (subscript_expression "puVar6[0xf]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }" if (parenthesized_expression "(((ushort)uVar32 & 0x7c0) != 0x2c0)" ( (binary_expression "((ushort)uVar32 & 0x7c0) != 0x2c0" (parenthesized_expression "((ushort)uVar32 & 0x7c0)" ( (binary_expression "(ushort)uVar32 & 0x7c0" (cast_expression "(ushort)uVar32" ( (type_descriptor "ushort" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }" { (expression_statement "puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);" (assignment_expression "puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30)" (subscript_expression "puVar6[0xc]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)((int)local_b4 + 0x30)" * (cast_expression "(undefined4 *)((int)local_b4 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + 0x30)" ( (binary_expression "(int)local_b4 + 0x30" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) })) (expression_statement "bVar11 = *(byte *)((int)local_b4 + 0x3c);" (assignment_expression "bVar11 = *(byte *)((int)local_b4 + 0x3c)" identifier = (pointer_expression "*(byte *)((int)local_b4 + 0x3c)" * (cast_expression "(byte *)((int)local_b4 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + 0x3c)" ( (binary_expression "(int)local_b4 + 0x3c" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }" if (parenthesized_expression "(((bVar11 & 0x3f) + 0x39 & 0x3b) == 0)" ( (binary_expression "((bVar11 & 0x3f) + 0x39 & 0x3b) == 0" (parenthesized_expression "((bVar11 & 0x3f) + 0x39 & 0x3b)" ( (binary_expression "(bVar11 & 0x3f) + 0x39 & 0x3b" (binary_expression "(bVar11 & 0x3f) + 0x39" (parenthesized_expression "(bVar11 & 0x3f)" ( (binary_expression "bVar11 & 0x3f" identifier & number_literal) )) + number_literal) & number_literal) )) == number_literal) )) (compound_statement "{\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }" { (expression_statement "local_a4 = (undefined4 *****)((int)local_a8 - local_8c);" (assignment_expression "local_a4 = (undefined4 *****)((int)local_a8 - local_8c)" identifier = (cast_expression "(undefined4 *****)((int)local_a8 - local_8c)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_a8 - local_8c)" ( (binary_expression "(int)local_a8 - local_8c" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "*(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;" (assignment_expression "*(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000" (pointer_expression "*(uint *)((int)local_b4 + 0x3c)" * (cast_expression "(uint *)((int)local_b4 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + 0x3c)" ( (binary_expression "(int)local_b4 + 0x3c" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000" (binary_expression "*(uint *)((int)local_b4 + 0x3c) & 0xfff" (pointer_expression "*(uint *)((int)local_b4 + 0x3c)" * (cast_expression "(uint *)((int)local_b4 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + 0x3c)" ( (binary_expression "(int)local_b4 + 0x3c" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) | (binary_expression "((int)local_a4 + 1) * 0x1000" (parenthesized_expression "((int)local_a4 + 1)" ( (binary_expression "(int)local_a4 + 1" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) * number_literal))) ;) (expression_statement "(*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);" (call_expression "(*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68)" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68)" ( identifier , (binary_expression "(int)local_b4 + 0x30" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , (binary_expression "pcVar14 + iVar15 * uVar36 + local_68" (binary_expression "pcVar14 + iVar15 * uVar36" identifier + (binary_expression "iVar15 * uVar36" identifier * identifier)) + identifier) ))) ;) (if_statement "if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }" if (parenthesized_expression "((bVar11 & 0x37) != 6)" ( (binary_expression "(bVar11 & 0x37) != 6" (parenthesized_expression "(bVar11 & 0x37)" ( (binary_expression "bVar11 & 0x37" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }" { (if_statement "if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }" if (parenthesized_expression "(((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0))" ( (binary_expression "((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)" (parenthesized_expression "((bVar11 & 0x3f) == 7)" ( (binary_expression "(bVar11 & 0x3f) == 7" (parenthesized_expression "(bVar11 & 0x3f)" ( (binary_expression "bVar11 & 0x3f" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)" ( (binary_expression "(*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0" (parenthesized_expression "(*(ushort *)(puVar6 + 0xf) & 0x7c0)" ( (binary_expression "*(ushort *)(puVar6 + 0xf) & 0x7c0" (pointer_expression "*(ushort *)(puVar6 + 0xf)" * (cast_expression "(ushort *)(puVar6 + 0xf)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xf)" ( (binary_expression "puVar6 + 0xf" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                    if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }" { (if_statement "if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }" if (parenthesized_expression "(iVar26 == 0)" ( (binary_expression "iVar26 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }" { comment (expression_statement "FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");" (call_expression "FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols")" identifier (argument_list "("../../gas/ecoff.c",0x105a,"ecoff_build_symbols")" ( (string_literal ""../../gas/ecoff.c"" " string_content ") , number_literal , (string_literal ""ecoff_build_symbols"" " string_content ") ))) ;) })) (if_statement "if ((int *)puVar6[5] == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }" if (parenthesized_expression "((int *)puVar6[5] == (int *)0x0)" ( (binary_expression "(int *)puVar6[5] == (int *)0x0" (cast_expression "(int *)puVar6[5]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[5]" identifier [ number_literal ])) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }" { comment (expression_statement "FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");" (call_expression "FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols")" identifier (argument_list "("../../gas/ecoff.c",0x105b,"ecoff_build_symbols")" ( (string_literal ""../../gas/ecoff.c"" " string_content ") , number_literal , (string_literal ""ecoff_build_symbols"" " string_content ") ))) ;) })) (expression_statement "uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);" (assignment_expression "uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4)" identifier = (pointer_expression "*(undefined4 *)(*(int *)puVar6[5] + 4)" * (cast_expression "(undefined4 *)(*(int *)puVar6[5] + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar6[5] + 4)" ( (binary_expression "*(int *)puVar6[5] + 4" (pointer_expression "*(int *)puVar6[5]" * (cast_expression "(int *)puVar6[5]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[5]" identifier [ number_literal ]))) + number_literal) ))))) ;) (expression_statement "iVar15 = FUN_0003e1d0(iVar26);" (assignment_expression "iVar15 = FUN_0003e1d0(iVar26)" identifier = (call_expression "FUN_0003e1d0(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (expression_statement "iVar21 = FUN_0003e1d0(uVar13);" (assignment_expression "iVar21 = FUN_0003e1d0(uVar13)" identifier = (call_expression "FUN_0003e1d0(uVar13)" identifier (argument_list "(uVar13)" ( identifier )))) ;) (if_statement "if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }" if (parenthesized_expression "(iVar15 != iVar21)" ( (binary_expression "iVar15 != iVar21" identifier != identifier) )) (compound_statement "{\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }" { (expression_statement "uVar22 = dcgettext(0,".begin/.bend in different segments",5);" (assignment_expression "uVar22 = dcgettext(0,".begin/.bend in different segments",5)" identifier = (call_expression "dcgettext(0,".begin/.bend in different segments",5)" identifier (argument_list "(0,".begin/.bend in different segments",5)" ( number_literal , (string_literal "".begin/.bend in different segments"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_00031540(uVar22);" (call_expression "FUN_00031540(uVar22)" identifier (argument_list "(uVar22)" ( identifier ))) ;) })) (expression_statement "lVar45 = FUN_0003fad0(iVar26);" (assignment_expression "lVar45 = FUN_0003fad0(iVar26)" identifier = (call_expression "FUN_0003fad0(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (expression_statement "lVar46 = FUN_0003fad0(uVar13);" (assignment_expression "lVar46 = FUN_0003fad0(uVar13)" identifier = (call_expression "FUN_0003fad0(uVar13)" identifier (argument_list "(uVar13)" ( identifier )))) ;) (expression_statement "piVar25 = (int *)puVar6[8];" (assignment_expression "piVar25 = (int *)puVar6[8]" identifier = (cast_expression "(int *)puVar6[8]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[8]" identifier [ number_literal ]))) ;) (expression_statement "*(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;" (assignment_expression "*(longlong *)(puVar6 + 0xd) = lVar45 - lVar46" (pointer_expression "*(longlong *)(puVar6 + 0xd)" * (cast_expression "(longlong *)(puVar6 + 0xd)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xd)" ( (binary_expression "puVar6 + 0xd" identifier + number_literal) )))) = (binary_expression "lVar45 - lVar46" identifier - identifier)) ;) }) (else_clause "else {\n                    piVar25 = (int *)puVar6[8];\n                  }" else (compound_statement "{\n                    piVar25 = (int *)puVar6[8];\n                  }" { (expression_statement "piVar25 = (int *)puVar6[8];" (assignment_expression "piVar25 = (int *)puVar6[8]" identifier = (cast_expression "(int *)puVar6[8]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[8]" identifier [ number_literal ]))) ;) }))) (if_statement "if (piVar25 == (int *)0x0) goto LAB_0002402d;" if (parenthesized_expression "(piVar25 == (int *)0x0)" ( (binary_expression "piVar25 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002402d;" goto statement_identifier ;)) (goto_statement "goto LAB_00023ff8;" goto statement_identifier ;) })) }) (else_clause "else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }" else (compound_statement "{\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }" { (if_statement "if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }" if (parenthesized_expression "(*(int *)((int)local_b4 + 0x1c) == 0)" ( (binary_expression "*(int *)((int)local_b4 + 0x1c) == 0" (pointer_expression "*(int *)((int)local_b4 + 0x1c)" * (cast_expression "(int *)((int)local_b4 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + 0x1c)" ( (binary_expression "(int)local_b4 + 0x1c" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }" { comment (expression_statement "FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");" (call_expression "FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols")" identifier (argument_list "("../../gas/ecoff.c",0x1035,"ecoff_build_symbols")" ( (string_literal ""../../gas/ecoff.c"" " string_content ") , number_literal , (string_literal ""ecoff_build_symbols"" " string_content ") ))) ;) })) (expression_statement "local_a4 = (undefined4 *****)((int)local_a8 - local_8c);" (assignment_expression "local_a4 = (undefined4 *****)((int)local_a8 - local_8c)" identifier = (cast_expression "(undefined4 *****)((int)local_a8 - local_8c)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_a8 - local_8c)" ( (binary_expression "(int)local_a8 - local_8c" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "*(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;" (assignment_expression "*(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1" (pointer_expression "*(int *)(*(int *)((int)local_b4 + 0x1c) + 4)" * (cast_expression "(int *)(*(int *)((int)local_b4 + 0x1c) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)local_b4 + 0x1c) + 4)" ( (binary_expression "*(int *)((int)local_b4 + 0x1c) + 4" (pointer_expression "*(int *)((int)local_b4 + 0x1c)" * (cast_expression "(int *)((int)local_b4 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + 0x1c)" ( (binary_expression "(int)local_b4 + 0x1c" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) )))) = (binary_expression "(int)local_a4 + 1" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (if_statement "if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }" if (parenthesized_expression "((bVar11 & 0x37) != 6)" ( (binary_expression "(bVar11 & 0x37) != 6" (parenthesized_expression "(bVar11 & 0x37)" ( (binary_expression "bVar11 & 0x37" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }" { (expression_statement "piVar25 = (int *)puVar6[8];" (assignment_expression "piVar25 = (int *)puVar6[8]" identifier = (cast_expression "(int *)puVar6[8]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[8]" identifier [ number_literal ]))) ;) (goto_statement "goto joined_r0x00024174;" goto statement_identifier ;) })) }))) (if_statement "if (iVar26 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }" if (parenthesized_expression "(iVar26 == 0)" ( (binary_expression "iVar26 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }" { comment (expression_statement "FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");" (call_expression "FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols")" identifier (argument_list "("../../gas/ecoff.c",0x1042,"ecoff_build_symbols")" ( (string_literal ""../../gas/ecoff.c"" " string_content ") , number_literal , (string_literal ""ecoff_build_symbols"" " string_content ") ))) ;) })) (if_statement "if (*(int *)((int)local_b4 + 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }" if (parenthesized_expression "(*(int *)((int)local_b4 + 4) == 0)" ( (binary_expression "*(int *)((int)local_b4 + 4) == 0" (pointer_expression "*(int *)((int)local_b4 + 4)" * (cast_expression "(int *)((int)local_b4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + 4)" ( (binary_expression "(int)local_b4 + 4" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }" { comment (expression_statement "FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");" (call_expression "FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols")" identifier (argument_list "("../../gas/ecoff.c",0x1043,"ecoff_build_symbols")" ( (string_literal ""../../gas/ecoff.c"" " string_content ") , number_literal , (string_literal ""ecoff_build_symbols"" " string_content ") ))) ;) })) (expression_statement "iVar15 = FUN_0003e1d0(iVar26);" (assignment_expression "iVar15 = FUN_0003e1d0(iVar26)" identifier = (call_expression "FUN_0003e1d0(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (expression_statement "iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));" (assignment_expression "iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4))" identifier = (call_expression "FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4))" identifier (argument_list "(*(undefined4 *)((int)local_b4 + 4))" ( (pointer_expression "*(undefined4 *)((int)local_b4 + 4)" * (cast_expression "(undefined4 *)((int)local_b4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + 4)" ( (binary_expression "(int)local_b4 + 4" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (if_statement "if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }" if (parenthesized_expression "(iVar15 != iVar21)" ( (binary_expression "iVar15 != iVar21" identifier != identifier) )) (compound_statement "{\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }" { (expression_statement "uVar13 = dcgettext(0,".begin/.bend in different segments",5);" (assignment_expression "uVar13 = dcgettext(0,".begin/.bend in different segments",5)" identifier = (call_expression "dcgettext(0,".begin/.bend in different segments",5)" identifier (argument_list "(0,".begin/.bend in different segments",5)" ( number_literal , (string_literal "".begin/.bend in different segments"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_00031540(uVar13);" (call_expression "FUN_00031540(uVar13)" identifier (argument_list "(uVar13)" ( identifier ))) ;) })) (expression_statement "lVar45 = FUN_0003fad0(iVar26);" (assignment_expression "lVar45 = FUN_0003fad0(iVar26)" identifier = (call_expression "FUN_0003fad0(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (expression_statement "lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));" (assignment_expression "lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4))" identifier = (call_expression "FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4))" identifier (argument_list "(*(undefined4 *)((int)local_b4 + 4))" ( (pointer_expression "*(undefined4 *)((int)local_b4 + 4)" * (cast_expression "(undefined4 *)((int)local_b4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + 4)" ( (binary_expression "(int)local_b4 + 4" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "uVar10 = lVar45 - lVar46;" (assignment_expression "uVar10 = lVar45 - lVar46" identifier = (binary_expression "lVar45 - lVar46" identifier - identifier)) ;) (if_statement "if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }" if (parenthesized_expression "((uVar10 & 1) == 0)" ( (binary_expression "(uVar10 & 1) == 0" (parenthesized_expression "(uVar10 & 1)" ( (binary_expression "uVar10 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }" { (expression_statement "*(ulonglong *)(puVar6 + 0xd) = uVar10;" (assignment_expression "*(ulonglong *)(puVar6 + 0xd) = uVar10" (pointer_expression "*(ulonglong *)(puVar6 + 0xd)" * (cast_expression "(ulonglong *)(puVar6 + 0xd)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xd)" ( (binary_expression "puVar6 + 0xd" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }" else (compound_statement "{\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }" { (expression_statement "*(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;" (assignment_expression "*(ulonglong *)(puVar6 + 0xd) = uVar10 + 1" (pointer_expression "*(ulonglong *)(puVar6 + 0xd)" * (cast_expression "(ulonglong *)(puVar6 + 0xd)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xd)" ( (binary_expression "puVar6 + 0xd" identifier + number_literal) )))) = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) }))) (expression_statement "iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));" (assignment_expression "iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4))" identifier = (call_expression "FUN_000414f0(*(undefined4 *)((int)local_b4 + 4))" identifier (argument_list "(*(undefined4 *)((int)local_b4 + 4))" ( (pointer_expression "*(undefined4 *)((int)local_b4 + 4)" * (cast_expression "(undefined4 *)((int)local_b4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + 4)" ( (binary_expression "(int)local_b4 + 4" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "uVar13 = puVar6[0xe];" (assignment_expression "uVar13 = puVar6[0xe]" identifier = (subscript_expression "puVar6[0xe]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];" (assignment_expression "*(undefined4 *)(iVar15 + 0x28) = puVar6[0xd]" (pointer_expression "*(undefined4 *)(iVar15 + 0x28)" * (cast_expression "(undefined4 *)(iVar15 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x28)" ( (binary_expression "iVar15 + 0x28" identifier + number_literal) )))) = (subscript_expression "puVar6[0xd]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(iVar15 + 0x2c) = uVar13;" (assignment_expression "*(undefined4 *)(iVar15 + 0x2c) = uVar13" (pointer_expression "*(undefined4 *)(iVar15 + 0x2c)" * (cast_expression "(undefined4 *)(iVar15 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x2c)" ( (binary_expression "iVar15 + 0x2c" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar25 = (int *)puVar6[8];" (assignment_expression "piVar25 = (int *)puVar6[8]" identifier = (cast_expression "(int *)puVar6[8]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[8]" identifier [ number_literal ]))) ;) (if_statement "if (piVar25 != (int *)0x0) goto LAB_00024237;" if (parenthesized_expression "(piVar25 != (int *)0x0)" ( (binary_expression "piVar25 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00024237;" goto statement_identifier ;)) }))) }))) (labeled_statement "LAB_0002402d:\n          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;" statement_identifier : (expression_statement "uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;" (assignment_expression "uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f" identifier = (binary_expression "(int)pcVar1 - (int)local_a0 >> 0x1f" (binary_expression "(int)pcVar1 - (int)local_a0" (cast_expression "(int)pcVar1" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;)) (if_statement "if (uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }" if (parenthesized_expression "(uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36))" ( (binary_expression "uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)" (binary_expression "uVar32 < uVar16" identifier < identifier) || (binary_expression "uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)" (binary_expression "uVar32 - uVar16" identifier - identifier) < (call_expression "(uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)((int)pcVar1 - (int)local_a0) < uVar36)" ( (binary_expression "(uint)((int)pcVar1 - (int)local_a0) < uVar36" (call_expression "(uint)((int)pcVar1 - (int)local_a0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pcVar1 - (int)local_a0)" ( (binary_expression "(int)pcVar1 - (int)local_a0" (cast_expression "(int)pcVar1" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < identifier) ))))) )) (compound_statement "{\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }" { (expression_statement "local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);" (assignment_expression "local_a0 = (undefined4 ******)FUN_0001ff00(uVar36)" identifier = (cast_expression "(undefined4 ******)FUN_0001ff00(uVar36)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "FUN_0001ff00(uVar36)" identifier (argument_list "(uVar36)" ( identifier ))))) ;) })) (expression_statement "(*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);" (call_expression "(*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0)" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(DAT_00081544,puVar6 + 0xc,local_a0)" ( identifier , (binary_expression "puVar6 + 0xc" identifier + number_literal) , identifier ))) ;) (expression_statement "local_a0 = (undefined4 ******)((int)local_a0 + uVar36);" (assignment_expression "local_a0 = (undefined4 ******)((int)local_a0 + uVar36)" identifier = (cast_expression "(undefined4 ******)((int)local_a0 + uVar36)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)local_a0 + uVar36)" ( (binary_expression "(int)local_a0 + uVar36" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "puVar6[9] = local_a8;" (assignment_expression "puVar6[9] = local_a8" (subscript_expression "puVar6[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7 = (uint *)puVar6[5];" (assignment_expression "puVar7 = (uint *)puVar6[5]" identifier = (cast_expression "(uint *)puVar6[5]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[5]" identifier [ number_literal ]))) ;) (if_statement "if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {\n            puVar7[3] = (int)local_a8 - local_8c;\n          }" if (parenthesized_expression "((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6))" ( (binary_expression "(puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)" (parenthesized_expression "(puVar7 != (uint *)0x0)" ( (binary_expression "puVar7 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((undefined4 *)*puVar7 == puVar6)" ( (binary_expression "(undefined4 *)*puVar7 == puVar6" (cast_expression "(undefined4 *)*puVar7" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier)) == identifier) ))) )) (compound_statement "{\n            puVar7[3] = (int)local_a8 - local_8c;\n          }" { (expression_statement "puVar7[3] = (int)local_a8 - local_8c;" (assignment_expression "puVar7[3] = (int)local_a8 - local_8c" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = (binary_expression "(int)local_a8 - local_8c" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;) })) (expression_statement "local_a8 = (undefined4 ******)((int)local_a8 + 1);" (assignment_expression "local_a8 = (undefined4 ******)((int)local_a8 + 1)" identifier = (cast_expression "(undefined4 ******)((int)local_a8 + 1)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)local_a8 + 1)" ( (binary_expression "(int)local_a8 + 1" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }" if (parenthesized_expression "((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6))" ( (binary_expression "(iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)" (parenthesized_expression "(iVar26 != 0)" ( (binary_expression "iVar26 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)" ( (comma_expression "iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6" (assignment_expression "iVar15 = FUN_00041590(iVar26)" identifier = (call_expression "FUN_00041590(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) , (binary_expression "*(undefined4 **)(iVar15 + 0x10) == puVar6" (pointer_expression "*(undefined4 **)(iVar15 + 0x10)" * (cast_expression "(undefined4 **)(iVar15 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0x10)" ( (binary_expression "iVar15 + 0x10" identifier + number_literal) )))) == identifier)) ))) )) (compound_statement "{\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }" { (if_statement "if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }" if (parenthesized_expression "((*(byte *)(puVar6 + 0xf) & 0x37) == 6)" ( (binary_expression "(*(byte *)(puVar6 + 0xf) & 0x37) == 6" (parenthesized_expression "(*(byte *)(puVar6 + 0xf) & 0x37)" ( (binary_expression "*(byte *)(puVar6 + 0xf) & 0x37" (pointer_expression "*(byte *)(puVar6 + 0xf)" * (cast_expression "(byte *)(puVar6 + 0xf)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xf)" ( (binary_expression "puVar6 + 0xf" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }" { (expression_statement "puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;" (assignment_expression "puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000" (subscript_expression "puVar6[0xf]" identifier [ number_literal ]) = (binary_expression "puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000" (binary_expression "puVar6[0xf] & 0xfff" (subscript_expression "puVar6[0xf]" identifier [ number_literal ]) & number_literal) | (binary_expression "(((int)local_a8 - local_8c) + -1) * 0x1000" (parenthesized_expression "(((int)local_a8 - local_8c) + -1)" ( (binary_expression "((int)local_a8 - local_8c) + -1" (parenthesized_expression "((int)local_a8 - local_8c)" ( (binary_expression "(int)local_a8 - local_8c" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )) + number_literal) )) * number_literal))) ;) })) (goto_statement "goto LAB_00024347;" goto statement_identifier ;) })) }) (else_clause "else {\n          FUN_0003dd80(iVar26);\nLAB_0002410f:\n          if (puVar6[6] != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (puVar6[8] != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          iVar15 = FUN_00041590(iVar26);\n          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }\n        }" else (compound_statement "{\n          FUN_0003dd80(iVar26);\nLAB_0002410f:\n          if (puVar6[6] != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (puVar6[8] != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          iVar15 = FUN_00041590(iVar26);\n          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }\n        }" { (expression_statement "FUN_0003dd80(iVar26);" (call_expression "FUN_0003dd80(iVar26)" identifier (argument_list "(iVar26)" ( identifier ))) ;) (labeled_statement "LAB_0002410f:\n          if (puVar6[6] != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }" statement_identifier : (if_statement "if (puVar6[6] != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }" if (parenthesized_expression "(puVar6[6] != 0)" ( (binary_expression "puVar6[6] != 0" (subscript_expression "puVar6[6]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }" { comment (expression_statement "FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");" (call_expression "FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols")" identifier (argument_list "("../../gas/ecoff.c",0x101e,"ecoff_build_symbols")" ( (string_literal ""../../gas/ecoff.c"" " string_content ") , number_literal , (string_literal ""ecoff_build_symbols"" " string_content ") ))) ;) }))) (if_statement "if (puVar6[8] != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }" if (parenthesized_expression "(puVar6[8] != 0)" ( (binary_expression "puVar6[8] != 0" (subscript_expression "puVar6[8]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }" { comment (expression_statement "FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");" (call_expression "FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols")" identifier (argument_list "("../../gas/ecoff.c",0x1069,"ecoff_build_symbols")" ( (string_literal ""../../gas/ecoff.c"" " string_content ") , number_literal , (string_literal ""ecoff_build_symbols"" " string_content ") ))) ;) })) (expression_statement "iVar15 = FUN_00041590(iVar26);" (assignment_expression "iVar15 = FUN_00041590(iVar26)" identifier = (call_expression "FUN_00041590(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (if_statement "if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }" if (parenthesized_expression "(puVar6 == *(undefined4 **)(iVar15 + 0x10))" ( (binary_expression "puVar6 == *(undefined4 **)(iVar15 + 0x10)" identifier == (pointer_expression "*(undefined4 **)(iVar15 + 0x10)" * (cast_expression "(undefined4 **)(iVar15 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0x10)" ( (binary_expression "iVar15 + 0x10" identifier + number_literal) ))))) )) (compound_statement "{\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }" { (labeled_statement "LAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);" statement_identifier : (expression_statement "puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);" (assignment_expression "puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70)" (subscript_expression "puVar6[0xb]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)((int)local_9c + 0x70)" * (cast_expression "(undefined4 *)((int)local_9c + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c + 0x70)" ( (binary_expression "(int)local_9c + 0x70" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (expression_statement "iVar15 = FUN_0003dc20(iVar26);" (assignment_expression "iVar15 = FUN_0003dc20(iVar26)" identifier = (call_expression "FUN_0003dc20(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (if_statement "if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }" if (parenthesized_expression "((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0))" ( (binary_expression "(iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)" (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)" ( (comma_expression "iVar26 = FUN_0003dc90(iVar26), iVar26 != 0" (assignment_expression "iVar26 = FUN_0003dc90(iVar26)" identifier = (call_expression "FUN_0003dc90(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) , (binary_expression "iVar26 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }" { (expression_statement "*(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;" (assignment_expression "*(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf" (pointer_expression "*(byte *)((int)local_9c + 0x44U)" * (cast_expression "(byte *)((int)local_9c + 0x44U)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c + 0x44U)" ( (binary_expression "(int)local_9c + 0x44U" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)local_9c + 0x44U) & 0xdf" (pointer_expression "*(byte *)((int)local_9c + 0x44U)" * (cast_expression "(byte *)((int)local_9c + 0x44U)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c + 0x44U)" ( (binary_expression "(int)local_9c + 0x44U" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal)) ;) })) })) }))) (if_statement "if (local_70 <= puVar6 + 0x10) goto LAB_00024380;" if (parenthesized_expression "(local_70 <= puVar6 + 0x10)" ( (binary_expression "local_70 <= puVar6 + 0x10" identifier <= (binary_expression "puVar6 + 0x10" identifier + number_literal)) )) (goto_statement "goto LAB_00024380;" goto statement_identifier ;)) (expression_statement "uVar32 = puVar6[0x14];" (assignment_expression "uVar32 = puVar6[0x14]" identifier = (subscript_expression "puVar6[0x14]" identifier [ number_literal ])) ;) (expression_statement "puVar6 = puVar6 + 0x10;" (assignment_expression "puVar6 = puVar6 + 0x10" identifier = (binary_expression "puVar6 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (goto_statement "goto LAB_000243a4;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(param_1 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x30) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x30)" * (cast_expression "(undefined4 *)(param_1 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_0002554e:\n  *(undefined4 *)(param_1 + 0x3c) = 0;" statement_identifier : (expression_statement "*(undefined4 *)(param_1 + 0x3c) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x3c) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x3c)" * (cast_expression "(undefined4 *)(param_1 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "*(undefined4 *)(param_1 + 0x40) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x40) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x40)" * (cast_expression "(undefined4 *)(param_1 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x44) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x44) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x44)" * (cast_expression "(undefined4 *)(param_1 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x50) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x50) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x50)" * (cast_expression "(undefined4 *)(param_1 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(param_1 + 0x4c) = local_68;" (assignment_expression "*(uint *)(param_1 + 0x4c) = local_68" (pointer_expression "*(uint *)(param_1 + 0x4c)" * (cast_expression "(uint *)(param_1 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) )))) = identifier) ;) (labeled_statement "LAB_00024eaa:\n  uVar16 = FUN_0001ff70(local_68,0);" statement_identifier : (expression_statement "uVar16 = FUN_0001ff70(local_68,0);" (assignment_expression "uVar16 = FUN_0001ff70(local_68,0)" identifier = (call_expression "FUN_0001ff70(local_68,0)" identifier (argument_list "(local_68,0)" ( identifier , number_literal )))) ;)) (expression_statement "*(uint *)(param_1 + 0x48) =\n       uVar16 - *(uint *)(param_1 + 0x4c) >> 2 |\n       (-(uint)(uVar16 < *(uint *)(param_1 + 0x4c)) - *(int *)(param_1 + 0x50)) * 0x40000000;" (assignment_expression "*(uint *)(param_1 + 0x48) =\n       uVar16 - *(uint *)(param_1 + 0x4c) >> 2 |\n       (-(uint)(uVar16 < *(uint *)(param_1 + 0x4c)) - *(int *)(param_1 + 0x50)) * 0x40000000" (pointer_expression "*(uint *)(param_1 + 0x48)" * (cast_expression "(uint *)(param_1 + 0x48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) )))) = (binary_expression "uVar16 - *(uint *)(param_1 + 0x4c) >> 2 |\n       (-(uint)(uVar16 < *(uint *)(param_1 + 0x4c)) - *(int *)(param_1 + 0x50)) * 0x40000000" (binary_expression "uVar16 - *(uint *)(param_1 + 0x4c) >> 2" (binary_expression "uVar16 - *(uint *)(param_1 + 0x4c)" identifier - (pointer_expression "*(uint *)(param_1 + 0x4c)" * (cast_expression "(uint *)(param_1 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) >> number_literal) | (binary_expression "(-(uint)(uVar16 < *(uint *)(param_1 + 0x4c)) - *(int *)(param_1 + 0x50)) * 0x40000000" (parenthesized_expression "(-(uint)(uVar16 < *(uint *)(param_1 + 0x4c)) - *(int *)(param_1 + 0x50))" ( (binary_expression "-(uint)(uVar16 < *(uint *)(param_1 + 0x4c)) - *(int *)(param_1 + 0x50)" (unary_expression "-(uint)(uVar16 < *(uint *)(param_1 + 0x4c))" - (call_expression "(uint)(uVar16 < *(uint *)(param_1 + 0x4c))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar16 < *(uint *)(param_1 + 0x4c))" ( (binary_expression "uVar16 < *(uint *)(param_1 + 0x4c)" identifier < (pointer_expression "*(uint *)(param_1 + 0x4c)" * (cast_expression "(uint *)(param_1 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) )))) - (pointer_expression "*(int *)(param_1 + 0x50)" * (cast_expression "(int *)(param_1 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) ))))) )) * number_literal))) ;) (expression_statement "*(uint *)(param_1 + 0x58) = uVar16;" (assignment_expression "*(uint *)(param_1 + 0x58) = uVar16" (pointer_expression "*(uint *)(param_1 + 0x58)" * (cast_expression "(uint *)(param_1 + 0x58)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar26 = DAT_00078240;" (assignment_expression "iVar26 = DAT_00078240" identifier = identifier) ;) (expression_statement "local_9c = (undefined4 *****)DAT_00078240;" (assignment_expression "local_9c = (undefined4 *****)DAT_00078240" identifier = (cast_expression "(undefined4 *****)DAT_00078240" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (expression_statement "*(undefined4 *)(param_1 + 0x5c) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x5c) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x5c)" * (cast_expression "(undefined4 *)(param_1 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar36 = uVar16;" (assignment_expression "uVar36 = uVar16" identifier = identifier) ;) (if_statement "if (iVar26 != 0) {\n    local_a8 = (undefined4 ******)0x0;\n    do {\n      uVar2 = DAT_00078250;\n      if (*(int *)((int)local_9c + 4) != 0) {\n        uVar2 = DAT_0007824e;\n      }\n      local_b4 = *(undefined4 ********)((int)local_9c + 8);\n      uVar32 = (uint)uVar2 * 0x294 + (int)local_b4;\n      pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      if (local_b4 < uVar32) {\n        do {\n          *(undefined4 *******)((int)local_b4 + 0xc) = local_a8;\n          iVar26 = *(int *)((int)local_b4 + 0x78);\n          pcVar24 = pcVar14 + uVar36;\n          if (iVar26 == 0) {\n            iVar15 = 0;\n            iVar26 = 0;\n          }\n          else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }\n          *(int *)((int)local_b4 + 0x10) = iVar15;\n          uVar33 = (int)local_b4 + 0x294;\n          *(int *)((int)local_b4 + 0x14) = iVar26;\n          local_b4 = (undefined4 *******)uVar33;\n        } while (uVar33 < uVar32);\n        pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      }\n      local_9c = pppppuVar17;\n    } while (local_9c != (undefined4 *****)0x0);\n  }" if (parenthesized_expression "(iVar26 != 0)" ( (binary_expression "iVar26 != 0" identifier != number_literal) )) (compound_statement "{\n    local_a8 = (undefined4 ******)0x0;\n    do {\n      uVar2 = DAT_00078250;\n      if (*(int *)((int)local_9c + 4) != 0) {\n        uVar2 = DAT_0007824e;\n      }\n      local_b4 = *(undefined4 ********)((int)local_9c + 8);\n      uVar32 = (uint)uVar2 * 0x294 + (int)local_b4;\n      pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      if (local_b4 < uVar32) {\n        do {\n          *(undefined4 *******)((int)local_b4 + 0xc) = local_a8;\n          iVar26 = *(int *)((int)local_b4 + 0x78);\n          pcVar24 = pcVar14 + uVar36;\n          if (iVar26 == 0) {\n            iVar15 = 0;\n            iVar26 = 0;\n          }\n          else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }\n          *(int *)((int)local_b4 + 0x10) = iVar15;\n          uVar33 = (int)local_b4 + 0x294;\n          *(int *)((int)local_b4 + 0x14) = iVar26;\n          local_b4 = (undefined4 *******)uVar33;\n        } while (uVar33 < uVar32);\n        pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      }\n      local_9c = pppppuVar17;\n    } while (local_9c != (undefined4 *****)0x0);\n  }" { (expression_statement "local_a8 = (undefined4 ******)0x0;" (assignment_expression "local_a8 = (undefined4 ******)0x0" identifier = (cast_expression "(undefined4 ******)0x0" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (do_statement "do {\n      uVar2 = DAT_00078250;\n      if (*(int *)((int)local_9c + 4) != 0) {\n        uVar2 = DAT_0007824e;\n      }\n      local_b4 = *(undefined4 ********)((int)local_9c + 8);\n      uVar32 = (uint)uVar2 * 0x294 + (int)local_b4;\n      pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      if (local_b4 < uVar32) {\n        do {\n          *(undefined4 *******)((int)local_b4 + 0xc) = local_a8;\n          iVar26 = *(int *)((int)local_b4 + 0x78);\n          pcVar24 = pcVar14 + uVar36;\n          if (iVar26 == 0) {\n            iVar15 = 0;\n            iVar26 = 0;\n          }\n          else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }\n          *(int *)((int)local_b4 + 0x10) = iVar15;\n          uVar33 = (int)local_b4 + 0x294;\n          *(int *)((int)local_b4 + 0x14) = iVar26;\n          local_b4 = (undefined4 *******)uVar33;\n        } while (uVar33 < uVar32);\n        pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      }\n      local_9c = pppppuVar17;\n    } while (local_9c != (undefined4 *****)0x0);" do (compound_statement "{\n      uVar2 = DAT_00078250;\n      if (*(int *)((int)local_9c + 4) != 0) {\n        uVar2 = DAT_0007824e;\n      }\n      local_b4 = *(undefined4 ********)((int)local_9c + 8);\n      uVar32 = (uint)uVar2 * 0x294 + (int)local_b4;\n      pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      if (local_b4 < uVar32) {\n        do {\n          *(undefined4 *******)((int)local_b4 + 0xc) = local_a8;\n          iVar26 = *(int *)((int)local_b4 + 0x78);\n          pcVar24 = pcVar14 + uVar36;\n          if (iVar26 == 0) {\n            iVar15 = 0;\n            iVar26 = 0;\n          }\n          else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }\n          *(int *)((int)local_b4 + 0x10) = iVar15;\n          uVar33 = (int)local_b4 + 0x294;\n          *(int *)((int)local_b4 + 0x14) = iVar26;\n          local_b4 = (undefined4 *******)uVar33;\n        } while (uVar33 < uVar32);\n        pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      }\n      local_9c = pppppuVar17;\n    }" { (expression_statement "uVar2 = DAT_00078250;" (assignment_expression "uVar2 = DAT_00078250" identifier = identifier) ;) (if_statement "if (*(int *)((int)local_9c + 4) != 0) {\n        uVar2 = DAT_0007824e;\n      }" if (parenthesized_expression "(*(int *)((int)local_9c + 4) != 0)" ( (binary_expression "*(int *)((int)local_9c + 4) != 0" (pointer_expression "*(int *)((int)local_9c + 4)" * (cast_expression "(int *)((int)local_9c + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c + 4)" ( (binary_expression "(int)local_9c + 4" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n        uVar2 = DAT_0007824e;\n      }" { (expression_statement "uVar2 = DAT_0007824e;" (assignment_expression "uVar2 = DAT_0007824e" identifier = identifier) ;) })) (expression_statement "local_b4 = *(undefined4 ********)((int)local_9c + 8);" (assignment_expression "local_b4 = *(undefined4 ********)((int)local_9c + 8)" identifier = (pointer_expression "*(undefined4 ********)((int)local_9c + 8)" * (cast_expression "(undefined4 ********)((int)local_9c + 8)" ( (type_descriptor "undefined4 ********" type_identifier (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "((int)local_9c + 8)" ( (binary_expression "(int)local_9c + 8" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar32 = (uint)uVar2 * 0x294 + (int)local_b4;" (assignment_expression "uVar32 = (uint)uVar2 * 0x294 + (int)local_b4" identifier = (binary_expression "(uint)uVar2 * 0x294 + (int)local_b4" (binary_expression "(uint)uVar2 * 0x294" (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) + (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);" (assignment_expression "pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4)" identifier = (cast_expression "(undefined4 *****)*(int *)((int)local_9c + 4)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (pointer_expression "*(int *)((int)local_9c + 4)" * (cast_expression "(int *)((int)local_9c + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c + 4)" ( (binary_expression "(int)local_9c + 4" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (if_statement "if (local_b4 < uVar32) {\n        do {\n          *(undefined4 *******)((int)local_b4 + 0xc) = local_a8;\n          iVar26 = *(int *)((int)local_b4 + 0x78);\n          pcVar24 = pcVar14 + uVar36;\n          if (iVar26 == 0) {\n            iVar15 = 0;\n            iVar26 = 0;\n          }\n          else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }\n          *(int *)((int)local_b4 + 0x10) = iVar15;\n          uVar33 = (int)local_b4 + 0x294;\n          *(int *)((int)local_b4 + 0x14) = iVar26;\n          local_b4 = (undefined4 *******)uVar33;\n        } while (uVar33 < uVar32);\n        pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      }" if (parenthesized_expression "(local_b4 < uVar32)" ( (binary_expression "local_b4 < uVar32" identifier < identifier) )) (compound_statement "{\n        do {\n          *(undefined4 *******)((int)local_b4 + 0xc) = local_a8;\n          iVar26 = *(int *)((int)local_b4 + 0x78);\n          pcVar24 = pcVar14 + uVar36;\n          if (iVar26 == 0) {\n            iVar15 = 0;\n            iVar26 = 0;\n          }\n          else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }\n          *(int *)((int)local_b4 + 0x10) = iVar15;\n          uVar33 = (int)local_b4 + 0x294;\n          *(int *)((int)local_b4 + 0x14) = iVar26;\n          local_b4 = (undefined4 *******)uVar33;\n        } while (uVar33 < uVar32);\n        pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      }" { (do_statement "do {\n          *(undefined4 *******)((int)local_b4 + 0xc) = local_a8;\n          iVar26 = *(int *)((int)local_b4 + 0x78);\n          pcVar24 = pcVar14 + uVar36;\n          if (iVar26 == 0) {\n            iVar15 = 0;\n            iVar26 = 0;\n          }\n          else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }\n          *(int *)((int)local_b4 + 0x10) = iVar15;\n          uVar33 = (int)local_b4 + 0x294;\n          *(int *)((int)local_b4 + 0x14) = iVar26;\n          local_b4 = (undefined4 *******)uVar33;\n        } while (uVar33 < uVar32);" do (compound_statement "{\n          *(undefined4 *******)((int)local_b4 + 0xc) = local_a8;\n          iVar26 = *(int *)((int)local_b4 + 0x78);\n          pcVar24 = pcVar14 + uVar36;\n          if (iVar26 == 0) {\n            iVar15 = 0;\n            iVar26 = 0;\n          }\n          else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }\n          *(int *)((int)local_b4 + 0x10) = iVar15;\n          uVar33 = (int)local_b4 + 0x294;\n          *(int *)((int)local_b4 + 0x14) = iVar26;\n          local_b4 = (undefined4 *******)uVar33;\n        }" { (expression_statement "*(undefined4 *******)((int)local_b4 + 0xc) = local_a8;" (assignment_expression "*(undefined4 *******)((int)local_b4 + 0xc) = local_a8" (pointer_expression "*(undefined4 *******)((int)local_b4 + 0xc)" * (cast_expression "(undefined4 *******)((int)local_b4 + 0xc)" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)local_b4 + 0xc)" ( (binary_expression "(int)local_b4 + 0xc" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "iVar26 = *(int *)((int)local_b4 + 0x78);" (assignment_expression "iVar26 = *(int *)((int)local_b4 + 0x78)" identifier = (pointer_expression "*(int *)((int)local_b4 + 0x78)" * (cast_expression "(int *)((int)local_b4 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + 0x78)" ( (binary_expression "(int)local_b4 + 0x78" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pcVar24 = pcVar14 + uVar36;" (assignment_expression "pcVar24 = pcVar14 + uVar36" identifier = (binary_expression "pcVar14 + uVar36" identifier + identifier)) ;) (if_statement "if (iVar26 == 0) {\n            iVar15 = 0;\n            iVar26 = 0;\n          }\n          else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }" if (parenthesized_expression "(iVar26 == 0)" ( (binary_expression "iVar26 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar15 = 0;\n            iVar26 = 0;\n          }" { (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (expression_statement "iVar26 = 0;" (assignment_expression "iVar26 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }" else (compound_statement "{\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }" { (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (do_statement "do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);" do (compound_statement "{\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            }" { (if_statement "if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }" if (parenthesized_expression "(*(int *)(iVar26 + 4) == 0)" ( (binary_expression "*(int *)(iVar26 + 4) == 0" (pointer_expression "*(int *)(iVar26 + 4)" * (cast_expression "(int *)(iVar26 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 4)" ( (binary_expression "iVar26 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }" { (expression_statement "uVar2 = *(ushort *)((int)local_b4 + 0x88);" (assignment_expression "uVar2 = *(ushort *)((int)local_b4 + 0x88)" identifier = (pointer_expression "*(ushort *)((int)local_b4 + 0x88)" * (cast_expression "(ushort *)((int)local_b4 + 0x88)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + 0x88)" ( (binary_expression "(int)local_b4 + 0x88" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }) (else_clause "else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }" else (compound_statement "{\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }" { (expression_statement "uVar2 = *(ushort *)((int)local_b4 + 0x86);" (assignment_expression "uVar2 = *(ushort *)((int)local_b4 + 0x86)" identifier = (pointer_expression "*(ushort *)((int)local_b4 + 0x86)" * (cast_expression "(ushort *)((int)local_b4 + 0x86)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + 0x86)" ( (binary_expression "(int)local_b4 + 0x86" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }))) (expression_statement "uVar36 = (uint)uVar2;" (assignment_expression "uVar36 = (uint)uVar2" identifier = (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }" if (parenthesized_expression "((uint)((int)pcVar1 - (int)pcVar24) < uVar36)" ( (binary_expression "(uint)((int)pcVar1 - (int)pcVar24) < uVar36" (call_expression "(uint)((int)pcVar1 - (int)pcVar24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pcVar1 - (int)pcVar24)" ( (binary_expression "(int)pcVar1 - (int)pcVar24" (cast_expression "(int)pcVar1" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < identifier) )) (compound_statement "{\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }" { (expression_statement "pcVar24 = (char *)FUN_0001ff00(uVar36);" (assignment_expression "pcVar24 = (char *)FUN_0001ff00(uVar36)" identifier = (cast_expression "(char *)FUN_0001ff00(uVar36)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001ff00(uVar36)" identifier (argument_list "(uVar36)" ( identifier ))))) ;) })) (expression_statement "iVar15 = iVar15 + uVar36;" (assignment_expression "iVar15 = iVar15 + uVar36" identifier = (binary_expression "iVar15 + uVar36" identifier + identifier)) ;) (expression_statement "memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);" (call_expression "memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36)" identifier (argument_list "(pcVar24,*(void **)(iVar26 + 8),uVar36)" ( identifier , (pointer_expression "*(void **)(iVar26 + 8)" * (cast_expression "(void **)(iVar26 + 8)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar26 + 8)" ( (binary_expression "iVar26 + 8" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "iVar26 = *(int *)(iVar26 + 4);" (assignment_expression "iVar26 = *(int *)(iVar26 + 4)" identifier = (pointer_expression "*(int *)(iVar26 + 4)" * (cast_expression "(int *)(iVar26 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 4)" ( (binary_expression "iVar26 + 4" identifier + number_literal) ))))) ;) (expression_statement "pcVar24 = pcVar24 + uVar36;" (assignment_expression "pcVar24 = pcVar24 + uVar36" identifier = (binary_expression "pcVar24 + uVar36" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar26 != 0)" ( (binary_expression "iVar26 != 0" identifier != number_literal) )) ;) (expression_statement "local_a8 = (undefined4 ******)((int)local_a8 + iVar15);" (assignment_expression "local_a8 = (undefined4 ******)((int)local_a8 + iVar15)" identifier = (cast_expression "(undefined4 ******)((int)local_a8 + iVar15)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)local_a8 + iVar15)" ( (binary_expression "(int)local_a8 + iVar15" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "iVar26 = iVar15 >> 0x1f;" (assignment_expression "iVar26 = iVar15 >> 0x1f" identifier = (binary_expression "iVar15 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "uVar36 = uVar16 + (int)local_a8;" (assignment_expression "uVar36 = uVar16 + (int)local_a8" identifier = (binary_expression "uVar16 + (int)local_a8" identifier + (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }))) (expression_statement "*(int *)((int)local_b4 + 0x10) = iVar15;" (assignment_expression "*(int *)((int)local_b4 + 0x10) = iVar15" (pointer_expression "*(int *)((int)local_b4 + 0x10)" * (cast_expression "(int *)((int)local_b4 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + 0x10)" ( (binary_expression "(int)local_b4 + 0x10" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "uVar33 = (int)local_b4 + 0x294;" (assignment_expression "uVar33 = (int)local_b4 + 0x294" identifier = (binary_expression "(int)local_b4 + 0x294" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(int *)((int)local_b4 + 0x14) = iVar26;" (assignment_expression "*(int *)((int)local_b4 + 0x14) = iVar26" (pointer_expression "*(int *)((int)local_b4 + 0x14)" * (cast_expression "(int *)((int)local_b4 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + 0x14)" ( (binary_expression "(int)local_b4 + 0x14" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_b4 = (undefined4 *******)uVar33;" (assignment_expression "local_b4 = (undefined4 *******)uVar33" identifier = (cast_expression "(undefined4 *******)uVar33" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) identifier)) ;) }) while (parenthesized_expression "(uVar33 < uVar32)" ( (binary_expression "uVar33 < uVar32" identifier < identifier) )) ;) (expression_statement "pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);" (assignment_expression "pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4)" identifier = (cast_expression "(undefined4 *****)*(int *)((int)local_9c + 4)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (pointer_expression "*(int *)((int)local_9c + 4)" * (cast_expression "(int *)((int)local_9c + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c + 4)" ( (binary_expression "(int)local_9c + 4" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) })) (expression_statement "local_9c = pppppuVar17;" (assignment_expression "local_9c = pppppuVar17" identifier = identifier) ;) }) while (parenthesized_expression "(local_9c != (undefined4 *****)0x0)" ( (binary_expression "local_9c != (undefined4 *****)0x0" identifier != (cast_expression "(undefined4 *****)0x0" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) ;) })) (expression_statement "local_9c = (undefined4 *****)FUN_0001ff70(uVar36,0);" (assignment_expression "local_9c = (undefined4 *****)FUN_0001ff70(uVar36,0)" identifier = (cast_expression "(undefined4 *****)FUN_0001ff70(uVar36,0)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (call_expression "FUN_0001ff70(uVar36,0)" identifier (argument_list "(uVar36,0)" ( identifier , number_literal ))))) ;) (expression_statement "uVar36 = *(uint *)(param_3 + 0x38);" (assignment_expression "uVar36 = *(uint *)(param_3 + 0x38)" identifier = (pointer_expression "*(uint *)(param_3 + 0x38)" * (cast_expression "(uint *)(param_3 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x38)" ( (binary_expression "param_3 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x78) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x78) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x78)" * (cast_expression "(undefined4 *)(param_1 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(param_1 + 0x54) = (int)local_9c - *(int *)(param_1 + 0x58);" (assignment_expression "*(int *)(param_1 + 0x54) = (int)local_9c - *(int *)(param_1 + 0x58)" (pointer_expression "*(int *)(param_1 + 0x54)" * (cast_expression "(int *)(param_1 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) = (binary_expression "(int)local_9c - *(int *)(param_1 + 0x58)" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(param_1 + 0x58)" * (cast_expression "(int *)(param_1 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) )))))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x7c) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x7c) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x7c)" * (cast_expression "(undefined4 *)(param_1 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x80) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x80) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x80)" * (cast_expression "(undefined4 *)(param_1 + 0x80)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x80)" ( (binary_expression "param_1 + 0x80" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 ******)(param_1 + 0x70) = local_9c;" (assignment_expression "*(undefined4 ******)(param_1 + 0x70) = local_9c" (pointer_expression "*(undefined4 ******)(param_1 + 0x70)" * (cast_expression "(undefined4 ******)(param_1 + 0x70)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar24 = pcVar14 + (int)local_9c;" (assignment_expression "pcVar24 = pcVar14 + (int)local_9c" identifier = (binary_expression "pcVar14 + (int)local_9c" identifier + (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x74) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x74) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x74)" * (cast_expression "(undefined4 *)(param_1 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x74)" ( (binary_expression "param_1 + 0x74" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar5 = *(code **)(param_3 + 0x88);" (assignment_expression "pcVar5 = *(code **)(param_3 + 0x88)" identifier = (pointer_expression "*(code **)(param_3 + 0x88)" * (cast_expression "(code **)(param_3 + 0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x88)" ( (binary_expression "param_3 + 0x88" identifier + number_literal) ))))) ;) (expression_statement "uVar16 = *(uint *)(param_3 + 0x34);" (assignment_expression "uVar16 = *(uint *)(param_3 + 0x34)" identifier = (pointer_expression "*(uint *)(param_3 + 0x34)" * (cast_expression "(uint *)(param_3 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x34)" ( (binary_expression "param_3 + 0x34" identifier + number_literal) ))))) ;) (if_statement "if (DAT_00078240 == 0) {\n    uVar13 = 0;\n  }\n  else {\n    local_ac = (undefined4 *****)0x0;\n    ppppppuVar27 = (undefined4 ******)DAT_00078240;\nLAB_000251e2:\n    do {\n      local_98 = ppppppuVar27;\n      uVar32 = *(uint *)((int)local_98 + 8);\n      pcVar19 = pcVar24;\n      if (*(int *)((int)local_98 + 4) == 0) {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);\n        if (local_b4 <= uVar32) {\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);\n        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n        if (local_b4 <= uVar32) goto LAB_000251e2;\n      }\n      do {\n        uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;\n        if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           ) {\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }\n        pcVar24 = pcVar19 + uVar16;\n        uVar33 = uVar32 + 0x294;\n        (*pcVar5)(DAT_00081544,uVar32,pcVar19);\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        pcVar19 = pcVar24;\n        uVar32 = uVar33;\n      } while (uVar33 < local_b4);\n      ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n    } while (*(int *)((int)local_98 + 4) != 0);\n    local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n    uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                          -(uint)(local_9c < *(uint *)(param_1 + 0x70)) - *(int *)(param_1 + 0x74),\n                          *(undefined4 *)(param_3 + 0x34),*(undefined4 *)(param_3 + 0x38));\n  }" if (parenthesized_expression "(DAT_00078240 == 0)" ( (binary_expression "DAT_00078240 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar13 = 0;\n  }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    local_ac = (undefined4 *****)0x0;\n    ppppppuVar27 = (undefined4 ******)DAT_00078240;\nLAB_000251e2:\n    do {\n      local_98 = ppppppuVar27;\n      uVar32 = *(uint *)((int)local_98 + 8);\n      pcVar19 = pcVar24;\n      if (*(int *)((int)local_98 + 4) == 0) {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);\n        if (local_b4 <= uVar32) {\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);\n        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n        if (local_b4 <= uVar32) goto LAB_000251e2;\n      }\n      do {\n        uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;\n        if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           ) {\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }\n        pcVar24 = pcVar19 + uVar16;\n        uVar33 = uVar32 + 0x294;\n        (*pcVar5)(DAT_00081544,uVar32,pcVar19);\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        pcVar19 = pcVar24;\n        uVar32 = uVar33;\n      } while (uVar33 < local_b4);\n      ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n    } while (*(int *)((int)local_98 + 4) != 0);\n    local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n    uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                          -(uint)(local_9c < *(uint *)(param_1 + 0x70)) - *(int *)(param_1 + 0x74),\n                          *(undefined4 *)(param_3 + 0x34),*(undefined4 *)(param_3 + 0x38));\n  }" else (compound_statement "{\n    local_ac = (undefined4 *****)0x0;\n    ppppppuVar27 = (undefined4 ******)DAT_00078240;\nLAB_000251e2:\n    do {\n      local_98 = ppppppuVar27;\n      uVar32 = *(uint *)((int)local_98 + 8);\n      pcVar19 = pcVar24;\n      if (*(int *)((int)local_98 + 4) == 0) {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);\n        if (local_b4 <= uVar32) {\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);\n        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n        if (local_b4 <= uVar32) goto LAB_000251e2;\n      }\n      do {\n        uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;\n        if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           ) {\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }\n        pcVar24 = pcVar19 + uVar16;\n        uVar33 = uVar32 + 0x294;\n        (*pcVar5)(DAT_00081544,uVar32,pcVar19);\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        pcVar19 = pcVar24;\n        uVar32 = uVar33;\n      } while (uVar33 < local_b4);\n      ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n    } while (*(int *)((int)local_98 + 4) != 0);\n    local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n    uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                          -(uint)(local_9c < *(uint *)(param_1 + 0x70)) - *(int *)(param_1 + 0x74),\n                          *(undefined4 *)(param_3 + 0x34),*(undefined4 *)(param_3 + 0x38));\n  }" { (expression_statement "local_ac = (undefined4 *****)0x0;" (assignment_expression "local_ac = (undefined4 *****)0x0" identifier = (cast_expression "(undefined4 *****)0x0" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "ppppppuVar27 = (undefined4 ******)DAT_00078240;" (assignment_expression "ppppppuVar27 = (undefined4 ******)DAT_00078240" identifier = (cast_expression "(undefined4 ******)DAT_00078240" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (labeled_statement "LAB_000251e2:\n    do {\n      local_98 = ppppppuVar27;\n      uVar32 = *(uint *)((int)local_98 + 8);\n      pcVar19 = pcVar24;\n      if (*(int *)((int)local_98 + 4) == 0) {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);\n        if (local_b4 <= uVar32) {\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);\n        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n        if (local_b4 <= uVar32) goto LAB_000251e2;\n      }\n      do {\n        uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;\n        if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           ) {\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }\n        pcVar24 = pcVar19 + uVar16;\n        uVar33 = uVar32 + 0x294;\n        (*pcVar5)(DAT_00081544,uVar32,pcVar19);\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        pcVar19 = pcVar24;\n        uVar32 = uVar33;\n      } while (uVar33 < local_b4);\n      ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n    } while (*(int *)((int)local_98 + 4) != 0);" statement_identifier : (do_statement "do {\n      local_98 = ppppppuVar27;\n      uVar32 = *(uint *)((int)local_98 + 8);\n      pcVar19 = pcVar24;\n      if (*(int *)((int)local_98 + 4) == 0) {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);\n        if (local_b4 <= uVar32) {\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);\n        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n        if (local_b4 <= uVar32) goto LAB_000251e2;\n      }\n      do {\n        uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;\n        if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           ) {\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }\n        pcVar24 = pcVar19 + uVar16;\n        uVar33 = uVar32 + 0x294;\n        (*pcVar5)(DAT_00081544,uVar32,pcVar19);\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        pcVar19 = pcVar24;\n        uVar32 = uVar33;\n      } while (uVar33 < local_b4);\n      ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n    } while (*(int *)((int)local_98 + 4) != 0);" do (compound_statement "{\n      local_98 = ppppppuVar27;\n      uVar32 = *(uint *)((int)local_98 + 8);\n      pcVar19 = pcVar24;\n      if (*(int *)((int)local_98 + 4) == 0) {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);\n        if (local_b4 <= uVar32) {\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);\n        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n        if (local_b4 <= uVar32) goto LAB_000251e2;\n      }\n      do {\n        uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;\n        if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           ) {\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }\n        pcVar24 = pcVar19 + uVar16;\n        uVar33 = uVar32 + 0x294;\n        (*pcVar5)(DAT_00081544,uVar32,pcVar19);\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        pcVar19 = pcVar24;\n        uVar32 = uVar33;\n      } while (uVar33 < local_b4);\n      ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n    }" { (expression_statement "local_98 = ppppppuVar27;" (assignment_expression "local_98 = ppppppuVar27" identifier = identifier) ;) (expression_statement "uVar32 = *(uint *)((int)local_98 + 8);" (assignment_expression "uVar32 = *(uint *)((int)local_98 + 8)" identifier = (pointer_expression "*(uint *)((int)local_98 + 8)" * (cast_expression "(uint *)((int)local_98 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_98 + 8)" ( (binary_expression "(int)local_98 + 8" (cast_expression "(int)local_98" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pcVar19 = pcVar24;" (assignment_expression "pcVar19 = pcVar24" identifier = identifier) ;) (if_statement "if (*(int *)((int)local_98 + 4) == 0) {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);\n        if (local_b4 <= uVar32) {\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);\n        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n        if (local_b4 <= uVar32) goto LAB_000251e2;\n      }" if (parenthesized_expression "(*(int *)((int)local_98 + 4) == 0)" ( (binary_expression "*(int *)((int)local_98 + 4) == 0" (pointer_expression "*(int *)((int)local_98 + 4)" * (cast_expression "(int *)((int)local_98 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_98 + 4)" ( (binary_expression "(int)local_98 + 4" (cast_expression "(int)local_98" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);\n        if (local_b4 <= uVar32) {\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }\n      }" { (expression_statement "local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);" (assignment_expression "local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294)" identifier = (cast_expression "(undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294)" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(uVar32 + (uint)DAT_00078250 * 0x294)" ( (binary_expression "uVar32 + (uint)DAT_00078250 * 0x294" identifier + (binary_expression "(uint)DAT_00078250 * 0x294" (cast_expression "(uint)DAT_00078250" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) ;) (if_statement "if (local_b4 <= uVar32) {\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }" if (parenthesized_expression "(local_b4 <= uVar32)" ( (binary_expression "local_b4 <= uVar32" identifier <= identifier) )) (compound_statement "{\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }" { (expression_statement "local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);" (assignment_expression "local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16)" identifier = (cast_expression "(undefined4 *****)((int)local_9c + (int)local_ac * uVar16)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_9c + (int)local_ac * uVar16)" ( (binary_expression "(int)local_9c + (int)local_ac * uVar16" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)local_ac * uVar16" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) * identifier)) )))) ;) (expression_statement "uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));" (assignment_expression "uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38))" identifier = (call_expression "FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38))" identifier (argument_list "((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38))" ( (binary_expression "(int)local_9c - *(uint *)(param_1 + 0x70)" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(uint *)(param_1 + 0x70)" * (cast_expression "(uint *)(param_1 + 0x70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) ))))) , (binary_expression "-(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74)" (unary_expression "-(uint)(local_9c < *(uint *)(param_1 + 0x70))" - (call_expression "(uint)(local_9c < *(uint *)(param_1 + 0x70))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_9c < *(uint *)(param_1 + 0x70))" ( (binary_expression "local_9c < *(uint *)(param_1 + 0x70)" identifier < (pointer_expression "*(uint *)(param_1 + 0x70)" * (cast_expression "(uint *)(param_1 + 0x70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) ))))) )))) - (pointer_expression "*(int *)(param_1 + 0x74)" * (cast_expression "(int *)(param_1 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x74)" ( (binary_expression "param_1 + 0x74" identifier + number_literal) ))))) , (pointer_expression "*(undefined4 *)(param_3 + 0x34)" * (cast_expression "(undefined4 *)(param_3 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x34)" ( (binary_expression "param_3 + 0x34" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_3 + 0x38)" * (cast_expression "(undefined4 *)(param_3 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x38)" ( (binary_expression "param_3 + 0x38" identifier + number_literal) )))) )))) ;) (goto_statement "goto LAB_000252e8;" goto statement_identifier ;) })) }) (else_clause "else {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);\n        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n        if (local_b4 <= uVar32) goto LAB_000251e2;\n      }" else (compound_statement "{\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);\n        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n        if (local_b4 <= uVar32) goto LAB_000251e2;\n      }" { (expression_statement "local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);" (assignment_expression "local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294)" identifier = (cast_expression "(undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294)" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(uVar32 + (uint)DAT_0007824e * 0x294)" ( (binary_expression "uVar32 + (uint)DAT_0007824e * 0x294" identifier + (binary_expression "(uint)DAT_0007824e * 0x294" (cast_expression "(uint)DAT_0007824e" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) ;) (expression_statement "ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);" (assignment_expression "ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4)" identifier = (cast_expression "(undefined4 ******)*(int *)((int)local_98 + 4)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "*(int *)((int)local_98 + 4)" * (cast_expression "(int *)((int)local_98 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_98 + 4)" ( (binary_expression "(int)local_98 + 4" (cast_expression "(int)local_98" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (if_statement "if (local_b4 <= uVar32) goto LAB_000251e2;" if (parenthesized_expression "(local_b4 <= uVar32)" ( (binary_expression "local_b4 <= uVar32" identifier <= identifier) )) (goto_statement "goto LAB_000251e2;" goto statement_identifier ;)) }))) (do_statement "do {\n        uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;\n        if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           ) {\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }\n        pcVar24 = pcVar19 + uVar16;\n        uVar33 = uVar32 + 0x294;\n        (*pcVar5)(DAT_00081544,uVar32,pcVar19);\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        pcVar19 = pcVar24;\n        uVar32 = uVar33;\n      } while (uVar33 < local_b4);" do (compound_statement "{\n        uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;\n        if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           ) {\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }\n        pcVar24 = pcVar19 + uVar16;\n        uVar33 = uVar32 + 0x294;\n        (*pcVar5)(DAT_00081544,uVar32,pcVar19);\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        pcVar19 = pcVar24;\n        uVar32 = uVar33;\n      }" { (expression_statement "uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;" (assignment_expression "uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f" identifier = (binary_expression "(int)pcVar1 - (int)pcVar19 >> 0x1f" (binary_expression "(int)pcVar1 - (int)pcVar19" (cast_expression "(int)pcVar1" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar19" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (if_statement "if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           ) {\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }" if (parenthesized_expression "(uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           )" ( (binary_expression "uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)" (binary_expression "uVar33 < uVar36" identifier < identifier) || (binary_expression "uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)" (binary_expression "uVar33 - uVar36" identifier - identifier) < (call_expression "(uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)((int)pcVar1 - (int)pcVar19) < uVar16)" ( (binary_expression "(uint)((int)pcVar1 - (int)pcVar19) < uVar16" (call_expression "(uint)((int)pcVar1 - (int)pcVar19)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pcVar1 - (int)pcVar19)" ( (binary_expression "(int)pcVar1 - (int)pcVar19" (cast_expression "(int)pcVar1" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < identifier) ))))) )) (compound_statement "{\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }" { (expression_statement "pcVar19 = (char *)FUN_0001ff00(uVar16);" (assignment_expression "pcVar19 = (char *)FUN_0001ff00(uVar16)" identifier = (cast_expression "(char *)FUN_0001ff00(uVar16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001ff00(uVar16)" identifier (argument_list "(uVar16)" ( identifier ))))) ;) })) (expression_statement "pcVar24 = pcVar19 + uVar16;" (assignment_expression "pcVar24 = pcVar19 + uVar16" identifier = (binary_expression "pcVar19 + uVar16" identifier + identifier)) ;) (expression_statement "uVar33 = uVar32 + 0x294;" (assignment_expression "uVar33 = uVar32 + 0x294" identifier = (binary_expression "uVar32 + 0x294" identifier + number_literal)) ;) (expression_statement "(*pcVar5)(DAT_00081544,uVar32,pcVar19);" (call_expression "(*pcVar5)(DAT_00081544,uVar32,pcVar19)" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(DAT_00081544,uVar32,pcVar19)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_ac = (undefined4 *****)((int)local_ac + 1);" (assignment_expression "local_ac = (undefined4 *****)((int)local_ac + 1)" identifier = (cast_expression "(undefined4 *****)((int)local_ac + 1)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_ac + 1)" ( (binary_expression "(int)local_ac + 1" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pcVar19 = pcVar24;" (assignment_expression "pcVar19 = pcVar24" identifier = identifier) ;) (expression_statement "uVar32 = uVar33;" (assignment_expression "uVar32 = uVar33" identifier = identifier) ;) }) while (parenthesized_expression "(uVar33 < local_b4)" ( (binary_expression "uVar33 < local_b4" identifier < identifier) )) ;) (expression_statement "ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);" (assignment_expression "ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4)" identifier = (cast_expression "(undefined4 ******)*(int *)((int)local_98 + 4)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "*(int *)((int)local_98 + 4)" * (cast_expression "(int *)((int)local_98 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_98 + 4)" ( (binary_expression "(int)local_98 + 4" (cast_expression "(int)local_98" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) }) while (parenthesized_expression "(*(int *)((int)local_98 + 4) != 0)" ( (binary_expression "*(int *)((int)local_98 + 4) != 0" (pointer_expression "*(int *)((int)local_98 + 4)" * (cast_expression "(int *)((int)local_98 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_98 + 4)" ( (binary_expression "(int)local_98 + 4" (cast_expression "(int)local_98" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) ;)) (expression_statement "local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);" (assignment_expression "local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16)" identifier = (cast_expression "(undefined4 *****)((int)local_9c + (int)local_ac * uVar16)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_9c + (int)local_ac * uVar16)" ( (binary_expression "(int)local_9c + (int)local_ac * uVar16" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)local_ac * uVar16" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) * identifier)) )))) ;) (expression_statement "uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                          -(uint)(local_9c < *(uint *)(param_1 + 0x70)) - *(int *)(param_1 + 0x74),\n                          *(undefined4 *)(param_3 + 0x34),*(undefined4 *)(param_3 + 0x38));" (assignment_expression "uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                          -(uint)(local_9c < *(uint *)(param_1 + 0x70)) - *(int *)(param_1 + 0x74),\n                          *(undefined4 *)(param_3 + 0x34),*(undefined4 *)(param_3 + 0x38))" identifier = (call_expression "FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                          -(uint)(local_9c < *(uint *)(param_1 + 0x70)) - *(int *)(param_1 + 0x74),\n                          *(undefined4 *)(param_3 + 0x34),*(undefined4 *)(param_3 + 0x38))" identifier (argument_list "((int)local_9c - *(uint *)(param_1 + 0x70),\n                          -(uint)(local_9c < *(uint *)(param_1 + 0x70)) - *(int *)(param_1 + 0x74),\n                          *(undefined4 *)(param_3 + 0x34),*(undefined4 *)(param_3 + 0x38))" ( (binary_expression "(int)local_9c - *(uint *)(param_1 + 0x70)" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(uint *)(param_1 + 0x70)" * (cast_expression "(uint *)(param_1 + 0x70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) ))))) , (binary_expression "-(uint)(local_9c < *(uint *)(param_1 + 0x70)) - *(int *)(param_1 + 0x74)" (unary_expression "-(uint)(local_9c < *(uint *)(param_1 + 0x70))" - (call_expression "(uint)(local_9c < *(uint *)(param_1 + 0x70))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_9c < *(uint *)(param_1 + 0x70))" ( (binary_expression "local_9c < *(uint *)(param_1 + 0x70)" identifier < (pointer_expression "*(uint *)(param_1 + 0x70)" * (cast_expression "(uint *)(param_1 + 0x70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) ))))) )))) - (pointer_expression "*(int *)(param_1 + 0x74)" * (cast_expression "(int *)(param_1 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x74)" ( (binary_expression "param_1 + 0x74" identifier + number_literal) ))))) , (pointer_expression "*(undefined4 *)(param_3 + 0x34)" * (cast_expression "(undefined4 *)(param_3 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x34)" ( (binary_expression "param_3 + 0x34" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_3 + 0x38)" * (cast_expression "(undefined4 *)(param_3 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x38)" ( (binary_expression "param_3 + 0x38" identifier + number_literal) )))) )))) ;) }))) (labeled_statement "LAB_000252e8:\n  *(undefined4 *)(param_1 + 0x6c) = uVar13;" statement_identifier : (expression_statement "*(undefined4 *)(param_1 + 0x6c) = uVar13;" (assignment_expression "*(undefined4 *)(param_1 + 0x6c) = uVar13" (pointer_expression "*(undefined4 *)(param_1 + 0x6c)" * (cast_expression "(undefined4 *)(param_1 + 0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x6c)" ( (binary_expression "param_1 + 0x6c" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined4 *)(param_1 + 0x60) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x60) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x60)" * (cast_expression "(undefined4 *)(param_1 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar26 = DAT_000816a4;" (assignment_expression "iVar26 = DAT_000816a4" identifier = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 100) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 100) = 0" (pointer_expression "*(undefined4 *)(param_1 + 100)" * (cast_expression "(undefined4 *)(param_1 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x68) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x68) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x68)" * (cast_expression "(undefined4 *)(param_1 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x84) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x84) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x84)" * (cast_expression "(undefined4 *)(param_1 + 0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x84)" ( (binary_expression "param_1 + 0x84" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x88) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x8c) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x8c) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x8c)" * (cast_expression "(undefined4 *)(param_1 + 0x8c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x8c)" ( (binary_expression "param_1 + 0x8c" identifier + number_literal) )))) = number_literal) ;) (for_statement "for (; iVar26 != 0; iVar26 = FUN_00040c00(iVar26)) {\n    iVar15 = FUN_00041590(iVar26);\n    if (*(int *)(iVar15 + 0x10) != 0) {\n      iVar15 = FUN_0003dc20(iVar26);\n      if (((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n         (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) {\n        iVar15 = FUN_00041590(iVar26);\n        iVar15 = *(int *)(iVar15 + 0x10);\n        *(undefined4 *)(iVar15 + 0x34) = 0;\n        *(undefined4 *)(iVar15 + 0x38) = 0;\n        *(uint *)(iVar15 + 0x3c) = *(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000;\n      }\n      iVar15 = FUN_00041590(iVar26);\n      FUN_0004ed20(iVar26,*(int *)(iVar15 + 0x10) + 0x28);\n    }\n  }" for ( ; (binary_expression "iVar26 != 0" identifier != number_literal) ; (assignment_expression "iVar26 = FUN_00040c00(iVar26)" identifier = (call_expression "FUN_00040c00(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ) (compound_statement "{\n    iVar15 = FUN_00041590(iVar26);\n    if (*(int *)(iVar15 + 0x10) != 0) {\n      iVar15 = FUN_0003dc20(iVar26);\n      if (((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n         (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) {\n        iVar15 = FUN_00041590(iVar26);\n        iVar15 = *(int *)(iVar15 + 0x10);\n        *(undefined4 *)(iVar15 + 0x34) = 0;\n        *(undefined4 *)(iVar15 + 0x38) = 0;\n        *(uint *)(iVar15 + 0x3c) = *(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000;\n      }\n      iVar15 = FUN_00041590(iVar26);\n      FUN_0004ed20(iVar26,*(int *)(iVar15 + 0x10) + 0x28);\n    }\n  }" { (expression_statement "iVar15 = FUN_00041590(iVar26);" (assignment_expression "iVar15 = FUN_00041590(iVar26)" identifier = (call_expression "FUN_00041590(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (if_statement "if (*(int *)(iVar15 + 0x10) != 0) {\n      iVar15 = FUN_0003dc20(iVar26);\n      if (((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n         (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) {\n        iVar15 = FUN_00041590(iVar26);\n        iVar15 = *(int *)(iVar15 + 0x10);\n        *(undefined4 *)(iVar15 + 0x34) = 0;\n        *(undefined4 *)(iVar15 + 0x38) = 0;\n        *(uint *)(iVar15 + 0x3c) = *(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000;\n      }\n      iVar15 = FUN_00041590(iVar26);\n      FUN_0004ed20(iVar26,*(int *)(iVar15 + 0x10) + 0x28);\n    }" if (parenthesized_expression "(*(int *)(iVar15 + 0x10) != 0)" ( (binary_expression "*(int *)(iVar15 + 0x10) != 0" (pointer_expression "*(int *)(iVar15 + 0x10)" * (cast_expression "(int *)(iVar15 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x10)" ( (binary_expression "iVar15 + 0x10" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      iVar15 = FUN_0003dc20(iVar26);\n      if (((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n         (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) {\n        iVar15 = FUN_00041590(iVar26);\n        iVar15 = *(int *)(iVar15 + 0x10);\n        *(undefined4 *)(iVar15 + 0x34) = 0;\n        *(undefined4 *)(iVar15 + 0x38) = 0;\n        *(uint *)(iVar15 + 0x3c) = *(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000;\n      }\n      iVar15 = FUN_00041590(iVar26);\n      FUN_0004ed20(iVar26,*(int *)(iVar15 + 0x10) + 0x28);\n    }" { (expression_statement "iVar15 = FUN_0003dc20(iVar26);" (assignment_expression "iVar15 = FUN_0003dc20(iVar26)" identifier = (call_expression "FUN_0003dc20(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (if_statement "if (((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n         (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) {\n        iVar15 = FUN_00041590(iVar26);\n        iVar15 = *(int *)(iVar15 + 0x10);\n        *(undefined4 *)(iVar15 + 0x34) = 0;\n        *(undefined4 *)(iVar15 + 0x38) = 0;\n        *(uint *)(iVar15 + 0x3c) = *(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000;\n      }" if (parenthesized_expression "(((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n         (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0))" ( (binary_expression "((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n         (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)" (parenthesized_expression "((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0))" ( (binary_expression "(iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)" (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)" ( (comma_expression "iVar15 = FUN_0003dc90(iVar26), iVar15 == 0" (assignment_expression "iVar15 = FUN_0003dc90(iVar26)" identifier = (call_expression "FUN_0003dc90(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) , (binary_expression "iVar15 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)" ( (comma_expression "iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0" (assignment_expression "iVar15 = FUN_0003ddd0(iVar26)" identifier = (call_expression "FUN_0003ddd0(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) , (binary_expression "iVar15 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        iVar15 = FUN_00041590(iVar26);\n        iVar15 = *(int *)(iVar15 + 0x10);\n        *(undefined4 *)(iVar15 + 0x34) = 0;\n        *(undefined4 *)(iVar15 + 0x38) = 0;\n        *(uint *)(iVar15 + 0x3c) = *(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000;\n      }" { (expression_statement "iVar15 = FUN_00041590(iVar26);" (assignment_expression "iVar15 = FUN_00041590(iVar26)" identifier = (call_expression "FUN_00041590(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (expression_statement "iVar15 = *(int *)(iVar15 + 0x10);" (assignment_expression "iVar15 = *(int *)(iVar15 + 0x10)" identifier = (pointer_expression "*(int *)(iVar15 + 0x10)" * (cast_expression "(int *)(iVar15 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x10)" ( (binary_expression "iVar15 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar15 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(iVar15 + 0x34) = 0" (pointer_expression "*(undefined4 *)(iVar15 + 0x34)" * (cast_expression "(undefined4 *)(iVar15 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x34)" ( (binary_expression "iVar15 + 0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar15 + 0x38) = 0;" (assignment_expression "*(undefined4 *)(iVar15 + 0x38) = 0" (pointer_expression "*(undefined4 *)(iVar15 + 0x38)" * (cast_expression "(undefined4 *)(iVar15 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x38)" ( (binary_expression "iVar15 + 0x38" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(iVar15 + 0x3c) = *(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000;" (assignment_expression "*(uint *)(iVar15 + 0x3c) = *(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000" (pointer_expression "*(uint *)(iVar15 + 0x3c)" * (cast_expression "(uint *)(iVar15 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x3c)" ( (binary_expression "iVar15 + 0x3c" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000" (binary_expression "*(uint *)(iVar15 + 0x3c) & 0x800" (pointer_expression "*(uint *)(iVar15 + 0x3c)" * (cast_expression "(uint *)(iVar15 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x3c)" ( (binary_expression "iVar15 + 0x3c" identifier + number_literal) )))) & number_literal) | number_literal)) ;) })) (expression_statement "iVar15 = FUN_00041590(iVar26);" (assignment_expression "iVar15 = FUN_00041590(iVar26)" identifier = (call_expression "FUN_00041590(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (expression_statement "FUN_0004ed20(iVar26,*(int *)(iVar15 + 0x10) + 0x28);" (call_expression "FUN_0004ed20(iVar26,*(int *)(iVar15 + 0x10) + 0x28)" identifier (argument_list "(iVar26,*(int *)(iVar15 + 0x10) + 0x28)" ( identifier , (binary_expression "*(int *)(iVar15 + 0x10) + 0x28" (pointer_expression "*(int *)(iVar15 + 0x10)" * (cast_expression "(int *)(iVar15 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x10)" ( (binary_expression "iVar15 + 0x10" identifier + number_literal) )))) + number_literal) ))) ;) })) })) (if_statement "if ((*(int *)(param_3 + 4) - 1U & (uint)local_9c) == 0) {\n    *(undefined2 *)(param_1 + 2) = 0x30b;\n    *param_2 = pcVar14;\n    return (uint)local_9c;\n  }" if (parenthesized_expression "((*(int *)(param_3 + 4) - 1U & (uint)local_9c) == 0)" ( (binary_expression "(*(int *)(param_3 + 4) - 1U & (uint)local_9c) == 0" (parenthesized_expression "(*(int *)(param_3 + 4) - 1U & (uint)local_9c)" ( (binary_expression "*(int *)(param_3 + 4) - 1U & (uint)local_9c" (binary_expression "*(int *)(param_3 + 4) - 1U" (pointer_expression "*(int *)(param_3 + 4)" * (cast_expression "(int *)(param_3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) )))) - number_literal) & (cast_expression "(uint)local_9c" ( (type_descriptor "uint" type_identifier) ) identifier)) )) == number_literal) )) (compound_statement "{\n    *(undefined2 *)(param_1 + 2) = 0x30b;\n    *param_2 = pcVar14;\n    return (uint)local_9c;\n  }" { (expression_statement "*(undefined2 *)(param_1 + 2) = 0x30b;" (assignment_expression "*(undefined2 *)(param_1 + 2) = 0x30b" (pointer_expression "*(undefined2 *)(param_1 + 2)" * (cast_expression "(undefined2 *)(param_1 + 2)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*param_2 = pcVar14;" (assignment_expression "*param_2 = pcVar14" (pointer_expression "*param_2" * identifier) = identifier) ;) (return_statement "return (uint)local_9c;" return (cast_expression "(uint)local_9c" ( (type_descriptor "uint" type_identifier) ) identifier) ;) })) comment (expression_statement "FUN_00031740("../../gas/ecoff.c",0x129d,"ecoff_build_debug",local_9c);" (call_expression "FUN_00031740("../../gas/ecoff.c",0x129d,"ecoff_build_debug",local_9c)" identifier (argument_list "("../../gas/ecoff.c",0x129d,"ecoff_build_debug",local_9c)" ( (string_literal ""../../gas/ecoff.c"" " string_content ") , number_literal , (string_literal ""ecoff_build_debug"" " string_content ") , identifier ))) ;) (labeled_statement "code_r0x00024a60:\n  local_ac = (undefined4 *****)((int)local_ac + 3);" statement_identifier : (expression_statement "local_ac = (undefined4 *****)((int)local_ac + 3);" (assignment_expression "local_ac = (undefined4 *****)((int)local_ac + 3)" identifier = (cast_expression "(undefined4 *****)((int)local_ac + 3)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_ac + 3)" ( (binary_expression "(int)local_ac + 3" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (expression_statement "pcVar24 = local_38 + 2;" (assignment_expression "pcVar24 = local_38 + 2" identifier = (binary_expression "local_38 + 2" identifier + number_literal)) ;) (expression_statement "local_38[1] = (char)((uint)iVar15 >> 8);" (assignment_expression "local_38[1] = (char)((uint)iVar15 >> 8)" (subscript_expression "local_38[1]" identifier [ number_literal ]) = (cast_expression "(char)((uint)iVar15 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar15 >> 8)" ( (binary_expression "(uint)iVar15 >> 8" (cast_expression "(uint)iVar15" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_38 = local_38 + 3;" (assignment_expression "local_38 = local_38 + 3" identifier = (binary_expression "local_38 + 3" identifier + number_literal)) ;) (expression_statement "*pcVar24 = (char)iVar15;" (assignment_expression "*pcVar24 = (char)iVar15" (pointer_expression "*pcVar24" * identifier) = (cast_expression "(char)iVar15" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (labeled_statement "LAB_000238d0:\n  if (0 < (int)pppppuVar17) {\n    uVar16 = (int)pppppuVar17 - 1;\n    local_ac = (undefined4 *****)((int)local_ac + 1);\n    pppppuVar17 = (undefined4 *****)((uVar16 >> 4) + (int)local_ac);\n    if (pcVar1 <= local_38) goto LAB_00023925;\n    while (pcVar24 = local_38 + 1, pcVar19 = local_38, local_38 = pcVar24, 0xf < uVar16) {\n      while( true ) {\n        uVar16 = uVar16 - 0x10;\n        *pcVar19 = '\x0f';\n        if (pppppuVar17 == local_ac) goto LAB_00023953;\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        if (local_38 < pcVar1) break;\nLAB_00023925:\n        pcVar19 = (char *)FUN_0001ff00(1);\n        local_38 = pcVar19 + 1;\n        if (uVar16 < 0x10) goto LAB_00023944;\n      }\n    }\nLAB_00023944:\n    *pcVar19 = (char)uVar16;\n  }" statement_identifier : (if_statement "if (0 < (int)pppppuVar17) {\n    uVar16 = (int)pppppuVar17 - 1;\n    local_ac = (undefined4 *****)((int)local_ac + 1);\n    pppppuVar17 = (undefined4 *****)((uVar16 >> 4) + (int)local_ac);\n    if (pcVar1 <= local_38) goto LAB_00023925;\n    while (pcVar24 = local_38 + 1, pcVar19 = local_38, local_38 = pcVar24, 0xf < uVar16) {\n      while( true ) {\n        uVar16 = uVar16 - 0x10;\n        *pcVar19 = '\x0f';\n        if (pppppuVar17 == local_ac) goto LAB_00023953;\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        if (local_38 < pcVar1) break;\nLAB_00023925:\n        pcVar19 = (char *)FUN_0001ff00(1);\n        local_38 = pcVar19 + 1;\n        if (uVar16 < 0x10) goto LAB_00023944;\n      }\n    }\nLAB_00023944:\n    *pcVar19 = (char)uVar16;\n  }" if (parenthesized_expression "(0 < (int)pppppuVar17)" ( (binary_expression "0 < (int)pppppuVar17" number_literal < (cast_expression "(int)pppppuVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    uVar16 = (int)pppppuVar17 - 1;\n    local_ac = (undefined4 *****)((int)local_ac + 1);\n    pppppuVar17 = (undefined4 *****)((uVar16 >> 4) + (int)local_ac);\n    if (pcVar1 <= local_38) goto LAB_00023925;\n    while (pcVar24 = local_38 + 1, pcVar19 = local_38, local_38 = pcVar24, 0xf < uVar16) {\n      while( true ) {\n        uVar16 = uVar16 - 0x10;\n        *pcVar19 = '\x0f';\n        if (pppppuVar17 == local_ac) goto LAB_00023953;\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        if (local_38 < pcVar1) break;\nLAB_00023925:\n        pcVar19 = (char *)FUN_0001ff00(1);\n        local_38 = pcVar19 + 1;\n        if (uVar16 < 0x10) goto LAB_00023944;\n      }\n    }\nLAB_00023944:\n    *pcVar19 = (char)uVar16;\n  }" { (expression_statement "uVar16 = (int)pppppuVar17 - 1;" (assignment_expression "uVar16 = (int)pppppuVar17 - 1" identifier = (binary_expression "(int)pppppuVar17 - 1" (cast_expression "(int)pppppuVar17" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal)) ;) (expression_statement "local_ac = (undefined4 *****)((int)local_ac + 1);" (assignment_expression "local_ac = (undefined4 *****)((int)local_ac + 1)" identifier = (cast_expression "(undefined4 *****)((int)local_ac + 1)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_ac + 1)" ( (binary_expression "(int)local_ac + 1" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pppppuVar17 = (undefined4 *****)((uVar16 >> 4) + (int)local_ac);" (assignment_expression "pppppuVar17 = (undefined4 *****)((uVar16 >> 4) + (int)local_ac)" identifier = (cast_expression "(undefined4 *****)((uVar16 >> 4) + (int)local_ac)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((uVar16 >> 4) + (int)local_ac)" ( (binary_expression "(uVar16 >> 4) + (int)local_ac" (parenthesized_expression "(uVar16 >> 4)" ( (binary_expression "uVar16 >> 4" identifier >> number_literal) )) + (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (pcVar1 <= local_38) goto LAB_00023925;" if (parenthesized_expression "(pcVar1 <= local_38)" ( (binary_expression "pcVar1 <= local_38" identifier <= identifier) )) (goto_statement "goto LAB_00023925;" goto statement_identifier ;)) (while_statement "while (pcVar24 = local_38 + 1, pcVar19 = local_38, local_38 = pcVar24, 0xf < uVar16) {\n      while( true ) {\n        uVar16 = uVar16 - 0x10;\n        *pcVar19 = '\x0f';\n        if (pppppuVar17 == local_ac) goto LAB_00023953;\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        if (local_38 < pcVar1) break;\nLAB_00023925:\n        pcVar19 = (char *)FUN_0001ff00(1);\n        local_38 = pcVar19 + 1;\n        if (uVar16 < 0x10) goto LAB_00023944;\n      }\n    }" while (parenthesized_expression "(pcVar24 = local_38 + 1, pcVar19 = local_38, local_38 = pcVar24, 0xf < uVar16)" ( (comma_expression "pcVar24 = local_38 + 1, pcVar19 = local_38, local_38 = pcVar24, 0xf < uVar16" (assignment_expression "pcVar24 = local_38 + 1" identifier = (binary_expression "local_38 + 1" identifier + number_literal)) , (comma_expression "pcVar19 = local_38, local_38 = pcVar24, 0xf < uVar16" (assignment_expression "pcVar19 = local_38" identifier = identifier) , (comma_expression "local_38 = pcVar24, 0xf < uVar16" (assignment_expression "local_38 = pcVar24" identifier = identifier) , (binary_expression "0xf < uVar16" number_literal < identifier)))) )) (compound_statement "{\n      while( true ) {\n        uVar16 = uVar16 - 0x10;\n        *pcVar19 = '\x0f';\n        if (pppppuVar17 == local_ac) goto LAB_00023953;\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        if (local_38 < pcVar1) break;\nLAB_00023925:\n        pcVar19 = (char *)FUN_0001ff00(1);\n        local_38 = pcVar19 + 1;\n        if (uVar16 < 0x10) goto LAB_00023944;\n      }\n    }" { (while_statement "while( true ) {\n        uVar16 = uVar16 - 0x10;\n        *pcVar19 = '\x0f';\n        if (pppppuVar17 == local_ac) goto LAB_00023953;\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        if (local_38 < pcVar1) break;\nLAB_00023925:\n        pcVar19 = (char *)FUN_0001ff00(1);\n        local_38 = pcVar19 + 1;\n        if (uVar16 < 0x10) goto LAB_00023944;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        uVar16 = uVar16 - 0x10;\n        *pcVar19 = '\x0f';\n        if (pppppuVar17 == local_ac) goto LAB_00023953;\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        if (local_38 < pcVar1) break;\nLAB_00023925:\n        pcVar19 = (char *)FUN_0001ff00(1);\n        local_38 = pcVar19 + 1;\n        if (uVar16 < 0x10) goto LAB_00023944;\n      }" { (expression_statement "uVar16 = uVar16 - 0x10;" (assignment_expression "uVar16 = uVar16 - 0x10" identifier = (binary_expression "uVar16 - 0x10" identifier - number_literal)) ;) (expression_statement "*pcVar19 = '\x0f';" (assignment_expression "*pcVar19 = '\x0f'" (pointer_expression "*pcVar19" * identifier) = (char_literal "'\x0f'" ' escape_sequence ')) ;) (if_statement "if (pppppuVar17 == local_ac) goto LAB_00023953;" if (parenthesized_expression "(pppppuVar17 == local_ac)" ( (binary_expression "pppppuVar17 == local_ac" identifier == identifier) )) (goto_statement "goto LAB_00023953;" goto statement_identifier ;)) (expression_statement "local_ac = (undefined4 *****)((int)local_ac + 1);" (assignment_expression "local_ac = (undefined4 *****)((int)local_ac + 1)" identifier = (cast_expression "(undefined4 *****)((int)local_ac + 1)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_ac + 1)" ( (binary_expression "(int)local_ac + 1" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (local_38 < pcVar1) break;" if (parenthesized_expression "(local_38 < pcVar1)" ( (binary_expression "local_38 < pcVar1" identifier < identifier) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00023925:\n        pcVar19 = (char *)FUN_0001ff00(1);" statement_identifier : (expression_statement "pcVar19 = (char *)FUN_0001ff00(1);" (assignment_expression "pcVar19 = (char *)FUN_0001ff00(1)" identifier = (cast_expression "(char *)FUN_0001ff00(1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001ff00(1)" identifier (argument_list "(1)" ( number_literal ))))) ;)) (expression_statement "local_38 = pcVar19 + 1;" (assignment_expression "local_38 = pcVar19 + 1" identifier = (binary_expression "pcVar19 + 1" identifier + number_literal)) ;) (if_statement "if (uVar16 < 0x10) goto LAB_00023944;" if (parenthesized_expression "(uVar16 < 0x10)" ( (binary_expression "uVar16 < 0x10" identifier < number_literal) )) (goto_statement "goto LAB_00023944;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_00023944:\n    *pcVar19 = (char)uVar16;" statement_identifier : (expression_statement "*pcVar19 = (char)uVar16;" (assignment_expression "*pcVar19 = (char)uVar16" (pointer_expression "*pcVar19" * identifier) = (cast_expression "(char)uVar16" ( (type_descriptor "char" primitive_type) ) identifier)) ;)) }))) (labeled_statement "LAB_00023953:\n  pppppppuVar30 = (undefined4 *******)*local_b4;" statement_identifier : (expression_statement "pppppppuVar30 = (undefined4 *******)*local_b4;" (assignment_expression "pppppppuVar30 = (undefined4 *******)*local_b4" identifier = (cast_expression "(undefined4 *******)*local_b4" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*local_b4" * identifier))) ;)) (if_statement "if (pppppppuVar30 == (undefined4 *******)0x0) goto LAB_00023a10;" if (parenthesized_expression "(pppppppuVar30 == (undefined4 *******)0x0)" ( (binary_expression "pppppppuVar30 == (undefined4 *******)0x0" identifier == (cast_expression "(undefined4 *******)0x0" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00023a10;" goto statement_identifier ;)) (expression_statement "local_9c = local_a4;" (assignment_expression "local_9c = local_a4" identifier = identifier) ;) (expression_statement "local_94 = local_b4;" (assignment_expression "local_94 = local_b4" identifier = identifier) ;) (expression_statement "local_98 = local_a8;" (assignment_expression "local_98 = local_a8" identifier = identifier) ;) (labeled_statement "LAB_000237a0:\n  pppppppuVar29 = (undefined4 *******)*pppppppuVar30;" statement_identifier : (expression_statement "pppppppuVar29 = (undefined4 *******)*pppppppuVar30;" (assignment_expression "pppppppuVar29 = (undefined4 *******)*pppppppuVar30" identifier = (cast_expression "(undefined4 *******)*pppppppuVar30" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*pppppppuVar30" * identifier))) ;)) (expression_statement "local_b4 = pppppppuVar30;" (assignment_expression "local_b4 = pppppppuVar30" identifier = identifier) ;) (goto_statement "goto LAB_000237a6;" goto statement_identifier ;) (labeled_statement "LAB_00023a10:\n  if (local_a8 != (undefined4 ******)0x0) {\n    local_a8[0xd] = local_b4[5];\n  }" statement_identifier : (if_statement "if (local_a8 != (undefined4 ******)0x0) {\n    local_a8[0xd] = local_b4[5];\n  }" if (parenthesized_expression "(local_a8 != (undefined4 ******)0x0)" ( (binary_expression "local_a8 != (undefined4 ******)0x0" identifier != (cast_expression "(undefined4 ******)0x0" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n    local_a8[0xd] = local_b4[5];\n  }" { (expression_statement "local_a8[0xd] = local_b4[5];" (assignment_expression "local_a8[0xd] = local_b4[5]" (subscript_expression "local_a8[0xd]" identifier [ number_literal ]) = (subscript_expression "local_b4[5]" identifier [ number_literal ])) ;) }))) (if_statement "if (local_a0 != (undefined4 ******)0x0) {\n    local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n    local_a0[0x15] = (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n    local_a0[9] = local_a4;\n  }" if (parenthesized_expression "(local_a0 != (undefined4 ******)0x0)" ( (binary_expression "local_a0 != (undefined4 ******)0x0" identifier != (cast_expression "(undefined4 ******)0x0" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n    local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n    local_a0[0x15] = (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n    local_a0[9] = local_a4;\n  }" { (expression_statement "local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);" (assignment_expression "local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12])" (subscript_expression "local_a0[0x14]" identifier [ number_literal ]) = (cast_expression "(undefined4 *****)((int)local_ac - (int)local_a0[0x12])" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_ac - (int)local_a0[0x12])" ( (binary_expression "(int)local_ac - (int)local_a0[0x12]" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_a0[0x12]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_a0[0x12]" identifier [ number_literal ]))) )))) ;) (expression_statement "local_a0[0x15] = (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);" (assignment_expression "local_a0[0x15] = (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13])" (subscript_expression "local_a0[0x15]" identifier [ number_literal ]) = (cast_expression "(undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13])" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13])" ( (binary_expression "-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]" (unary_expression "-(uint)(local_ac < local_a0[0x12])" - (call_expression "(uint)(local_ac < local_a0[0x12])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_ac < local_a0[0x12])" ( (binary_expression "local_ac < local_a0[0x12]" identifier < (subscript_expression "local_a0[0x12]" identifier [ number_literal ])) )))) - (cast_expression "(int)local_a0[0x13]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_a0[0x13]" identifier [ number_literal ]))) )))) ;) (expression_statement "local_a0[9] = local_a4;" (assignment_expression "local_a0[9] = local_a4" (subscript_expression "local_a0[9]" identifier [ number_literal ]) = identifier) ;) })) (goto_statement "goto LAB_00023a3f;" goto statement_identifier ;) (labeled_statement "LAB_00024380:\n  iVar26 = *(int *)(local_64 + 4);" statement_identifier : (expression_statement "iVar26 = *(int *)(local_64 + 4);" (assignment_expression "iVar26 = *(int *)(local_64 + 4)" identifier = (pointer_expression "*(int *)(local_64 + 4)" * (cast_expression "(int *)(local_64 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_64 + 4)" ( (binary_expression "local_64 + 4" identifier + number_literal) ))))) ;)) (if_statement "if (*(int *)(local_64 + 4) == 0) goto code_r0x00024393;" if (parenthesized_expression "(*(int *)(local_64 + 4) == 0)" ( (binary_expression "*(int *)(local_64 + 4) == 0" (pointer_expression "*(int *)(local_64 + 4)" * (cast_expression "(int *)(local_64 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_64 + 4)" ( (binary_expression "local_64 + 4" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto code_r0x00024393;" goto statement_identifier ;)) (goto_statement "goto LAB_00023bdc;" goto statement_identifier ;) (labeled_statement "code_r0x00024393:\n  iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);" statement_identifier : (expression_statement "iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);" (assignment_expression "iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18)" identifier = (binary_expression "(int)local_a8 - *(int *)((int)local_9c + 0x18)" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)((int)local_9c + 0x18)" * (cast_expression "(int *)((int)local_9c + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c + 0x18)" ( (binary_expression "(int)local_9c + 0x18" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;)) (expression_statement "local_8c = (int)local_a8;" (assignment_expression "local_8c = (int)local_a8" identifier = (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (labeled_statement "LAB_000243a4:\n  *(int *)((int)local_9c + 0x1c) = iVar26;" statement_identifier : (expression_statement "*(int *)((int)local_9c + 0x1c) = iVar26;" (assignment_expression "*(int *)((int)local_9c + 0x1c) = iVar26" (pointer_expression "*(int *)((int)local_9c + 0x1c)" * (cast_expression "(int *)((int)local_9c + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c + 0x1c)" ( (binary_expression "(int)local_9c + 0x1c" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "local_9c = (undefined4 *****)((int)local_9c + 0x294);" (assignment_expression "local_9c = (undefined4 *****)((int)local_9c + 0x294)" identifier = (cast_expression "(undefined4 *****)((int)local_9c + 0x294)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_9c + 0x294)" ( (binary_expression "(int)local_9c + 0x294" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (local_54 <= local_9c) goto code_r0x000243bf;" if (parenthesized_expression "(local_54 <= local_9c)" ( (binary_expression "local_54 <= local_9c" identifier <= identifier) )) (goto_statement "goto code_r0x000243bf;" goto statement_identifier ;)) (goto_statement "goto LAB_00023bb7;" goto statement_identifier ;) (labeled_statement "code_r0x000243bf:\n  iVar26 = *(int *)(local_5c + 4);" statement_identifier : (expression_statement "iVar26 = *(int *)(local_5c + 4);" (assignment_expression "iVar26 = *(int *)(local_5c + 4)" identifier = (pointer_expression "*(int *)(local_5c + 4)" * (cast_expression "(int *)(local_5c + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_5c + 4)" ( (binary_expression "local_5c + 4" identifier + number_literal) ))))) ;)) (if_statement "if (*(int *)(local_5c + 4) == 0) goto code_r0x000243ce;" if (parenthesized_expression "(*(int *)(local_5c + 4) == 0)" ( (binary_expression "*(int *)(local_5c + 4) == 0" (pointer_expression "*(int *)(local_5c + 4)" * (cast_expression "(int *)(local_5c + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_5c + 4)" ( (binary_expression "local_5c + 4" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto code_r0x000243ce;" goto statement_identifier ;)) (goto_statement "goto LAB_00023b80;" goto statement_identifier ;) (labeled_statement "code_r0x000243ce:\n  local_68 = local_68 + local_8c * uVar36;" statement_identifier : (expression_statement "local_68 = local_68 + local_8c * uVar36;" (assignment_expression "local_68 = local_68 + local_8c * uVar36" identifier = (binary_expression "local_68 + local_8c * uVar36" identifier + (binary_expression "local_8c * uVar36" identifier * identifier))) ;)) (expression_statement "uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                        -(uint)(local_68 < *(uint *)(param_1 + 0x34)) - *(int *)(param_1 + 0x38),\n                        *(undefined4 *)(param_3 + 0x24),*(undefined4 *)(param_3 + 0x28));" (assignment_expression "uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                        -(uint)(local_68 < *(uint *)(param_1 + 0x34)) - *(int *)(param_1 + 0x38),\n                        *(undefined4 *)(param_3 + 0x24),*(undefined4 *)(param_3 + 0x28))" identifier = (call_expression "FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                        -(uint)(local_68 < *(uint *)(param_1 + 0x34)) - *(int *)(param_1 + 0x38),\n                        *(undefined4 *)(param_3 + 0x24),*(undefined4 *)(param_3 + 0x28))" identifier (argument_list "(local_68 - *(uint *)(param_1 + 0x34),\n                        -(uint)(local_68 < *(uint *)(param_1 + 0x34)) - *(int *)(param_1 + 0x38),\n                        *(undefined4 *)(param_3 + 0x24),*(undefined4 *)(param_3 + 0x28))" ( (binary_expression "local_68 - *(uint *)(param_1 + 0x34)" identifier - (pointer_expression "*(uint *)(param_1 + 0x34)" * (cast_expression "(uint *)(param_1 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) , (binary_expression "-(uint)(local_68 < *(uint *)(param_1 + 0x34)) - *(int *)(param_1 + 0x38)" (unary_expression "-(uint)(local_68 < *(uint *)(param_1 + 0x34))" - (call_expression "(uint)(local_68 < *(uint *)(param_1 + 0x34))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_68 < *(uint *)(param_1 + 0x34))" ( (binary_expression "local_68 < *(uint *)(param_1 + 0x34)" identifier < (pointer_expression "*(uint *)(param_1 + 0x34)" * (cast_expression "(uint *)(param_1 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) )))) - (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) , (pointer_expression "*(undefined4 *)(param_3 + 0x24)" * (cast_expression "(undefined4 *)(param_3 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x24)" ( (binary_expression "param_3 + 0x24" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_3 + 0x28)" * (cast_expression "(undefined4 *)(param_3 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x28)" ( (binary_expression "param_3 + 0x28" identifier + number_literal) )))) )))) ;) (labeled_statement "LAB_0002441d:\n  puVar20 = (undefined4 *)DAT_00078240;" statement_identifier : (expression_statement "puVar20 = (undefined4 *)DAT_00078240;" (assignment_expression "puVar20 = (undefined4 *)DAT_00078240" identifier = (cast_expression "(undefined4 *)DAT_00078240" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "*(undefined4 *)(param_1 + 0x30) = uVar13;" (assignment_expression "*(undefined4 *)(param_1 + 0x30) = uVar13" (pointer_expression "*(undefined4 *)(param_1 + 0x30)" * (cast_expression "(undefined4 *)(param_1 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar24 = pcVar14 + *(int *)(param_1 + 0x28);" (assignment_expression "pcVar24 = pcVar14 + *(int *)(param_1 + 0x28)" identifier = (binary_expression "pcVar14 + *(int *)(param_1 + 0x28)" identifier + (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))))) ;) (expression_statement "uVar36 = *(uint *)(param_3 + 0x1c);" (assignment_expression "uVar36 = *(uint *)(param_3 + 0x1c)" identifier = (pointer_expression "*(uint *)(param_3 + 0x1c)" * (cast_expression "(uint *)(param_3 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x1c)" ( (binary_expression "param_3 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "uVar16 = *(uint *)(param_3 + 0x20);" (assignment_expression "uVar16 = *(uint *)(param_3 + 0x20)" identifier = (pointer_expression "*(uint *)(param_3 + 0x20)" * (cast_expression "(uint *)(param_3 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x20)" ( (binary_expression "param_3 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "pcVar5 = *(code **)(param_3 + 0x7c);" (assignment_expression "pcVar5 = *(code **)(param_3 + 0x7c)" identifier = (pointer_expression "*(code **)(param_3 + 0x7c)" * (cast_expression "(code **)(param_3 + 0x7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x7c)" ( (binary_expression "param_3 + 0x7c" identifier + number_literal) ))))) ;) (if_statement "if (puVar20 != (undefined4 *)0x0) {\n    sVar9 = 0;\nLAB_00024474:\n    do {\n      local_70 = puVar20;\n      local_a4 = *(undefined4 ******)((int)local_70 + 8);\n      if (*(int *)((int)local_70 + 4) == 0) {\n        local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5);\n        if (local_7c <= local_a4) break;\n      }\n      else {\n        local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);\n        puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }\n      do {\n        bVar41 = true;\n        *(short *)(local_a4 + 0xc) = sVar9;\n        uVar32 = (uint)local_a4[0x28];\n        if (uVar32 != 0) {\nLAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);\n          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);\n        }\n        *(short *)((int)local_a4 + 0x32) = (short)uVar32;\n        local_a4 = local_a4 + 0xa5;\n      } while (local_a4 < local_7c);\n      puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n    } while (*(int *)((int)local_70 + 4) != 0);\n    pppppppuVar29 = (undefined4 *******)DAT_00078240;\n    *(undefined4 *)(param_1 + 0x3c) = 0;\n    *(undefined4 *)(param_1 + 0x40) = 0;\n    *(undefined4 *)(param_1 + 0x44) = 0;\n    *(undefined4 *)(param_1 + 0x50) = 0;\n    *(uint *)(param_1 + 0x4c) = local_68;\n    iVar26 = *(int *)(*(int *)(DAT_00081544 + 4) + 8);\n    bVar41 = iVar26 == 0;\n    pcVar24 = pcVar14 + local_68;\n    if (pppppppuVar29 != (undefined4 *******)0x0) {\n      iVar15 = 0;\nLAB_00024d54:\n      do {\n        local_94 = pppppppuVar29;\n        local_a0 = *(undefined4 *******)((int)local_94 + 8);\n        if (*(int *)((int)local_94 + 4) == 0) {\n          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          *(int *)((int)local_a0 + 0x34) = iVar15;\n          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;\n          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);\n          if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }\n          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;\n          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);\n        } while (local_a0 < local_9c);\n        pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n      } while (*(int *)((int)local_94 + 4) != 0);\n      local_68 = local_68 + iVar15 * 4;\n    }\n    goto LAB_00024eaa;\n  }" if (parenthesized_expression "(puVar20 != (undefined4 *)0x0)" ( (binary_expression "puVar20 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sVar9 = 0;\nLAB_00024474:\n    do {\n      local_70 = puVar20;\n      local_a4 = *(undefined4 ******)((int)local_70 + 8);\n      if (*(int *)((int)local_70 + 4) == 0) {\n        local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5);\n        if (local_7c <= local_a4) break;\n      }\n      else {\n        local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);\n        puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }\n      do {\n        bVar41 = true;\n        *(short *)(local_a4 + 0xc) = sVar9;\n        uVar32 = (uint)local_a4[0x28];\n        if (uVar32 != 0) {\nLAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);\n          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);\n        }\n        *(short *)((int)local_a4 + 0x32) = (short)uVar32;\n        local_a4 = local_a4 + 0xa5;\n      } while (local_a4 < local_7c);\n      puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n    } while (*(int *)((int)local_70 + 4) != 0);\n    pppppppuVar29 = (undefined4 *******)DAT_00078240;\n    *(undefined4 *)(param_1 + 0x3c) = 0;\n    *(undefined4 *)(param_1 + 0x40) = 0;\n    *(undefined4 *)(param_1 + 0x44) = 0;\n    *(undefined4 *)(param_1 + 0x50) = 0;\n    *(uint *)(param_1 + 0x4c) = local_68;\n    iVar26 = *(int *)(*(int *)(DAT_00081544 + 4) + 8);\n    bVar41 = iVar26 == 0;\n    pcVar24 = pcVar14 + local_68;\n    if (pppppppuVar29 != (undefined4 *******)0x0) {\n      iVar15 = 0;\nLAB_00024d54:\n      do {\n        local_94 = pppppppuVar29;\n        local_a0 = *(undefined4 *******)((int)local_94 + 8);\n        if (*(int *)((int)local_94 + 4) == 0) {\n          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          *(int *)((int)local_a0 + 0x34) = iVar15;\n          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;\n          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);\n          if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }\n          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;\n          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);\n        } while (local_a0 < local_9c);\n        pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n      } while (*(int *)((int)local_94 + 4) != 0);\n      local_68 = local_68 + iVar15 * 4;\n    }\n    goto LAB_00024eaa;\n  }" { (expression_statement "sVar9 = 0;" (assignment_expression "sVar9 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00024474:\n    do {\n      local_70 = puVar20;\n      local_a4 = *(undefined4 ******)((int)local_70 + 8);\n      if (*(int *)((int)local_70 + 4) == 0) {\n        local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5);\n        if (local_7c <= local_a4) break;\n      }\n      else {\n        local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);\n        puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }\n      do {\n        bVar41 = true;\n        *(short *)(local_a4 + 0xc) = sVar9;\n        uVar32 = (uint)local_a4[0x28];\n        if (uVar32 != 0) {\nLAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);\n          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);\n        }\n        *(short *)((int)local_a4 + 0x32) = (short)uVar32;\n        local_a4 = local_a4 + 0xa5;\n      } while (local_a4 < local_7c);\n      puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n    } while (*(int *)((int)local_70 + 4) != 0);" statement_identifier : (do_statement "do {\n      local_70 = puVar20;\n      local_a4 = *(undefined4 ******)((int)local_70 + 8);\n      if (*(int *)((int)local_70 + 4) == 0) {\n        local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5);\n        if (local_7c <= local_a4) break;\n      }\n      else {\n        local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);\n        puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }\n      do {\n        bVar41 = true;\n        *(short *)(local_a4 + 0xc) = sVar9;\n        uVar32 = (uint)local_a4[0x28];\n        if (uVar32 != 0) {\nLAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);\n          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);\n        }\n        *(short *)((int)local_a4 + 0x32) = (short)uVar32;\n        local_a4 = local_a4 + 0xa5;\n      } while (local_a4 < local_7c);\n      puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n    } while (*(int *)((int)local_70 + 4) != 0);" do (compound_statement "{\n      local_70 = puVar20;\n      local_a4 = *(undefined4 ******)((int)local_70 + 8);\n      if (*(int *)((int)local_70 + 4) == 0) {\n        local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5);\n        if (local_7c <= local_a4) break;\n      }\n      else {\n        local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);\n        puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }\n      do {\n        bVar41 = true;\n        *(short *)(local_a4 + 0xc) = sVar9;\n        uVar32 = (uint)local_a4[0x28];\n        if (uVar32 != 0) {\nLAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);\n          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);\n        }\n        *(short *)((int)local_a4 + 0x32) = (short)uVar32;\n        local_a4 = local_a4 + 0xa5;\n      } while (local_a4 < local_7c);\n      puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n    }" { (expression_statement "local_70 = puVar20;" (assignment_expression "local_70 = puVar20" identifier = identifier) ;) (expression_statement "local_a4 = *(undefined4 ******)((int)local_70 + 8);" (assignment_expression "local_a4 = *(undefined4 ******)((int)local_70 + 8)" identifier = (pointer_expression "*(undefined4 ******)((int)local_70 + 8)" * (cast_expression "(undefined4 ******)((int)local_70 + 8)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)local_70 + 8)" ( (binary_expression "(int)local_70 + 8" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (*(int *)((int)local_70 + 4) == 0) {\n        local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5);\n        if (local_7c <= local_a4) break;\n      }\n      else {\n        local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);\n        puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }" if (parenthesized_expression "(*(int *)((int)local_70 + 4) == 0)" ( (binary_expression "*(int *)((int)local_70 + 4) == 0" (pointer_expression "*(int *)((int)local_70 + 4)" * (cast_expression "(int *)((int)local_70 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_70 + 4)" ( (binary_expression "(int)local_70 + 4" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n        local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5);\n        if (local_7c <= local_a4) break;\n      }" { (expression_statement "local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5);" (assignment_expression "local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5)" identifier = (cast_expression "(uint *)(local_a4 + (uint)DAT_00078250 * 0xa5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a4 + (uint)DAT_00078250 * 0xa5)" ( (binary_expression "local_a4 + (uint)DAT_00078250 * 0xa5" identifier + (binary_expression "(uint)DAT_00078250 * 0xa5" (cast_expression "(uint)DAT_00078250" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) ;) (if_statement "if (local_7c <= local_a4) break;" if (parenthesized_expression "(local_7c <= local_a4)" ( (binary_expression "local_7c <= local_a4" identifier <= identifier) )) (break_statement "break;" break ;)) }) (else_clause "else {\n        local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);\n        puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }" else (compound_statement "{\n        local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);\n        puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }" { (expression_statement "local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);" (assignment_expression "local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5)" identifier = (cast_expression "(uint *)(local_a4 + (uint)DAT_0007824e * 0xa5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a4 + (uint)DAT_0007824e * 0xa5)" ( (binary_expression "local_a4 + (uint)DAT_0007824e * 0xa5" identifier + (binary_expression "(uint)DAT_0007824e * 0xa5" (cast_expression "(uint)DAT_0007824e" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) ;) (expression_statement "puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);" (assignment_expression "puVar20 = (undefined4 *)*(int *)((int)local_70 + 4)" identifier = (cast_expression "(undefined4 *)*(int *)((int)local_70 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*(int *)((int)local_70 + 4)" * (cast_expression "(int *)((int)local_70 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_70 + 4)" ( (binary_expression "(int)local_70 + 4" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (if_statement "if (local_7c <= local_a4) goto LAB_00024474;" if (parenthesized_expression "(local_7c <= local_a4)" ( (binary_expression "local_7c <= local_a4" identifier <= identifier) )) (goto_statement "goto LAB_00024474;" goto statement_identifier ;)) }))) (do_statement "do {\n        bVar41 = true;\n        *(short *)(local_a4 + 0xc) = sVar9;\n        uVar32 = (uint)local_a4[0x28];\n        if (uVar32 != 0) {\nLAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);\n          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);\n        }\n        *(short *)((int)local_a4 + 0x32) = (short)uVar32;\n        local_a4 = local_a4 + 0xa5;\n      } while (local_a4 < local_7c);" do (compound_statement "{\n        bVar41 = true;\n        *(short *)(local_a4 + 0xc) = sVar9;\n        uVar32 = (uint)local_a4[0x28];\n        if (uVar32 != 0) {\nLAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);\n          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);\n        }\n        *(short *)((int)local_a4 + 0x32) = (short)uVar32;\n        local_a4 = local_a4 + 0xa5;\n      }" { (expression_statement "bVar41 = true;" (assignment_expression "bVar41 = true" identifier = true) ;) (expression_statement "*(short *)(local_a4 + 0xc) = sVar9;" (assignment_expression "*(short *)(local_a4 + 0xc) = sVar9" (pointer_expression "*(short *)(local_a4 + 0xc)" * (cast_expression "(short *)(local_a4 + 0xc)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a4 + 0xc)" ( (binary_expression "local_a4 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar32 = (uint)local_a4[0x28];" (assignment_expression "uVar32 = (uint)local_a4[0x28]" identifier = (cast_expression "(uint)local_a4[0x28]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_a4[0x28]" identifier [ number_literal ]))) ;) (if_statement "if (uVar32 != 0) {\nLAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);\n          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);\n        }" if (parenthesized_expression "(uVar32 != 0)" ( (binary_expression "uVar32 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);\n          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);\n        }" { (labeled_statement "LAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);" statement_identifier : (do_statement "do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);" do (compound_statement "{\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          }" { (expression_statement "local_88 = uVar32;" (assignment_expression "local_88 = uVar32" identifier = identifier) ;) (if_statement "if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }" if (parenthesized_expression "(*(uint *)(local_88 + 4) == 0)" ( (binary_expression "*(uint *)(local_88 + 4) == 0" (pointer_expression "*(uint *)(local_88 + 4)" * (cast_expression "(uint *)(local_88 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + 4)" ( (binary_expression "local_88 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }" { (expression_statement "piVar25 = *(int **)(local_88 + 8);" (assignment_expression "piVar25 = *(int **)(local_88 + 8)" identifier = (pointer_expression "*(int **)(local_88 + 8)" * (cast_expression "(int **)(local_88 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_88 + 8)" ( (binary_expression "local_88 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);" (assignment_expression "local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11)" identifier = (cast_expression "(undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11)" ( (binary_expression "piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11" identifier + (binary_expression "(uint)(ushort)local_a4[0x2c] * 0x11" (cast_expression "(uint)(ushort)local_a4[0x2c]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(ushort)local_a4[0x2c]" ( (type_descriptor "ushort" type_identifier) ) (subscript_expression "local_a4[0x2c]" identifier [ number_literal ]))) * number_literal)) )))) ;) (if_statement "if (local_a0 <= piVar25) break;" if (parenthesized_expression "(local_a0 <= piVar25)" ( (binary_expression "local_a0 <= piVar25" identifier <= identifier) )) (break_statement "break;" break ;)) }) (else_clause "else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }" else (compound_statement "{\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }" { (expression_statement "piVar25 = *(int **)(local_88 + 8);" (assignment_expression "piVar25 = *(int **)(local_88 + 8)" identifier = (pointer_expression "*(int **)(local_88 + 8)" * (cast_expression "(int **)(local_88 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_88 + 8)" ( (binary_expression "local_88 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);" (assignment_expression "local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11)" identifier = (cast_expression "(undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11)" ( (binary_expression "piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11" identifier + (binary_expression "(uint)*(ushort *)((int)local_a4 + 0xae) * 0x11" (binary_expression "(uint)*(ushort *)((int)local_a4 + 0xae)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)((int)local_a4 + 0xae)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a4 + 0xae)" ( (binary_expression "(int)local_a4 + 0xae" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) * number_literal)) )))) ;) (expression_statement "uVar32 = *(uint *)(local_88 + 4);" (assignment_expression "uVar32 = *(uint *)(local_88 + 4)" identifier = (pointer_expression "*(uint *)(local_88 + 4)" * (cast_expression "(uint *)(local_88 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + 4)" ( (binary_expression "local_88 + 4" identifier + number_literal) ))))) ;) (if_statement "if (local_a0 <= piVar25) goto LAB_000244d8;" if (parenthesized_expression "(local_a0 <= piVar25)" ( (binary_expression "local_a0 <= piVar25" identifier <= identifier) )) (goto_statement "goto LAB_000244d8;" goto statement_identifier ;)) }))) (do_statement "do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);" do (compound_statement "{\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            }" { (expression_statement "uVar13 = *(undefined4 *)(*piVar25 + 4);" (assignment_expression "uVar13 = *(undefined4 *)(*piVar25 + 4)" identifier = (pointer_expression "*(undefined4 *)(*piVar25 + 4)" * (cast_expression "(undefined4 *)(*piVar25 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar25 + 4)" ( (binary_expression "*piVar25 + 4" (pointer_expression "*piVar25" * identifier) + number_literal) ))))) ;) (expression_statement "iVar26 = FUN_0003fad0(uVar13);" (assignment_expression "iVar26 = FUN_0003fad0(uVar13)" identifier = (call_expression "FUN_0003fad0(uVar13)" identifier (argument_list "(uVar13)" ( identifier )))) ;) (expression_statement "iVar15 = FUN_0003e1d0(uVar13);" (assignment_expression "iVar15 = FUN_0003e1d0(uVar13)" identifier = (call_expression "FUN_0003e1d0(uVar13)" identifier (argument_list "(uVar13)" ( identifier )))) ;) (expression_statement "uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);" (assignment_expression "uVar32 = iVar26 + *(int *)(iVar15 + 0x1c)" identifier = (binary_expression "iVar26 + *(int *)(iVar15 + 0x1c)" identifier + (pointer_expression "*(int *)(iVar15 + 0x1c)" * (cast_expression "(int *)(iVar15 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x1c)" ( (binary_expression "iVar15 + 0x1c" identifier + number_literal) )))))) ;) (if_statement "if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }" if (parenthesized_expression "(bVar41)" ( identifier )) (compound_statement "{\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }" { (expression_statement "iVar26 = 0;" (assignment_expression "iVar26 = 0" identifier = number_literal) ;) (expression_statement "*local_a4 = (undefined4 ****)uVar32;" (assignment_expression "*local_a4 = (undefined4 ****)uVar32" (pointer_expression "*local_a4" * identifier) = (cast_expression "(undefined4 ****)uVar32" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (expression_statement "local_a4[1] = (undefined4 ****)0x0;" (assignment_expression "local_a4[1] = (undefined4 ****)0x0" (subscript_expression "local_a4[1]" identifier [ number_literal ]) = (cast_expression "(undefined4 ****)0x0" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) }) (else_clause "else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }" else (compound_statement "{\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }" { (expression_statement "iVar26 = uVar32 - (int)*local_a4;" (assignment_expression "iVar26 = uVar32 - (int)*local_a4" identifier = (binary_expression "uVar32 - (int)*local_a4" identifier - (cast_expression "(int)*local_a4" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*local_a4" * identifier)))) ;) (expression_statement "iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];" (assignment_expression "iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1]" identifier = (binary_expression "-(uint)(uVar32 < *local_a4) - (int)local_a4[1]" (unary_expression "-(uint)(uVar32 < *local_a4)" - (call_expression "(uint)(uVar32 < *local_a4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar32 < *local_a4)" ( (binary_expression "uVar32 < *local_a4" identifier < (pointer_expression "*local_a4" * identifier)) )))) - (cast_expression "(int)local_a4[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_a4[1]" identifier [ number_literal ])))) ;) }))) (expression_statement "piVar25[1] = iVar26;" (assignment_expression "piVar25[1] = iVar26" (subscript_expression "piVar25[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar25[2] = iVar15;" (assignment_expression "piVar25[2] = iVar15" (subscript_expression "piVar25[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;" (assignment_expression "uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f" identifier = (binary_expression "(int)pcVar1 - (int)pcVar24 >> 0x1f" (binary_expression "(int)pcVar1 - (int)pcVar24" (cast_expression "(int)pcVar1" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar24" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (if_statement "if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }" if (parenthesized_expression "(uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36))" ( (binary_expression "uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)" (binary_expression "uVar32 < uVar16" identifier < identifier) || (binary_expression "uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)" (binary_expression "uVar32 - uVar16" identifier - identifier) < (call_expression "(uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)((int)pcVar1 - (int)pcVar24) < uVar36)" ( (binary_expression "(uint)((int)pcVar1 - (int)pcVar24) < uVar36" (call_expression "(uint)((int)pcVar1 - (int)pcVar24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pcVar1 - (int)pcVar24)" ( (binary_expression "(int)pcVar1 - (int)pcVar24" (cast_expression "(int)pcVar1" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < identifier) ))))) )) (compound_statement "{\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }" { (expression_statement "pcVar24 = (char *)FUN_0001ff00(uVar36);" (assignment_expression "pcVar24 = (char *)FUN_0001ff00(uVar36)" identifier = (cast_expression "(char *)FUN_0001ff00(uVar36)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001ff00(uVar36)" identifier (argument_list "(uVar36)" ( identifier ))))) ;) })) (expression_statement "piVar3 = piVar25 + 1;" (assignment_expression "piVar3 = piVar25 + 1" identifier = (binary_expression "piVar25 + 1" identifier + number_literal)) ;) (expression_statement "piVar25 = piVar25 + 0x11;" (assignment_expression "piVar25 = piVar25 + 0x11" identifier = (binary_expression "piVar25 + 0x11" identifier + number_literal)) ;) (expression_statement "(*pcVar5)(DAT_00081544,piVar3,pcVar24);" (call_expression "(*pcVar5)(DAT_00081544,piVar3,pcVar24)" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(DAT_00081544,piVar3,pcVar24)" ( identifier , identifier , identifier ))) ;) (expression_statement "pcVar24 = pcVar24 + uVar36;" (assignment_expression "pcVar24 = pcVar24 + uVar36" identifier = (binary_expression "pcVar24 + uVar36" identifier + identifier)) ;) (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" identifier = false) ;) (expression_statement "sVar9 = sVar9 + 1;" (assignment_expression "sVar9 = sVar9 + 1" identifier = (binary_expression "sVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar25 < local_a0)" ( (binary_expression "piVar25 < local_a0" identifier < identifier) )) ;) (expression_statement "uVar32 = *(uint *)(local_88 + 4);" (assignment_expression "uVar32 = *(uint *)(local_88 + 4)" identifier = (pointer_expression "*(uint *)(local_88 + 4)" * (cast_expression "(uint *)(local_88 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + 4)" ( (binary_expression "local_88 + 4" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(*(uint *)(local_88 + 4) != 0)" ( (binary_expression "*(uint *)(local_88 + 4) != 0" (pointer_expression "*(uint *)(local_88 + 4)" * (cast_expression "(uint *)(local_88 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + 4)" ( (binary_expression "local_88 + 4" identifier + number_literal) )))) != number_literal) )) ;)) (expression_statement "uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);" (assignment_expression "uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc])" identifier = (call_expression "(uint)(ushort)(sVar9 - (short)local_a4[0xc])" (call_expression "(uint)(ushort)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ushort)" ( identifier ))) (argument_list "(sVar9 - (short)local_a4[0xc])" ( (binary_expression "sVar9 - (short)local_a4[0xc]" identifier - (cast_expression "(short)local_a4[0xc]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "local_a4[0xc]" identifier [ number_literal ]))) )))) ;) })) (expression_statement "*(short *)((int)local_a4 + 0x32) = (short)uVar32;" (assignment_expression "*(short *)((int)local_a4 + 0x32) = (short)uVar32" (pointer_expression "*(short *)((int)local_a4 + 0x32)" * (cast_expression "(short *)((int)local_a4 + 0x32)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a4 + 0x32)" ( (binary_expression "(int)local_a4 + 0x32" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(short)uVar32" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "local_a4 = local_a4 + 0xa5;" (assignment_expression "local_a4 = local_a4 + 0xa5" identifier = (binary_expression "local_a4 + 0xa5" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_a4 < local_7c)" ( (binary_expression "local_a4 < local_7c" identifier < identifier) )) ;) (expression_statement "puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);" (assignment_expression "puVar20 = (undefined4 *)*(int *)((int)local_70 + 4)" identifier = (cast_expression "(undefined4 *)*(int *)((int)local_70 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*(int *)((int)local_70 + 4)" * (cast_expression "(int *)((int)local_70 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_70 + 4)" ( (binary_expression "(int)local_70 + 4" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) }) while (parenthesized_expression "(*(int *)((int)local_70 + 4) != 0)" ( (binary_expression "*(int *)((int)local_70 + 4) != 0" (pointer_expression "*(int *)((int)local_70 + 4)" * (cast_expression "(int *)((int)local_70 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_70 + 4)" ( (binary_expression "(int)local_70 + 4" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) ;)) (expression_statement "pppppppuVar29 = (undefined4 *******)DAT_00078240;" (assignment_expression "pppppppuVar29 = (undefined4 *******)DAT_00078240" identifier = (cast_expression "(undefined4 *******)DAT_00078240" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) identifier)) ;) (expression_statement "*(undefined4 *)(param_1 + 0x3c) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x3c) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x3c)" * (cast_expression "(undefined4 *)(param_1 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x40) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x40) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x40)" * (cast_expression "(undefined4 *)(param_1 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x44) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x44) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x44)" * (cast_expression "(undefined4 *)(param_1 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x50) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x50) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x50)" * (cast_expression "(undefined4 *)(param_1 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(param_1 + 0x4c) = local_68;" (assignment_expression "*(uint *)(param_1 + 0x4c) = local_68" (pointer_expression "*(uint *)(param_1 + 0x4c)" * (cast_expression "(uint *)(param_1 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar26 = *(int *)(*(int *)(DAT_00081544 + 4) + 8);" (assignment_expression "iVar26 = *(int *)(*(int *)(DAT_00081544 + 4) + 8)" identifier = (pointer_expression "*(int *)(*(int *)(DAT_00081544 + 4) + 8)" * (cast_expression "(int *)(*(int *)(DAT_00081544 + 4) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_00081544 + 4) + 8)" ( (binary_expression "*(int *)(DAT_00081544 + 4) + 8" (pointer_expression "*(int *)(DAT_00081544 + 4)" * (cast_expression "(int *)(DAT_00081544 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00081544 + 4)" ( (binary_expression "DAT_00081544 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "bVar41 = iVar26 == 0;" (assignment_expression "bVar41 = iVar26 == 0" identifier = (binary_expression "iVar26 == 0" identifier == number_literal)) ;) (expression_statement "pcVar24 = pcVar14 + local_68;" (assignment_expression "pcVar24 = pcVar14 + local_68" identifier = (binary_expression "pcVar14 + local_68" identifier + identifier)) ;) (if_statement "if (pppppppuVar29 != (undefined4 *******)0x0) {\n      iVar15 = 0;\nLAB_00024d54:\n      do {\n        local_94 = pppppppuVar29;\n        local_a0 = *(undefined4 *******)((int)local_94 + 8);\n        if (*(int *)((int)local_94 + 4) == 0) {\n          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          *(int *)((int)local_a0 + 0x34) = iVar15;\n          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;\n          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);\n          if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }\n          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;\n          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);\n        } while (local_a0 < local_9c);\n        pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n      } while (*(int *)((int)local_94 + 4) != 0);\n      local_68 = local_68 + iVar15 * 4;\n    }" if (parenthesized_expression "(pppppppuVar29 != (undefined4 *******)0x0)" ( (binary_expression "pppppppuVar29 != (undefined4 *******)0x0" identifier != (cast_expression "(undefined4 *******)0x0" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n      iVar15 = 0;\nLAB_00024d54:\n      do {\n        local_94 = pppppppuVar29;\n        local_a0 = *(undefined4 *******)((int)local_94 + 8);\n        if (*(int *)((int)local_94 + 4) == 0) {\n          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          *(int *)((int)local_a0 + 0x34) = iVar15;\n          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;\n          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);\n          if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }\n          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;\n          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);\n        } while (local_a0 < local_9c);\n        pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n      } while (*(int *)((int)local_94 + 4) != 0);\n      local_68 = local_68 + iVar15 * 4;\n    }" { (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00024d54:\n      do {\n        local_94 = pppppppuVar29;\n        local_a0 = *(undefined4 *******)((int)local_94 + 8);\n        if (*(int *)((int)local_94 + 4) == 0) {\n          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          *(int *)((int)local_a0 + 0x34) = iVar15;\n          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;\n          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);\n          if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }\n          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;\n          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);\n        } while (local_a0 < local_9c);\n        pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n      } while (*(int *)((int)local_94 + 4) != 0);" statement_identifier : (do_statement "do {\n        local_94 = pppppppuVar29;\n        local_a0 = *(undefined4 *******)((int)local_94 + 8);\n        if (*(int *)((int)local_94 + 4) == 0) {\n          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          *(int *)((int)local_a0 + 0x34) = iVar15;\n          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;\n          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);\n          if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }\n          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;\n          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);\n        } while (local_a0 < local_9c);\n        pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n      } while (*(int *)((int)local_94 + 4) != 0);" do (compound_statement "{\n        local_94 = pppppppuVar29;\n        local_a0 = *(undefined4 *******)((int)local_94 + 8);\n        if (*(int *)((int)local_94 + 4) == 0) {\n          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          *(int *)((int)local_a0 + 0x34) = iVar15;\n          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;\n          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);\n          if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }\n          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;\n          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);\n        } while (local_a0 < local_9c);\n        pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n      }" { (expression_statement "local_94 = pppppppuVar29;" (assignment_expression "local_94 = pppppppuVar29" identifier = identifier) ;) (expression_statement "local_a0 = *(undefined4 *******)((int)local_94 + 8);" (assignment_expression "local_a0 = *(undefined4 *******)((int)local_94 + 8)" identifier = (pointer_expression "*(undefined4 *******)((int)local_94 + 8)" * (cast_expression "(undefined4 *******)((int)local_94 + 8)" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)local_94 + 8)" ( (binary_expression "(int)local_94 + 8" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (*(int *)((int)local_94 + 4) == 0) {\n          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }" if (parenthesized_expression "(*(int *)((int)local_94 + 4) == 0)" ( (binary_expression "*(int *)((int)local_94 + 4) == 0" (pointer_expression "*(int *)((int)local_94 + 4)" * (cast_expression "(int *)((int)local_94 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + 4)" ( (binary_expression "(int)local_94 + 4" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);\n          if (local_9c <= local_a0) break;\n        }" { (expression_statement "local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);" (assignment_expression "local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0)" identifier = (cast_expression "(undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((uint)DAT_00078250 * 0x294 + (int)local_a0)" ( (binary_expression "(uint)DAT_00078250 * 0x294 + (int)local_a0" (binary_expression "(uint)DAT_00078250 * 0x294" (cast_expression "(uint)DAT_00078250" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) + (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (local_9c <= local_a0) break;" if (parenthesized_expression "(local_9c <= local_a0)" ( (binary_expression "local_9c <= local_a0" identifier <= identifier) )) (break_statement "break;" break ;)) }) (else_clause "else {\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }" else (compound_statement "{\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }" { (expression_statement "local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);" (assignment_expression "local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0)" identifier = (cast_expression "(undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((uint)DAT_0007824e * 0x294 + (int)local_a0)" ( (binary_expression "(uint)DAT_0007824e * 0x294 + (int)local_a0" (binary_expression "(uint)DAT_0007824e * 0x294" (cast_expression "(uint)DAT_0007824e" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) + (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);" (assignment_expression "pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4)" identifier = (cast_expression "(undefined4 *******)*(int *)((int)local_94 + 4)" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*(int *)((int)local_94 + 4)" * (cast_expression "(int *)((int)local_94 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + 4)" ( (binary_expression "(int)local_94 + 4" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (if_statement "if (local_9c <= local_a0) goto LAB_00024d54;" if (parenthesized_expression "(local_9c <= local_a0)" ( (binary_expression "local_9c <= local_a0" identifier <= identifier) )) (goto_statement "goto LAB_00024d54;" goto statement_identifier ;)) }))) (do_statement "do {\n          *(int *)((int)local_a0 + 0x34) = iVar15;\n          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;\n          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);\n          if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }\n          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;\n          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);\n        } while (local_a0 < local_9c);" do (compound_statement "{\n          *(int *)((int)local_a0 + 0x34) = iVar15;\n          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;\n          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);\n          if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }\n          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;\n          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);\n        }" { (expression_statement "*(int *)((int)local_a0 + 0x34) = iVar15;" (assignment_expression "*(int *)((int)local_a0 + 0x34) = iVar15" (pointer_expression "*(int *)((int)local_a0 + 0x34)" * (cast_expression "(int *)((int)local_a0 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a0 + 0x34)" ( (binary_expression "(int)local_a0 + 0x34" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;" (assignment_expression "*(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7" (pointer_expression "*(byte *)((int)local_a0 + 0x44)" * (cast_expression "(byte *)((int)local_a0 + 0x44)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a0 + 0x44)" ( (binary_expression "(int)local_a0 + 0x44" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7" (binary_expression "*(byte *)((int)local_a0 + 0x44) & 0x7f" (pointer_expression "*(byte *)((int)local_a0 + 0x44)" * (cast_expression "(byte *)((int)local_a0 + 0x44)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a0 + 0x44)" ( (binary_expression "(int)local_a0 + 0x44" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) | (binary_expression "bVar41 << 7" identifier << number_literal))) ;) (expression_statement "ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);" (assignment_expression "ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4)" identifier = (pointer_expression "*(undefined4 *******)((int)local_a0 + 0xb4)" * (cast_expression "(undefined4 *******)((int)local_a0 + 0xb4)" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)local_a0 + 0xb4)" ( (binary_expression "(int)local_a0 + 0xb4" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }" if (parenthesized_expression "(ppppppuVar27 != (undefined4 ******)0x0)" ( (binary_expression "ppppppuVar27 != (undefined4 ******)0x0" identifier != (cast_expression "(undefined4 ******)0x0" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }" { (labeled_statement "LAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);" statement_identifier : (do_statement "do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);" do (compound_statement "{\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            }" { (expression_statement "local_a8 = ppppppuVar27;" (assignment_expression "local_a8 = ppppppuVar27" identifier = identifier) ;) (expression_statement "puVar20 = *(undefined4 **)((int)local_a8 + 8);" (assignment_expression "puVar20 = *(undefined4 **)((int)local_a8 + 8)" identifier = (pointer_expression "*(undefined4 **)((int)local_a8 + 8)" * (cast_expression "(undefined4 **)((int)local_a8 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_a8 + 8)" ( (binary_expression "(int)local_a8 + 8" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }" if (parenthesized_expression "(*(int *)((int)local_a8 + 4) == 0)" ( (binary_expression "*(int *)((int)local_a8 + 4) == 0" (pointer_expression "*(int *)((int)local_a8 + 4)" * (cast_expression "(int *)((int)local_a8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + 4)" ( (binary_expression "(int)local_a8 + 4" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }" { (expression_statement "local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;" (assignment_expression "local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)" identifier = (cast_expression "(undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)" ( (binary_expression "puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2" identifier + (binary_expression "(uint)*(ushort *)((int)local_a0 + 0xc4) * 2" (binary_expression "(uint)*(ushort *)((int)local_a0 + 0xc4)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)((int)local_a0 + 0xc4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a0 + 0xc4)" ( (binary_expression "(int)local_a0 + 0xc4" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) * number_literal)) )))) ;) (if_statement "if (local_ac <= puVar20) break;" if (parenthesized_expression "(local_ac <= puVar20)" ( (binary_expression "local_ac <= puVar20" identifier <= identifier) )) (break_statement "break;" break ;)) }) (else_clause "else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }" else (compound_statement "{\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }" { (expression_statement "local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;" (assignment_expression "local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)" identifier = (cast_expression "(undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)" ( (binary_expression "puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2" identifier + (binary_expression "(uint)*(ushort *)((int)local_a0 + 0xc2) * 2" (binary_expression "(uint)*(ushort *)((int)local_a0 + 0xc2)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)((int)local_a0 + 0xc2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a0 + 0xc2)" ( (binary_expression "(int)local_a0 + 0xc2" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) * number_literal)) )))) ;) (expression_statement "ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);" (assignment_expression "ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4)" identifier = (cast_expression "(undefined4 ******)*(int *)((int)local_a8 + 4)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "*(int *)((int)local_a8 + 4)" * (cast_expression "(int *)((int)local_a8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + 4)" ( (binary_expression "(int)local_a8 + 4" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (if_statement "if (local_ac <= puVar20) goto LAB_00024dd0;" if (parenthesized_expression "(local_ac <= puVar20)" ( (binary_expression "local_ac <= puVar20" identifier <= identifier) )) (goto_statement "goto LAB_00024dd0;" goto statement_identifier ;)) }))) (do_statement "do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);" do (compound_statement "{\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              }" { (if_statement "if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }" if (parenthesized_expression "((uint)((int)pcVar1 - (int)pcVar24) < 4)" ( (binary_expression "(uint)((int)pcVar1 - (int)pcVar24) < 4" (call_expression "(uint)((int)pcVar1 - (int)pcVar24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pcVar1 - (int)pcVar24)" ( (binary_expression "(int)pcVar1 - (int)pcVar24" (cast_expression "(int)pcVar1" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < number_literal) )) (compound_statement "{\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }" { (expression_statement "pcVar24 = (char *)FUN_0001ff00(4);" (assignment_expression "pcVar24 = (char *)FUN_0001ff00(4)" identifier = (cast_expression "(char *)FUN_0001ff00(4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001ff00(4)" identifier (argument_list "(4)" ( number_literal ))))) ;) })) (switch_statement "switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }" switch (parenthesized_expression "(*puVar20)" ( (pointer_expression "*puVar20" * identifier) )) (compound_statement "{\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }" { (case_statement "case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;" case number_literal : (expression_statement "(**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);" (call_expression "(**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24)" (parenthesized_expression "(**(code **)(param_3 + 0x94))" ( (pointer_expression "**(code **)(param_3 + 0x94)" * (pointer_expression "*(code **)(param_3 + 0x94)" * (cast_expression "(code **)(param_3 + 0x94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x94)" ( (binary_expression "param_3 + 0x94" identifier + number_literal) ))))) )) (argument_list "(bVar41,puVar20 + 1,pcVar24)" ( identifier , (binary_expression "puVar20 + 1" identifier + number_literal) , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;" case number_literal : (expression_statement "(**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);" (call_expression "(**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24)" (parenthesized_expression "(**(code **)(param_3 + 0x98))" ( (pointer_expression "**(code **)(param_3 + 0x98)" * (pointer_expression "*(code **)(param_3 + 0x98)" * (cast_expression "(code **)(param_3 + 0x98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x98)" ( (binary_expression "param_3 + 0x98" identifier + number_literal) ))))) )) (argument_list "(bVar41,puVar20 + 1,pcVar24)" ( identifier , (binary_expression "puVar20 + 1" identifier + number_literal) , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:" case number_literal :) (case_statement "case 4:" case number_literal :) (case_statement "case 5:" case number_literal :) (case_statement "case 6:" case number_literal :) (case_statement "case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }" case number_literal : (expression_statement "iVar21 = puVar20[1];" (assignment_expression "iVar21 = puVar20[1]" identifier = (subscript_expression "puVar20[1]" identifier [ number_literal ])) ;) (if_statement "if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }" if (parenthesized_expression "(iVar26 == 0)" ( (binary_expression "iVar26 == 0" identifier == number_literal) )) (compound_statement "{\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }" { (expression_statement "func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);" (call_expression "func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24)" identifier (argument_list "(iVar21,iVar21 >> 0x1f,pcVar24)" ( identifier , (binary_expression "iVar21 >> 0x1f" identifier >> number_literal) , identifier ))) ;) }) (else_clause "else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }" else (compound_statement "{\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }" { (expression_statement "func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);" (call_expression "func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24)" identifier (argument_list "(iVar21,iVar21 >> 0x1f,pcVar24)" ( identifier , (binary_expression "iVar21 >> 0x1f" identifier >> number_literal) , identifier ))) ;) })))) })) (expression_statement "pcVar24 = pcVar24 + 4;" (assignment_expression "pcVar24 = pcVar24 + 4" identifier = (binary_expression "pcVar24 + 4" identifier + number_literal)) ;) (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) (expression_statement "puVar20 = puVar20 + 2;" (assignment_expression "puVar20 = puVar20 + 2" identifier = (binary_expression "puVar20 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar20 < local_ac)" ( (binary_expression "puVar20 < local_ac" identifier < identifier) )) ;) (expression_statement "ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);" (assignment_expression "ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4)" identifier = (cast_expression "(undefined4 ******)*(int *)((int)local_a8 + 4)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "*(int *)((int)local_a8 + 4)" * (cast_expression "(int *)((int)local_a8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + 4)" ( (binary_expression "(int)local_a8 + 4" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) }) while (parenthesized_expression "(*(int *)((int)local_a8 + 4) != 0)" ( (binary_expression "*(int *)((int)local_a8 + 4) != 0" (pointer_expression "*(int *)((int)local_a8 + 4)" * (cast_expression "(int *)((int)local_a8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + 4)" ( (binary_expression "(int)local_a8 + 4" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) ;)) (expression_statement "ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));" (assignment_expression "ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34))" identifier = (cast_expression "(undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34))" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(iVar15 - *(int *)((int)local_a0 + 0x34))" ( (binary_expression "iVar15 - *(int *)((int)local_a0 + 0x34)" identifier - (pointer_expression "*(int *)((int)local_a0 + 0x34)" * (cast_expression "(int *)((int)local_a0 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a0 + 0x34)" ( (binary_expression "(int)local_a0 + 0x34" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )))) ;) })) (expression_statement "*(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;" (assignment_expression "*(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27" (pointer_expression "*(undefined4 *******)((int)local_a0 + 0x38)" * (cast_expression "(undefined4 *******)((int)local_a0 + 0x38)" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)local_a0 + 0x38)" ( (binary_expression "(int)local_a0 + 0x38" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_a0 = (undefined4 ******)((int)local_a0 + 0x294);" (assignment_expression "local_a0 = (undefined4 ******)((int)local_a0 + 0x294)" identifier = (cast_expression "(undefined4 ******)((int)local_a0 + 0x294)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)local_a0 + 0x294)" ( (binary_expression "(int)local_a0 + 0x294" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(local_a0 < local_9c)" ( (binary_expression "local_a0 < local_9c" identifier < identifier) )) ;) (expression_statement "pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);" (assignment_expression "pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4)" identifier = (cast_expression "(undefined4 *******)*(int *)((int)local_94 + 4)" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*(int *)((int)local_94 + 4)" * (cast_expression "(int *)((int)local_94 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + 4)" ( (binary_expression "(int)local_94 + 4" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) }) while (parenthesized_expression "(*(int *)((int)local_94 + 4) != 0)" ( (binary_expression "*(int *)((int)local_94 + 4) != 0" (pointer_expression "*(int *)((int)local_94 + 4)" * (cast_expression "(int *)((int)local_94 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + 4)" ( (binary_expression "(int)local_94 + 4" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) ;)) (expression_statement "local_68 = local_68 + iVar15 * 4;" (assignment_expression "local_68 = local_68 + iVar15 * 4" identifier = (binary_expression "local_68 + iVar15 * 4" identifier + (binary_expression "iVar15 * 4" identifier * number_literal))) ;) })) (goto_statement "goto LAB_00024eaa;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002554e;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Type propagation algorithm not settling */\n\nulong ecoff_build_debug(HDRR *hdr,char **bufp,ecoff_debug_swap *backend)\n\n{\n  bfd_vma *pbVar1;\n  PDR *pPVar2;\n  ushort uVar3;\n  small_free_t sVar4;\n  fragS *pfVar5;\n  _func_void_bfd_ptr_SYMR_ptr_void_ptr *p_Var6;\n  localsym *plVar7;\n  symbolS *psVar8;\n  localsym *plVar9;\n  AUXU AVar10;\n  ecoff_proc *peVar11;\n  undefined4 uVar12;\n  _func_void_bfd_ptr_PDR_ptr_void_ptr *p_Var13;\n  bfd_endian bVar14;\n  _func_void_bfd_ptr_FDR_ptr_void_ptr *p_Var15;\n  ulonglong uVar16;\n  bfd_vma bVar17;\n  lineno_list_t *plVar18;\n  small_free_t sVar19;\n  byte bVar20;\n  tag_t *ptag;\n  scope_t *psVar21;\n  char *pcVar22;\n  segT paVar23;\n  uint uVar24;\n  long lVar25;\n  char *pcVar26;\n  segT paVar27;\n  segT paVar28;\n  int iVar29;\n  asymbol *paVar30;\n  elf_obj_sy *peVar31;\n  forward *pfVar32;\n  tag *ptVar33;\n  symint_t sVar34;\n  vlinks_t *pvVar35;\n  proc_t *ppVar36;\n  ulong uVar37;\n  tir_ext *bufptr_00;\n  symbolS *psVar38;\n  char cVar39;\n  lineno_list *plVar40;\n  lineno_list *plVar41;\n  byte bVar42;\n  efdr_t *peVar43;\n  uint uVar44;\n  localsym_t *plVar45;\n  int iVar46;\n  efdr *peVar47;\n  ulong uVar48;\n  uint uVar49;\n  page *ppVar50;\n  byte *pbVar51;\n  byte *pbVar52;\n  aux_t *paVar53;\n  uint uVar54;\n  page *ppVar55;\n  char cVar56;\n  uint uVar57;\n  byte *pbVar58;\n  int iVar59;\n  page *ppVar60;\n  bool bVar61;\n  bool bVar62;\n  bool bVar63;\n  byte bVar64;\n  valueT vVar65;\n  valueT vVar66;\n  lineno_list_t *local_b4;\n  int local_b0;\n  aux_t *local_ac;\n  proc_t *local_a8;\n  page *local_a4;\n  page *local_a0;\n  page *local_9c;\n  proc_t *local_98;\n  lineno_list_t *local_94;\n  int local_8c;\n  vlinks_t *local_88;\n  page *local_7c;\n  char **local_78;\n  char **local_74;\n  localsym *local_70;\n  uint local_68;\n  tag *local_64;\n  vlinks_t *local_5c;\n  page *local_54;\n  char *buf;\n  char *bufend;\n  char *bufptr;\n  lineno_list_t first;\n  \n  bVar64 = 0;\n  uVar54 = (uint)backend->external_pdr_size;\n  iVar29 = *(int *)((int)&backend->external_pdr_size + 4);\n  if (first_file == (efdr_t *)0x0) {\n    add_file((char *)0x0,1,0);\n  }\n  sVar19 = (small_free_t)top_tag_head->first_tag;\n  ppVar36 = cur_proc_ptr;\n  while (cur_proc_ptr = ppVar36, (tag *)sVar19.f_scope != (tag *)0x0) {\n    ptag = (tag_t *)(sVar19.f_tag)->hash_ptr;\n    if ((sVar19.f_tag)->forward_ref != (forward *)0x0) {\n      add_unknown_tag(ptag,(tag_t *)&(sVar19.f_tag)->forward_ref);\n      ptag = (tag_t *)(sVar19.f_tag)->hash_ptr;\n    }\n    sVar4 = (small_free_t)(sVar19.f_scope)->type;\n    alloc_counts[5].total_free = alloc_counts[5].total_free + 1;\n    ptag->basic_type = (bt_t)(sVar19.f_scope)->lsym;\n    (sVar19.f_scope)->prev = (scope *)alloc_counts[5].free_list;\n    alloc_counts[5].free_list = sVar19;\n    sVar19 = sVar4;\n    ppVar36 = cur_proc_ptr;\n  }\n  alloc_counts[7].total_free = alloc_counts[7].total_free + 1;\n  sVar19 = top_tag_head;\n  ((scope_t *)top_tag_head)->free = (scope *)alloc_counts[7].free_list;\n  alloc_counts[7].free_list = sVar19;\n  peVar43 = cur_file_ptr;\n  cur_proc_ptr = (proc_t *)0x0;\n  for (psVar38 = symbol_rootP; psVar38 != (symbolS *)0x0; psVar38 = symbol_next(psVar38)) {\n    peVar31 = symbol_get_obj(psVar38);\n    if (((peVar31->ecoff_symbol == (localsym *)0x0) &&\n        (peVar31 = symbol_get_obj(psVar38), peVar31->ecoff_file != (efdr *)0x0)) &&\n       (paVar30 = symbol_get_bfdsym(psVar38), (paVar30->flags & 0x100) == 0)) {\n      peVar31 = symbol_get_obj(psVar38);\n      cur_file_ptr = peVar31->ecoff_file;\n      vVar65 = S_GET_VALUE(psVar38);\n      add_ecoff_symbol((char *)0x0,st_Nil,sc_Nil,psVar38,0,(symint_t)vVar65,0xfffff);\n    }\n  }\n  bVar62 = false;\n  cur_proc_ptr = ppVar36;\n  cur_file_ptr = peVar43;\n  peVar47 = first_file;\njoined_r0x000235e4:\n  if (peVar47 != (efdr_t *)0x0) {\n    psVar21 = peVar47->cur_scope;\n    peVar43 = peVar47;\n    cur_file_ptr = peVar47;\n    while (psVar21 != (scope_t *)0x0) {\n      while( true ) {\n        psVar21 = psVar21->prev;\n        if (psVar21 == (scope *)0x0) {\n          add_ecoff_symbol((char *)0x0,st_End,sc_Text,(symbolS *)0x0,0,0,0);\n          peVar47 = peVar47->next_file;\n          goto joined_r0x000235e4;\n        }\n        peVar43->cur_scope = psVar21;\n        if ((bVar62) || (peVar43->fake != 0)) break;\n        bVar62 = true;\n        pcVar22 = (char *)dcgettext(0,"missing .end or .bend at end of file",5);\n        as_warn(pcVar22);\n        psVar21 = cur_file_ptr->cur_scope;\n        peVar43 = cur_file_ptr;\n        if (psVar21 == (scope_t *)0x0) goto LAB_00023650;\n      }\n    }\nLAB_00023650:\n    peVar47 = peVar47->next_file;\n    goto joined_r0x000235e4;\n  }\n  buf = (char *)xmalloc(0x2000);\n  plVar40 = first_lineno;\n  local_b4 = first_lineno;\n  bufend = buf + 0x2000;\n  bVar62 = debug_type == DEBUG_ECOFF;\n  *(undefined4 *)&hdr->cbLineOffset = 0;\n  *(undefined4 *)((int)&hdr->cbLineOffset + 4) = 0;\n  hdr->ilineMax = 0;\n  bufptr = buf;\n  if ((bVar62) || (first_proc_ptr == (proc_t *)0x0)) {\n    if (plVar40 != (lineno_list_t *)0x0) {\n      plVar40 = plVar40->next;\n      goto LAB_00023764;\n    }\n  }\n  else if (plVar40 != (lineno_list_t *)0x0) {\n    vVar65 = S_GET_VALUE(first_proc_ptr->sym->as_sym);\n    paVar23 = S_GET_SEGMENT(first_proc_ptr->sym->as_sym);\n    if ((int)(vVar65 >> 0x20) + *(int *)((int)&paVar23->vma + 4) +\n        (uint)CARRY4((uint)vVar65,(uint)paVar23->vma) == 0 && (uint)vVar65 + (int)paVar23->vma == 0)\n    {\n      plVar40 = plVar40->next;\n    }\n    else {\n      first.file = plVar40->file;\n      first.paddr = 0;\n      first.proc = plVar40->proc;\n      first.lineno = 0;\n      first.frag = &zero_address_frag;\n      first.next = local_b4;\n      local_b4 = &first;\n    }\nLAB_00023764:\n    local_9c = (page *)0x0;\n    local_ac = (aux_t *)0x0;\n    local_94 = (lineno_list_t *)0x0;\n    local_a0 = (page *)0x0;\n    local_98 = (proc_t *)0x0;\nLAB_000237a6:\n    plVar41 = plVar40;\n    if (plVar41 == (lineno_list *)0x0) {\n      uVar24 = 1;\nLAB_000237e1:\n      peVar43 = local_b4->file;\n      local_a8 = local_b4->proc;\n      local_a4 = (page *)((int)local_9c + uVar24);\n      if ((page *)peVar43 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (proc_t *)0x0) {\n            (local_98->pdr).lnHigh = local_94->lineno;\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (lineno_list_t *)0x0) &&\n           (iVar46 = local_b4->lineno - local_94->lineno, iVar46 != 0)) {\n          do {\n            iVar59 = uVar24 - 1;\n            if (iVar59 < 0x10) {\n              uVar24 = 0;\n            }\n            else {\n              uVar24 = uVar24 - 0x10;\n              iVar59 = 0xf;\n            }\n            if (iVar46 + 7U < 0xf) {\n              if (bufend <= bufptr) {\n                bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,1);\n              }\n              local_ac = (aux_t *)((int)local_ac + 1);\n              *bufptr = (char)iVar46 * '\x10' + (char)iVar59;\n              bufptr = bufptr + 1;\n              break;\n            }\n            if ((int)bufend - (int)bufptr < 3) {\n              bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,3);\n            }\n            *bufptr = (char)iVar59 + -0x80;\n            if (iVar46 < -0x8000) {\n              iVar46 = iVar46 + 0x8000;\n              cVar56 = -0x80;\n              cVar39 = '\0';\n            }\n            else {\n              if (iVar46 < 0x8000) goto code_r0x00024a60;\n              iVar46 = iVar46 + -0x7fff;\n              cVar56 = '\x7f';\n              cVar39 = -1;\n            }\n            local_ac = (aux_t *)((int)local_ac + 3);\n            pcVar22 = bufptr + 2;\n            bufptr[1] = cVar56;\n            bufptr = bufptr + 3;\n            *pcVar22 = cVar39;\n          } while( true );\n        }\n      }\n      else {\n        bVar62 = local_98 != local_a8;\n        if (local_98 != (proc_t *)0x0 && bVar62) {\n          (local_98->pdr).lnHigh = local_94->lineno;\n          bVar62 = local_98 != (proc_t *)0x0 && bVar62;\n        }\n        lVar25 = 0;\n        if (local_a0 != (page *)0x0) {\n          local_9c = (page *)0x0;\n          pbVar1 = &((FDR *)local_a0)->cbLineOffset;\n          bVar17 = *pbVar1;\n          *(uint *)((int)&((FDR *)local_a0)->cbLine + 4) =\n               -(uint)(local_ac < (uint)*pbVar1) -\n               *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);\n          *(int *)&((FDR *)local_a0)->cbLine = (int)local_ac - (int)bVar17;\n          ((FDR *)local_a0)->cline = (long)local_a4;\n          hdr->ilineMax = hdr->ilineMax + (int)local_a4->byte;\n          lVar25 = ((FDR *)local_a0)->cline + ((FDR *)local_a0)->ilineBase;\n          local_a4 = (page *)uVar24;\n        }\n        (peVar43->fdr).ilineBase = lVar25;\n        *(aux_t **)&(peVar43->fdr).cbLineOffset = local_ac;\n        *(undefined4 *)((int)&(peVar43->fdr).cbLineOffset + 4) = 0;\n        local_a0 = (page *)peVar43;\n        if (bVar62) {\nLAB_000238a1:\n          if (local_a8 != (proc_t *)0x0) {\n            (local_a8->pdr).lnLow = local_b4->lineno;\n            pbVar1 = &((FDR *)local_a0)->cbLineOffset;\n            bVar17 = *pbVar1;\n            iVar46 = *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);\n            *(int *)&(local_a8->pdr).cbLineOffset = (int)local_ac - (int)*pbVar1;\n            *(uint *)((int)&(local_a8->pdr).cbLineOffset + 4) =\n                 -(uint)(local_ac < (uint)bVar17) - iVar46;\n            (local_a8->pdr).iline = (long)local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }\n      goto LAB_000238d0;\n    }\n    pfVar5 = plVar41->frag;\n    uVar49 = plVar41->paddr + (int)pfVar5->fr_address;\n    uVar57 = *(int *)((int)&pfVar5->fr_address + 4) +\n             (uint)CARRY4(plVar41->paddr,(uint)pfVar5->fr_address);\n    pfVar5 = local_b4->frag;\n    uVar24 = local_b4->paddr + (int)pfVar5->fr_address;\n    uVar44 = *(int *)((int)&pfVar5->fr_address + 4) +\n             (uint)CARRY4(local_b4->paddr,(uint)pfVar5->fr_address);\n    if (uVar44 < uVar57 || uVar44 - uVar57 < (uint)(uVar24 < uVar49)) {\n      uVar24 = uVar49 - uVar24 >> 2 | ((uVar57 - uVar44) - (uint)(uVar49 < uVar24)) * 0x40000000;\n      goto LAB_000237e1;\n    }\n    goto LAB_000237a0;\n  }\n  local_a4 = (page *)0x0;\n  local_ac = (aux_t *)0x0;\nLAB_00023a3f:\n  local_74 = &bufend;\n  local_78 = &buf;\n  hdr->ilineMax = hdr->ilineMax + (int)local_a4;\n  local_68 = ecoff_padding_adjust(backend,local_78,local_74,(ulong)local_ac,&bufptr);\n  iVar46 = *(int *)((int)&hdr->cbLineOffset + 4);\n  *(uint *)&hdr->cbPdOffset = local_68;\n  *(uint *)&hdr->cbLine = local_68 - (int)hdr->cbLineOffset;\n  uVar48 = proc_cnt;\n  *(uint *)((int)&hdr->cbLine + 4) = -(uint)(local_68 < (uint)hdr->cbLineOffset) - iVar46;\n  *(undefined4 *)((int)&hdr->cbPdOffset + 4) = 0;\n  hdr->idnMax = 0;\n  *(undefined4 *)&hdr->cbDnOffset = 0;\n  *(undefined4 *)((int)&hdr->cbDnOffset + 4) = 0;\n  hdr->ipdMax = uVar48;\n  uVar44 = (int)bufend - (int)(buf + local_68);\n  uVar24 = (int)uVar44 >> 0x1f;\n  uVar49 = (int)((ulonglong)uVar54 * (ulonglong)uVar48 >> 0x20) + iVar29 * uVar48;\n  if (uVar24 < uVar49 ||\n      uVar24 - uVar49 < (uint)(uVar44 < (uint)((ulonglong)uVar54 * (ulonglong)uVar48))) {\n    ecoff_add_bytes(local_78,local_74,buf + local_68,uVar48 * uVar54);\n    uVar48 = proc_cnt;\n  }\n  local_68 = uVar48 * uVar54 + local_68;\n  uVar54 = (uint)backend->external_sym_size;\n  local_a0 = (page *)(buf + local_68);\n  *(uint *)&hdr->cbSymOffset = local_68;\n  uVar24 = *(uint *)((int)&backend->external_sym_size + 4);\n  *(undefined4 *)((int)&hdr->cbSymOffset + 4) = 0;\n  p_Var6 = backend->swap_sym_out;\n  if (file_desc.first != (vlinks_t *)0x0) {\n    local_8c = 0;\n    paVar23 = (segT)(PTR__bfd_std_section_00077fa0 + 0x180);\n    pvVar35 = file_desc.first;\nLAB_00023b80:\n    local_5c = pvVar35;\n    local_9c = local_5c->datum;\n    if (local_5c->next == (vlinks *)0x0) {\n      local_54 = (page *)(local_9c->file + file_desc.objects_last_page);\n      if (local_54 <= local_9c) {\n        local_68 = local_68 + local_8c * uVar54;\n        lVar25 = __udivdi3(local_68 - (int)hdr->cbSymOffset,\n                           -(uint)(local_68 < (uint)hdr->cbSymOffset) -\n                           *(int *)((int)&hdr->cbSymOffset + 4),(int)backend->external_sym_size,\n                           *(undefined4 *)((int)&backend->external_sym_size + 4));\n        goto LAB_0002441d;\n      }\n    }\n    else {\n      local_54 = (page *)(local_9c->file + file_desc.objects_per_page);\n      pvVar35 = local_5c->next;\n      if (local_54 <= local_9c) goto LAB_00023b80;\n    }\nLAB_00023bb7:\n    local_9c->ofile[0].isymBase = local_8c;\n    ptVar33 = local_9c->tag[4].same_block;\n    if (ptVar33 != (tag *)0x0) {\n      local_a8 = (proc_t *)local_8c;\nLAB_00023bdc:\n      local_64 = ptVar33;\n      plVar7 = (localsym *)local_64->same_name;\n      if ((tag *)local_64->hash_ptr == (tag *)0x0) {\n        local_70 = plVar7 + *(ushort *)(local_9c->byte + 0x9c);\n        if (local_70 <= plVar7) {\n          local_8c = (int)local_a8;\n          ptVar33 = (tag *)((int)local_a8 - local_9c->ofile[0].isymBase);\n          goto LAB_000243a4;\n        }\n      }\n      else {\n        local_70 = plVar7 + *(ushort *)(local_9c->byte + 0x9a);\n        ptVar33 = (tag *)local_64->hash_ptr;\n        if (local_70 <= plVar7) goto LAB_00023bdc;\n      }\n      ppVar50 = (page *)plVar7->file_ptr;\n      do {\n        if (ppVar50 != local_9c) {\n                    /* WARNING: Subroutine does not return */\n          as_abort("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }\n        psVar38 = plVar7->as_sym;\n        if (psVar38 == (symbolS *)0x0) {\n          plVar9 = plVar7->begin_ptr;\n          if (plVar9 == (localsym *)0x0) {\n            pfVar32 = plVar7->forward_ref;\njoined_r0x000242a4:\n            if (pfVar32 != (forward *)0x0) {\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              goto LAB_00023ff8;\n            }\n          }\n          else {\nLAB_00023e89:\n            iVar29 = plVar9->sym_index;\n            if (iVar29 == -1) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n            }\n            uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff | iVar29 << 0xc;\n            *(uint *)&(plVar7->ecoff_sym).asym.field_0xc = uVar44;\n            if (((ushort)uVar44 & 0x7c0) != 0x2c0) {\n              (plVar7->ecoff_sym).asym.iss = (plVar9->ecoff_sym).asym.iss;\n            }\n            bVar20 = (plVar9->ecoff_sym).asym.field_0xc;\n            if (((bVar20 & 0x3f) + 0x39 & 0x3b) == 0) {\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              *(uint *)&(plVar9->ecoff_sym).asym.field_0xc =\n                   *(uint *)&(plVar9->ecoff_sym).asym.field_0xc & 0xfff |\n                   ((int)local_a4->byte + 1) * 0x1000;\n              (*p_Var6)(stdoutput,&(plVar9->ecoff_sym).asym,buf + iVar29 * uVar54 + local_68);\n              if ((bVar20 & 0x37) == 6) goto LAB_00024180;\n              if (((bVar20 & 0x3f) == 7) &&\n                 ((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7c0) != 0x2c0)) {\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                }\n                if (plVar7->proc_ptr == (ecoff_proc *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                }\n                psVar8 = plVar7->proc_ptr->sym->as_sym;\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(psVar8);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(psVar8);\n                local_b4 = (lineno_list_t *)vVar65;\n                local_b0 = (int)(vVar65 >> 0x20);\n                pfVar32 = plVar7->forward_ref;\n                *(uint *)&(plVar7->ecoff_sym).asym.value = (int)local_b4 - (uint)vVar66;\n                *(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                     (local_b0 - (int)(vVar66 >> 0x20)) - (uint)(local_b4 < (uint)vVar66);\n              }\n              else {\n                pfVar32 = plVar7->forward_ref;\n              }\n            }\n            else {\n              if (plVar9->index_ptr == (ecoff_aux *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n              }\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              (plVar9->index_ptr->data).dnLow = (int)local_a4->byte + 1;\n              if ((bVar20 & 0x37) == 6) {\nLAB_00024180:\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n                }\n                if (plVar9->as_sym == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n                }\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(plVar9->as_sym);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(plVar9->as_sym);\n                uVar16 = vVar65 - vVar66;\n                if ((uVar16 & 1) == 0) {\n                  (plVar7->ecoff_sym).asym.value = uVar16;\n                }\n                else {\n                  (plVar7->ecoff_sym).asym.value = uVar16 + 1;\n                }\n                paVar30 = symbol_get_bfdsym(plVar9->as_sym);\n                uVar12 = *(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4);\n                *(int *)&paVar30[1].value = (int)(plVar7->ecoff_sym).asym.value;\n                *(undefined4 *)((int)&paVar30[1].value + 4) = uVar12;\n                pfVar32 = plVar7->forward_ref;\n                goto joined_r0x000242a4;\n              }\n              pfVar32 = plVar7->forward_ref;\n            }\njoined_r0x000247a5:\n            if (pfVar32 != (forward *)0x0) {\nLAB_00023ff8:\n              AVar10 = (AUXU)local_9c->file[0].file_index;\n              do {\n                paVar53 = pfVar32->index_ptr;\n                pfVar32->ifd_ptr->data = AVar10;\n                (paVar53->data).dnLow = (paVar53->data).dnLow & 0xfffU | (int)local_a4 << 0xc;\n                pfVar32 = pfVar32->next;\n              } while (pfVar32 != (forward *)0x0);\n            }\n          }\nLAB_0002402d:\n          uVar44 = (int)bufend - (int)local_a0->byte >> 0x1f;\n          if (uVar44 < uVar24 ||\n              uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)local_a0->byte) < uVar54)) {\n            local_a0 = (page *)ecoff_add_bytes(local_78,local_74,local_a0->byte,uVar54);\n          }\n          (*p_Var6)(stdoutput,&(plVar7->ecoff_sym).asym,local_a0);\n          local_a0 = (page *)((int)local_a0 + uVar54);\n          plVar7->sym_index = (long)local_a8;\n          peVar11 = plVar7->proc_ptr;\n          if ((peVar11 != (ecoff_proc *)0x0) && (peVar11->sym == plVar7)) {\n            (peVar11->pdr).isym = (int)local_a8 - local_8c;\n          }\n          local_a8 = (proc_t *)((int)local_a8 + 1);\n          if ((psVar38 != (symbolS *)0x0) &&\n             (peVar31 = symbol_get_obj(psVar38), peVar31->ecoff_symbol == plVar7)) {\n            if (((plVar7->ecoff_sym).asym.field_0xc & 0x37) == 6) {\n              *(uint *)&(plVar7->ecoff_sym).asym.field_0xc =\n                   *(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff |\n                   (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          if ((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff) == 0x47) {\n            if (plVar7->proc_ptr == (ecoff_proc *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n            }\n            psVar8 = plVar7->proc_ptr->sym->as_sym;\n            paVar27 = S_GET_SEGMENT(psVar38);\n            paVar28 = S_GET_SEGMENT(psVar8);\n            if (paVar27 != paVar28) {\n              pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n              as_warn(pcVar22);\n            }\n            vVar65 = S_GET_VALUE(psVar38);\n            vVar66 = S_GET_VALUE(psVar8);\n            (plVar7->ecoff_sym).asym.value = vVar65 - vVar66;\n          }\n          else {\n            vVar65 = S_GET_VALUE(psVar38);\n            paVar27 = S_GET_SEGMENT(psVar38);\n            ptVar33 = *(tag **)&plVar7->addend;\n            uVar44 = (int)&(*(tag **)&plVar7->addend)->free + (uint)vVar65;\n            bVar17 = paVar27->vma;\n            iVar29 = *(int *)((int)&paVar27->vma + 4);\n            *(uint *)&(plVar7->ecoff_sym).asym.value = uVar44 + (int)paVar27->vma;\n            *(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                 (int)&(*(tag **)((int)&plVar7->addend + 4))->free +\n                 (uint)CARRY4(uVar44,(uint)bVar17) +\n                 iVar29 + (uint)CARRY4((uint)vVar65,(uint)ptVar33) + (int)(vVar65 >> 0x20);\n          }\n          iVar29 = S_IS_WEAK(psVar38);\n          *(byte *)&plVar7->ecoff_sym =\n               *(byte *)&plVar7->ecoff_sym & 0xfb | ((byte)iVar29 & 1) * '\x04';\n          if ((((((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 6) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) &&\n              (iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0)) &&\n             (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) {\n            (plVar7->ecoff_sym).asym.field_0xc = (plVar7->ecoff_sym).asym.field_0xc & 0xc0 | 0xe;\n          }\n          if (((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff) == 0) &&\n             ((uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc,\n              (uVar44 & 0xfff00) != 0x8f300 || ((uVar44 & 0xfffdf) != 0x8f3c0)))) {\n            paVar27 = S_GET_SEGMENT(psVar38);\n            pbVar52 = (byte *)paVar27->name;\n            if (((*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300) ||\n               (((iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0 &&\n                 (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n                (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)))) {\n              bVar20 = (paVar27 == text_section) * '\x03' + 2;\n            }\n            else {\n              paVar30 = symbol_get_bfdsym(psVar38);\n              bVar20 = (-((paVar30->flags & 8) == 0) & 0xfbU) + 6;\n            }\n            iVar29 = S_IS_DEFINED(psVar38);\n            if (iVar29 == 0) {\n              peVar31 = symbol_get_obj(psVar38);\n              iVar29 = *(int *)((int)&peVar31->ecoff_extern_size + 4);\n              uVar49 = (uint)peVar31->ecoff_extern_size;\n              if ((iVar29 == 0 && uVar49 == 0) ||\n                 (uVar44 = bfd_get_gp_size(stdoutput),\n                 iVar29 != 0 || (uint)-iVar29 < (uint)(uVar44 < uVar49))) {\n                bVar42 = 6;\n              }\n              else {\n                *(uint *)&(plVar7->ecoff_sym).asym.value = uVar49;\n                bVar42 = 0x15;\n                *(int *)((int)&(plVar7->ecoff_sym).asym.value + 4) = iVar29;\n              }\n              paVar30 = symbol_get_bfdsym(psVar38);\n              uVar44 = (uint)bVar42;\n              *(uint *)&paVar30[1].value = uVar49;\n              *(int *)((int)&paVar30[1].value + 4) = iVar29;\n            }\n            else {\n              iVar29 = S_IS_COMMON(psVar38);\n              if (iVar29 == 0) {\n                uVar44 = 1;\n                if (paVar27 != text_section) {\n                  uVar44 = 2;\n                  bVar62 = paVar27 < data_section;\n                  bVar63 = paVar27 == data_section;\n                  if (!bVar63) {\n                    iVar29 = 7;\n                    uVar44 = 0xf;\n                    pbVar51 = pbVar52;\n                    pbVar58 = (byte *)".rdata";\n                    do {\n                      if (iVar29 == 0) break;\n                      iVar29 = iVar29 + -1;\n                      bVar62 = *pbVar51 < *pbVar58;\n                      bVar63 = *pbVar51 == *pbVar58;\n                      pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                      pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                    } while (bVar63);\n                    bVar61 = false;\n                    bVar62 = (!bVar62 && !bVar63) == bVar62;\n                    if (!bVar62) {\n                      iVar29 = 8;\n                      pbVar51 = pbVar52;\n                      pbVar58 = (byte *)".rodata";\n                      do {\n                        if (iVar29 == 0) break;\n                        iVar29 = iVar29 + -1;\n                        bVar61 = *pbVar51 < *pbVar58;\n                        bVar62 = *pbVar51 == *pbVar58;\n                        pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                        pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                      } while (bVar62);\n                      bVar63 = false;\n                      bVar62 = (!bVar61 && !bVar62) == bVar61;\n                      if (!bVar62) {\n                        iVar29 = 7;\n                        uVar44 = 0xd;\n                        pbVar51 = pbVar52;\n                        pbVar58 = (byte *)".sdata";\n                        do {\n                          if (iVar29 == 0) break;\n                          iVar29 = iVar29 + -1;\n                          bVar63 = *pbVar51 < *pbVar58;\n                          bVar62 = *pbVar51 == *pbVar58;\n                          pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                          pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                        } while (bVar62);\n                        if ((!bVar63 && !bVar62) != bVar63) {\n                          uVar44 = 3;\n                          bVar62 = paVar27 < bss_section;\n                          bVar63 = paVar27 == bss_section;\n                          if (!bVar63) {\n                            iVar29 = 6;\n                            uVar44 = 0xe;\n                            pbVar51 = (byte *)".sbss";\n                            do {\n                              if (iVar29 == 0) break;\n                              iVar29 = iVar29 + -1;\n                              bVar62 = *pbVar52 < *pbVar51;\n                              bVar63 = *pbVar52 == *pbVar51;\n                              pbVar52 = pbVar52 + (uint)bVar64 * -2 + 1;\n                              pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                            } while (bVar63);\n                            if ((!bVar62 && !bVar63) != bVar62) {\n                              uVar44 = (uint)(paVar27 == paVar23) * 3 + 2;\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                vVar65 = S_GET_VALUE(psVar38);\n                if (vVar65 != 0) {\n                  vVar65 = S_GET_VALUE(psVar38);\n                  iVar29 = (int)(vVar65 >> 0x20);\n                  uVar49 = bfd_get_gp_size(stdoutput);\n                  uVar44 = 0x12;\n                  if (iVar29 == 0 && (uint)(uVar49 < (uint)vVar65) <= (uint)-iVar29)\n                  goto LAB_00023df1;\n                }\n                uVar44 = 0x11;\n              }\n            }\nLAB_00023df1:\n            (plVar7->ecoff_sym).asym.field_0xc =\n                 (plVar7->ecoff_sym).asym.field_0xc & 0xc0 | bVar20 & 0x3f;\n            *(ushort *)&(plVar7->ecoff_sym).asym.field_0xc =\n                 *(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0xf83f | (ushort)(uVar44 << 6);\n          }\n          iVar29 = S_IS_EXTERNAL(psVar38);\n          if (((((iVar29 == 0) && (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) ||\n              ((plVar7->proc_ptr != (ecoff_proc *)0x0 ||\n               (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 0)))) ||\n             ((*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300)) {\n            iVar29 = S_IS_COMMON(psVar38);\n            if (iVar29 == 0) {\n              if (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) != 8) {\n                ptVar33 = (tag *)plVar7->name;\n                pcVar22 = strchr((char *)ptVar33,1);\n                if (pcVar22 != (char *)0x0) goto LAB_00023e7a;\n                sVar34 = add_string(&local_9c->file[0].strings,local_9c->file[0].str_hash,\n                                    (char *)ptVar33,(shash_t **)0x0);\n                (plVar7->ecoff_sym).asym.iss = sVar34;\n                plVar9 = plVar7->begin_ptr;\n                if (plVar9 != (localsym *)0x0) goto LAB_00023e89;\n                pfVar32 = plVar7->forward_ref;\n                local_a4 = (page *)((int)local_a8 - local_8c);\n                goto joined_r0x000247a5;\n              }\nLAB_00023e7a:\n              plVar9 = plVar7->begin_ptr;\n              if (plVar9 != (localsym *)0x0) goto LAB_00023e89;\n              pfVar32 = plVar7->forward_ref;\n              if (pfVar32 != (forward *)0x0) {\n                local_a4 = (page *)((int)local_a8 - local_8c);\n                goto LAB_00023ff8;\n              }\n              goto LAB_0002402d;\n            }\n          }\n          else {\n            S_IS_COMMON(psVar38);\n          }\n          if (plVar7->begin_ptr != (localsym *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (plVar7->forward_ref != (forward *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          peVar31 = symbol_get_obj(psVar38);\n          if (plVar7 == peVar31->ecoff_symbol) {\nLAB_00024347:\n            (plVar7->ecoff_sym).ifd = local_9c->file[0].file_index;\n            iVar29 = S_IS_EXTERNAL(psVar38);\n            if ((iVar29 != 0) || (iVar29 = S_IS_WEAK(psVar38), iVar29 != 0)) {\n              local_9c->ubyte[0x44] = local_9c->ubyte[0x44] & 0xdf;\n            }\n          }\n        }\n        if (local_70 <= plVar7 + 1) goto LAB_00024380;\n        ppVar50 = (page *)plVar7[1].file_ptr;\n        plVar7 = plVar7 + 1;\n      } while( true );\n    }\n    goto LAB_000243a4;\n  }\n  hdr->isymMax = 0;\nLAB_0002554e:\n  hdr->ioptMax = 0;\n  *(undefined4 *)&hdr->cbOptOffset = 0;\n  *(undefined4 *)((int)&hdr->cbOptOffset + 4) = 0;\n  *(undefined4 *)((int)&hdr->cbAuxOffset + 4) = 0;\n  *(uint *)&hdr->cbAuxOffset = local_68;\nLAB_00024eaa:\n  uVar37 = ecoff_padding_adjust(backend,local_78,local_74,local_68,(char **)0x0);\n  hdr->iauxMax = uVar37 - (int)hdr->cbAuxOffset >> 2 |\n                 (-(uint)(uVar37 < (uint)hdr->cbAuxOffset) - *(int *)((int)&hdr->cbAuxOffset + 4)) *\n                 0x40000000;\n  *(ulong *)&hdr->cbSsOffset = uVar37;\n  pvVar35 = file_desc.first;\n  local_9c = (page *)file_desc.first;\n  *(undefined4 *)((int)&hdr->cbSsOffset + 4) = 0;\n  uVar48 = uVar37;\n  if (pvVar35 != (vlinks_t *)0x0) {\n    local_a8 = (proc_t *)0x0;\n    do {\n      uVar3 = file_desc.objects_last_page;\n      if (*(vlinks **)((int)local_9c + 4) != (vlinks *)0x0) {\n        uVar3 = file_desc.objects_per_page;\n      }\n      ppVar50 = *(page **)((int)local_9c + 8);\n      ppVar55 = (page *)(ppVar50->file + uVar3);\n      ppVar60 = (page *)*(vlinks **)((int)local_9c + 4);\n      if (ppVar50 < ppVar55) {\n        do {\n          ppVar50->shash[0].sym_ptr = (localsym_t *)local_a8;\n          pvVar35 = ppVar50->file[0].strings.first;\n          pcVar22 = buf + uVar48;\n          if (pvVar35 == (vlinks_t *)0x0) {\n            peVar47 = (efdr *)0x0;\n            lVar25 = 0;\n          }\n          else {\n            peVar47 = (efdr *)0x0;\n            do {\n              if (pvVar35->next == (vlinks *)0x0) {\n                uVar3 = ppVar50->ofile[1].ipdFirst;\n              }\n              else {\n                uVar3 = *(ushort *)(ppVar50->byte + 0x86);\n              }\n              uVar54 = (uint)uVar3;\n              if ((uint)((int)bufend - (int)pcVar22) < uVar54) {\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }\n              peVar47 = (efdr *)((int)&(peVar47->fdr).adr + uVar54);\n              memcpy(pcVar22,pvVar35->datum,uVar54);\n              pvVar35 = pvVar35->next;\n              pcVar22 = pcVar22 + uVar54;\n            } while (pvVar35 != (vlinks *)0x0);\n            local_a8 = (proc_t *)((int)&(peVar47->fdr).adr + (int)&local_a8->sym);\n            lVar25 = (int)peVar47 >> 0x1f;\n            uVar48 = (int)&((localsym_t *)local_a8)->name + uVar37;\n          }\n          ppVar50->sym[0].file_ptr = peVar47;\n          ppVar60 = (page *)(ppVar50->byte + 0x294);\n          ppVar50->lineno[0].lineno = lVar25;\n          ppVar50 = ppVar60;\n        } while (ppVar60 < ppVar55);\n        ppVar60 = (page *)*(vlinks **)((int)local_9c + 4);\n      }\n      local_9c = ppVar60;\n    } while (local_9c != (page *)0x0);\n  }\n  local_9c = (page *)ecoff_padding_adjust(backend,local_78,local_74,uVar48,(char **)0x0);\n  uVar54 = *(uint *)((int)&backend->external_fdr_size + 4);\n  hdr->crfd = 0;\n  hdr->issMax = (int)local_9c->byte - (int)hdr->cbSsOffset;\n  *(undefined4 *)&hdr->cbRfdOffset = 0;\n  *(undefined4 *)((int)&hdr->cbRfdOffset + 4) = 0;\n  *(page **)&hdr->cbFdOffset = local_9c;\n  pcVar22 = buf + (int)local_9c;\n  *(undefined4 *)((int)&hdr->cbFdOffset + 4) = 0;\n  p_Var15 = backend->swap_fdr_out;\n  uVar24 = (uint)backend->external_fdr_size;\n  if (file_desc.first == (vlinks_t *)0x0) {\n    lVar25 = 0;\n  }\n  else {\n    local_ac = (aux_t *)0x0;\n    ppVar36 = (proc_t *)file_desc.first;\nLAB_000251e2:\n    do {\n      local_98 = ppVar36;\n      ppVar50 = *(page **)((int)local_98 + 8);\n      pcVar26 = pcVar22;\n      if (*(vlinks **)&local_98->pdr == (vlinks *)0x0) {\n        ppVar60 = (page *)(ppVar50->file + file_desc.objects_last_page);\n        if (ppVar60 <= ppVar50) {\n          local_9c = (page *)((int)local_9c->byte + (int)local_ac * uVar24);\n          lVar25 = __udivdi3((int)local_9c - (int)hdr->cbFdOffset,\n                             -(uint)(local_9c < (uint)hdr->cbFdOffset) -\n                             *(int *)((int)&hdr->cbFdOffset + 4),(int)backend->external_fdr_size,\n                             *(undefined4 *)((int)&backend->external_fdr_size + 4));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        ppVar60 = (page *)(ppVar50->file + file_desc.objects_per_page);\n        ppVar36 = (proc_t *)*(vlinks **)&local_98->pdr;\n        if (ppVar60 <= ppVar50) goto LAB_000251e2;\n      }\n      do {\n        uVar44 = (int)bufend - (int)pcVar26 >> 0x1f;\n        if (uVar44 < uVar54 || uVar44 - uVar54 < (uint)((uint)((int)bufend - (int)pcVar26) < uVar24)\n           ) {\n          pcVar26 = ecoff_add_bytes(local_78,local_74,pcVar26,uVar24);\n        }\n        pcVar22 = pcVar26 + uVar24;\n        ppVar55 = (page *)(ppVar50->byte + 0x294);\n        (*p_Var15)(stdoutput,(FDR *)ppVar50,pcVar26);\n        local_ac = (aux_t *)((int)local_ac + 1);\n        pcVar26 = pcVar22;\n        ppVar50 = ppVar55;\n      } while (ppVar55 < ppVar60);\n      ppVar36 = (proc_t *)*(vlinks **)&local_98->pdr;\n    } while (*(vlinks **)&local_98->pdr != (vlinks *)0x0);\n    local_9c = (page *)((int)local_9c->byte + (int)local_ac * uVar24);\n    lVar25 = __udivdi3((int)local_9c - (int)hdr->cbFdOffset,\n                       -(uint)(local_9c < (uint)hdr->cbFdOffset) -\n                       *(int *)((int)&hdr->cbFdOffset + 4),(int)backend->external_fdr_size,\n                       *(undefined4 *)((int)&backend->external_fdr_size + 4));\n  }\nLAB_000252e8:\n  hdr->ifdMax = lVar25;\n  hdr->issExtMax = 0;\n  psVar38 = symbol_rootP;\n  *(undefined4 *)&hdr->cbSsExtOffset = 0;\n  *(undefined4 *)((int)&hdr->cbSsExtOffset + 4) = 0;\n  hdr->iextMax = 0;\n  *(undefined4 *)&hdr->cbExtOffset = 0;\n  *(undefined4 *)((int)&hdr->cbExtOffset + 4) = 0;\n  for (; psVar38 != (symbolS *)0x0; psVar38 = symbol_next(psVar38)) {\n    peVar31 = symbol_get_obj(psVar38);\n    if (peVar31->ecoff_symbol != (localsym *)0x0) {\n      iVar29 = S_IS_EXTERNAL(psVar38);\n      if (((iVar29 == 0) && (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n         (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) {\n        peVar31 = symbol_get_obj(psVar38);\n        plVar7 = peVar31->ecoff_symbol;\n        uVar54 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc;\n        *(undefined4 *)&(plVar7->ecoff_sym).asym.value = 0;\n        *(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4) = 0;\n        *(uint *)&(plVar7->ecoff_sym).asym.field_0xc = uVar54 & 0x800 | 0xfffff000;\n      }\n      peVar31 = symbol_get_obj(psVar38);\n      elf_ecoff_set_ext(psVar38,&peVar31->ecoff_symbol->ecoff_sym);\n    }\n  }\n  if (((int)backend->debug_align - 1U & (uint)local_9c) == 0) {\n    hdr->vstamp = 0x30b;\n    *bufp = buf;\n    return (ulong)local_9c;\n  }\n                    /* WARNING: Subroutine does not return */\n  as_abort("../../gas/ecoff.c",0x129d,"ecoff_build_debug");\ncode_r0x00024a60:\n  local_ac = (aux_t *)((int)local_ac + 3);\n  pcVar22 = bufptr + 2;\n  bufptr[1] = (char)((uint)iVar46 >> 8);\n  bufptr = bufptr + 3;\n  *pcVar22 = (char)iVar46;\nLAB_000238d0:\n  if (0 < (int)uVar24) {\n    uVar24 = uVar24 - 1;\n    local_ac = (aux_t *)((int)local_ac + 1);\n    uVar44 = (uVar24 >> 4) + (int)local_ac;\n    if (bufend <= bufptr) goto LAB_00023925;\n    while (pcVar22 = bufptr + 1, pcVar26 = bufptr, bufptr = pcVar22, 0xf < uVar24) {\n      while( true ) {\n        uVar24 = uVar24 - 0x10;\n        *pcVar26 = '\x0f';\n        if ((aux_t *)uVar44 == local_ac) goto LAB_00023953;\n        local_ac = (aux_t *)((int)local_ac + 1);\n        if (bufptr < bufend) break;\nLAB_00023925:\n        pcVar26 = ecoff_add_bytes(&buf,&bufend,bufptr,1);\n        bufptr = pcVar26 + 1;\n        if (uVar24 < 0x10) goto LAB_00023944;\n      }\n    }\nLAB_00023944:\n    *pcVar26 = (char)uVar24;\n  }\nLAB_00023953:\n  plVar41 = local_b4->next;\n  if (plVar41 == (lineno_list *)0x0) goto LAB_00023a10;\n  local_9c = local_a4;\n  local_94 = local_b4;\n  local_98 = local_a8;\nLAB_000237a0:\n  plVar40 = plVar41->next;\n  local_b4 = plVar41;\n  goto LAB_000237a6;\nLAB_00023a10:\n  if (local_a8 != (proc_t *)0x0) {\n    (local_a8->pdr).lnHigh = local_b4->lineno;\n  }\n  if (local_a0 != (page *)0x0) {\n    pbVar1 = &((FDR *)local_a0)->cbLineOffset;\n    *(int *)&((FDR *)local_a0)->cbLine = (int)local_ac - (int)*pbVar1;\n    *(uint *)((int)&((FDR *)local_a0)->cbLine + 4) =\n         -(uint)(local_ac < (uint)*pbVar1) - *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);\n    ((FDR *)local_a0)->cline = (long)local_a4;\n  }\n  goto LAB_00023a3f;\nLAB_00024380:\n  ptVar33 = (tag *)local_64->hash_ptr;\n  if ((tag *)local_64->hash_ptr == (tag *)0x0) goto code_r0x00024393;\n  goto LAB_00023bdc;\ncode_r0x00024393:\n  ptVar33 = (tag *)((int)local_a8 - local_9c->ofile[0].isymBase);\n  local_8c = (int)local_a8;\nLAB_000243a4:\n  local_9c->sym[0].index_ptr = (ecoff_aux *)ptVar33;\n  local_9c = (page *)(local_9c->byte + 0x294);\n  if (local_54 <= local_9c) goto code_r0x000243bf;\n  goto LAB_00023bb7;\ncode_r0x000243bf:\n  pvVar35 = local_5c->next;\n  if (local_5c->next == (vlinks *)0x0) goto code_r0x000243ce;\n  goto LAB_00023b80;\ncode_r0x000243ce:\n  local_68 = local_68 + local_8c * uVar54;\n  lVar25 = __udivdi3(local_68 - (int)hdr->cbSymOffset,\n                     -(uint)(local_68 < (uint)hdr->cbSymOffset) -\n                     *(int *)((int)&hdr->cbSymOffset + 4),(int)backend->external_sym_size,\n                     *(undefined4 *)((int)&backend->external_sym_size + 4));\nLAB_0002441d:\n  plVar7 = (localsym *)file_desc.first;\n  hdr->isymMax = lVar25;\n  pcVar22 = buf + (int)hdr->cbPdOffset;\n  uVar54 = (uint)backend->external_pdr_size;\n  uVar24 = *(uint *)((int)&backend->external_pdr_size + 4);\n  p_Var13 = backend->swap_pdr_out;\n  if (plVar7 != (localsym *)0x0) {\n    uVar3 = 0;\nLAB_00024474:\n    do {\n      local_70 = plVar7;\n      local_a4 = *(page **)&local_70->addend;\n      if ((vlinks *)local_70->as_sym == (vlinks *)0x0) {\n        local_7c = (page *)(local_a4->file + file_desc.objects_last_page);\n        if (local_7c <= local_a4) break;\n      }\n      else {\n        local_7c = (page *)(local_a4->file + file_desc.objects_per_page);\n        plVar7 = (localsym *)local_70->as_sym;\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }\n      do {\n        bVar62 = true;\n        local_a4->ofile[0].ipdFirst = uVar3;\n        pvVar35 = local_a4->file[0].procs.first;\n        if (pvVar35 != (vlinks_t *)0x0) {\nLAB_000244d8:\n          do {\n            local_88 = pvVar35;\n            if (local_88->next == (vlinks *)0x0) {\n              ppVar50 = local_88->datum;\n              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xb0) * 0x44);\n              if (local_a0 <= ppVar50) break;\n            }\n            else {\n              ppVar50 = local_88->datum;\n              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xae) * 0x44);\n              pvVar35 = local_88->next;\n              if (local_a0 <= ppVar50) goto LAB_000244d8;\n            }\n            do {\n              psVar38 = (ppVar50->proc[0].sym)->as_sym;\n              vVar65 = S_GET_VALUE(psVar38);\n              paVar23 = S_GET_SEGMENT(psVar38);\n              plVar45 = (localsym_t *)((int)vVar65 + (int)paVar23->vma);\n              if (bVar62) {\n                iVar29 = 0;\n                local_a4->proc[0].sym = plVar45;\n                iVar46 = 0;\n                local_a4->sym[0].as_sym = (symbolS *)0x0;\n              }\n              else {\n                iVar29 = (int)plVar45 - local_a4->aux[0].type;\n                iVar46 = -(uint)(plVar45 < local_a4->proc[0].sym) - local_a4->dense[0].index;\n              }\n              *(int *)((int)ppVar50 + 4) = iVar29;\n              *(int *)((int)ppVar50 + 8) = iVar46;\n              uVar44 = (int)bufend - (int)pcVar22 >> 0x1f;\n              if (uVar44 < uVar24 ||\n                  uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)pcVar22) < uVar54)) {\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }\n              pPVar2 = (PDR *)((int)ppVar50 + 4);\n              ppVar50 = (page *)((int)ppVar50 + 0x44);\n              (*p_Var13)(stdoutput,pPVar2,pcVar22);\n              pcVar22 = pcVar22 + uVar54;\n              bVar62 = false;\n              uVar3 = uVar3 + 1;\n            } while (ppVar50 < local_a0);\n            pvVar35 = local_88->next;\n          } while (local_88->next != (vlinks *)0x0);\n          pvVar35 = (vlinks_t *)(uint)(ushort)(uVar3 - local_a4->ofile[0].ipdFirst);\n        }\n        local_a4->ofile[0].cpd = (short)pvVar35;\n        local_a4 = (page *)(local_a4->byte + 0x294);\n      } while (local_a4 < local_7c);\n      plVar7 = (localsym *)local_70->as_sym;\n    } while ((vlinks *)local_70->as_sym != (vlinks *)0x0);\n    plVar18 = (lineno_list_t *)file_desc.first;\n    hdr->ioptMax = 0;\n    *(undefined4 *)&hdr->cbOptOffset = 0;\n    *(undefined4 *)((int)&hdr->cbOptOffset + 4) = 0;\n    *(undefined4 *)((int)&hdr->cbAuxOffset + 4) = 0;\n    *(uint *)&hdr->cbAuxOffset = local_68;\n    bVar14 = stdoutput->xvec->byteorder;\n    bufptr_00 = (tir_ext *)(buf + local_68);\n    if (plVar18 != (lineno_list_t *)0x0) {\n      iVar29 = 0;\nLAB_00024d54:\n      do {\n        local_94 = plVar18;\n        local_a0 = (page *)local_94->proc;\n        if ((vlinks *)local_94->file == (vlinks *)0x0) {\n          local_9c = (page *)(local_a0->file + file_desc.objects_last_page);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (page *)(local_a0->file + file_desc.objects_per_page);\n          plVar18 = (lineno_list_t *)local_94->file;\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          local_a0->ofile[0].iauxBase = iVar29;\n          local_a0->ubyte[0x44] = local_a0->ubyte[0x44] & 0x7f | (bVar14 == BFD_ENDIAN_BIG) << 7;\n          ppVar36 = (proc_t *)local_a0->forward[0xb].free;\n          if (ppVar36 != (proc_t *)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppVar36;\n              paVar53 = *(aux_t **)((int)local_a8 + 8);\n              if (*(forward **)&local_a8->pdr == (forward *)0x0) {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc4);\n                if (local_ac <= paVar53) break;\n              }\n              else {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc2);\n                ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n                if (local_ac <= paVar53) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)bufend - (int)bufptr_00) < 4) {\n                  bufptr_00 = (tir_ext *)ecoff_add_bytes(local_78,local_74,(char *)bufptr_00,4);\n                }\n                iVar46 = SUB14(bVar14 == BFD_ENDIAN_BIG,0);\n                switch(paVar53->type) {\n                case aux_tir:\n                  (*backend->swap_tir_out)(iVar46,&(paVar53->data).ti,bufptr_00);\n                  break;\n                case aux_rndx:\n                  (*backend->swap_rndx_out)(iVar46,&(paVar53->data).rndx,(rndx_ext *)bufptr_00);\n                  break;\n                case aux_dnLow:\n                case aux_dnHigh:\n                case aux_isym:\n                case aux_iss:\n                case aux_width:\n                case aux_count:\n                  iVar46 = (paVar53->data).dnLow;\n                  if (bVar14 == BFD_ENDIAN_BIG) {\n                    bfd_putb32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                  else {\n                    bfd_putl32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                }\n                bufptr_00 = bufptr_00 + 1;\n                iVar29 = iVar29 + 1;\n                paVar53 = paVar53 + 1;\n              } while (paVar53 < local_ac);\n              ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n            } while (*(forward **)&local_a8->pdr != (forward *)0x0);\n            ppVar36 = (proc_t *)(iVar29 - local_a0->ofile[0].iauxBase);\n          }\n          local_a0->forward[3].ifd_ptr = (aux_t *)ppVar36;\n          local_a0 = (page *)(local_a0->byte + 0x294);\n        } while (local_a0 < local_9c);\n        plVar18 = (lineno_list_t *)local_94->file;\n      } while ((vlinks *)local_94->file != (vlinks *)0x0);\n      local_68 = local_68 + iVar29 * 4;\n    }\n    goto LAB_00024eaa;\n  }\n  goto LAB_0002554e;\n}\n\n" comment comment (function_definition "ulong ecoff_build_debug(HDRR *hdr,char **bufp,ecoff_debug_swap *backend)\n\n{\n  bfd_vma *pbVar1;\n  PDR *pPVar2;\n  ushort uVar3;\n  small_free_t sVar4;\n  fragS *pfVar5;\n  _func_void_bfd_ptr_SYMR_ptr_void_ptr *p_Var6;\n  localsym *plVar7;\n  symbolS *psVar8;\n  localsym *plVar9;\n  AUXU AVar10;\n  ecoff_proc *peVar11;\n  undefined4 uVar12;\n  _func_void_bfd_ptr_PDR_ptr_void_ptr *p_Var13;\n  bfd_endian bVar14;\n  _func_void_bfd_ptr_FDR_ptr_void_ptr *p_Var15;\n  ulonglong uVar16;\n  bfd_vma bVar17;\n  lineno_list_t *plVar18;\n  small_free_t sVar19;\n  byte bVar20;\n  tag_t *ptag;\n  scope_t *psVar21;\n  char *pcVar22;\n  segT paVar23;\n  uint uVar24;\n  long lVar25;\n  char *pcVar26;\n  segT paVar27;\n  segT paVar28;\n  int iVar29;\n  asymbol *paVar30;\n  elf_obj_sy *peVar31;\n  forward *pfVar32;\n  tag *ptVar33;\n  symint_t sVar34;\n  vlinks_t *pvVar35;\n  proc_t *ppVar36;\n  ulong uVar37;\n  tir_ext *bufptr_00;\n  symbolS *psVar38;\n  char cVar39;\n  lineno_list *plVar40;\n  lineno_list *plVar41;\n  byte bVar42;\n  efdr_t *peVar43;\n  uint uVar44;\n  localsym_t *plVar45;\n  int iVar46;\n  efdr *peVar47;\n  ulong uVar48;\n  uint uVar49;\n  page *ppVar50;\n  byte *pbVar51;\n  byte *pbVar52;\n  aux_t *paVar53;\n  uint uVar54;\n  page *ppVar55;\n  char cVar56;\n  uint uVar57;\n  byte *pbVar58;\n  int iVar59;\n  page *ppVar60;\n  bool bVar61;\n  bool bVar62;\n  bool bVar63;\n  byte bVar64;\n  valueT vVar65;\n  valueT vVar66;\n  lineno_list_t *local_b4;\n  int local_b0;\n  aux_t *local_ac;\n  proc_t *local_a8;\n  page *local_a4;\n  page *local_a0;\n  page *local_9c;\n  proc_t *local_98;\n  lineno_list_t *local_94;\n  int local_8c;\n  vlinks_t *local_88;\n  page *local_7c;\n  char **local_78;\n  char **local_74;\n  localsym *local_70;\n  uint local_68;\n  tag *local_64;\n  vlinks_t *local_5c;\n  page *local_54;\n  char *buf;\n  char *bufend;\n  char *bufptr;\n  lineno_list_t first;\n  \n  bVar64 = 0;\n  uVar54 = (uint)backend->external_pdr_size;\n  iVar29 = *(int *)((int)&backend->external_pdr_size + 4);\n  if (first_file == (efdr_t *)0x0) {\n    add_file((char *)0x0,1,0);\n  }\n  sVar19 = (small_free_t)top_tag_head->first_tag;\n  ppVar36 = cur_proc_ptr;\n  while (cur_proc_ptr = ppVar36, (tag *)sVar19.f_scope != (tag *)0x0) {\n    ptag = (tag_t *)(sVar19.f_tag)->hash_ptr;\n    if ((sVar19.f_tag)->forward_ref != (forward *)0x0) {\n      add_unknown_tag(ptag,(tag_t *)&(sVar19.f_tag)->forward_ref);\n      ptag = (tag_t *)(sVar19.f_tag)->hash_ptr;\n    }\n    sVar4 = (small_free_t)(sVar19.f_scope)->type;\n    alloc_counts[5].total_free = alloc_counts[5].total_free + 1;\n    ptag->basic_type = (bt_t)(sVar19.f_scope)->lsym;\n    (sVar19.f_scope)->prev = (scope *)alloc_counts[5].free_list;\n    alloc_counts[5].free_list = sVar19;\n    sVar19 = sVar4;\n    ppVar36 = cur_proc_ptr;\n  }\n  alloc_counts[7].total_free = alloc_counts[7].total_free + 1;\n  sVar19 = top_tag_head;\n  ((scope_t *)top_tag_head)->free = (scope *)alloc_counts[7].free_list;\n  alloc_counts[7].free_list = sVar19;\n  peVar43 = cur_file_ptr;\n  cur_proc_ptr = (proc_t *)0x0;\n  for (psVar38 = symbol_rootP; psVar38 != (symbolS *)0x0; psVar38 = symbol_next(psVar38)) {\n    peVar31 = symbol_get_obj(psVar38);\n    if (((peVar31->ecoff_symbol == (localsym *)0x0) &&\n        (peVar31 = symbol_get_obj(psVar38), peVar31->ecoff_file != (efdr *)0x0)) &&\n       (paVar30 = symbol_get_bfdsym(psVar38), (paVar30->flags & 0x100) == 0)) {\n      peVar31 = symbol_get_obj(psVar38);\n      cur_file_ptr = peVar31->ecoff_file;\n      vVar65 = S_GET_VALUE(psVar38);\n      add_ecoff_symbol((char *)0x0,st_Nil,sc_Nil,psVar38,0,(symint_t)vVar65,0xfffff);\n    }\n  }\n  bVar62 = false;\n  cur_proc_ptr = ppVar36;\n  cur_file_ptr = peVar43;\n  peVar47 = first_file;\njoined_r0x000235e4:\n  if (peVar47 != (efdr_t *)0x0) {\n    psVar21 = peVar47->cur_scope;\n    peVar43 = peVar47;\n    cur_file_ptr = peVar47;\n    while (psVar21 != (scope_t *)0x0) {\n      while( true ) {\n        psVar21 = psVar21->prev;\n        if (psVar21 == (scope *)0x0) {\n          add_ecoff_symbol((char *)0x0,st_End,sc_Text,(symbolS *)0x0,0,0,0);\n          peVar47 = peVar47->next_file;\n          goto joined_r0x000235e4;\n        }\n        peVar43->cur_scope = psVar21;\n        if ((bVar62) || (peVar43->fake != 0)) break;\n        bVar62 = true;\n        pcVar22 = (char *)dcgettext(0,"missing .end or .bend at end of file",5);\n        as_warn(pcVar22);\n        psVar21 = cur_file_ptr->cur_scope;\n        peVar43 = cur_file_ptr;\n        if (psVar21 == (scope_t *)0x0) goto LAB_00023650;\n      }\n    }\nLAB_00023650:\n    peVar47 = peVar47->next_file;\n    goto joined_r0x000235e4;\n  }\n  buf = (char *)xmalloc(0x2000);\n  plVar40 = first_lineno;\n  local_b4 = first_lineno;\n  bufend = buf + 0x2000;\n  bVar62 = debug_type == DEBUG_ECOFF;\n  *(undefined4 *)&hdr->cbLineOffset = 0;\n  *(undefined4 *)((int)&hdr->cbLineOffset + 4) = 0;\n  hdr->ilineMax = 0;\n  bufptr = buf;\n  if ((bVar62) || (first_proc_ptr == (proc_t *)0x0)) {\n    if (plVar40 != (lineno_list_t *)0x0) {\n      plVar40 = plVar40->next;\n      goto LAB_00023764;\n    }\n  }\n  else if (plVar40 != (lineno_list_t *)0x0) {\n    vVar65 = S_GET_VALUE(first_proc_ptr->sym->as_sym);\n    paVar23 = S_GET_SEGMENT(first_proc_ptr->sym->as_sym);\n    if ((int)(vVar65 >> 0x20) + *(int *)((int)&paVar23->vma + 4) +\n        (uint)CARRY4((uint)vVar65,(uint)paVar23->vma) == 0 && (uint)vVar65 + (int)paVar23->vma == 0)\n    {\n      plVar40 = plVar40->next;\n    }\n    else {\n      first.file = plVar40->file;\n      first.paddr = 0;\n      first.proc = plVar40->proc;\n      first.lineno = 0;\n      first.frag = &zero_address_frag;\n      first.next = local_b4;\n      local_b4 = &first;\n    }\nLAB_00023764:\n    local_9c = (page *)0x0;\n    local_ac = (aux_t *)0x0;\n    local_94 = (lineno_list_t *)0x0;\n    local_a0 = (page *)0x0;\n    local_98 = (proc_t *)0x0;\nLAB_000237a6:\n    plVar41 = plVar40;\n    if (plVar41 == (lineno_list *)0x0) {\n      uVar24 = 1;\nLAB_000237e1:\n      peVar43 = local_b4->file;\n      local_a8 = local_b4->proc;\n      local_a4 = (page *)((int)local_9c + uVar24);\n      if ((page *)peVar43 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (proc_t *)0x0) {\n            (local_98->pdr).lnHigh = local_94->lineno;\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (lineno_list_t *)0x0) &&\n           (iVar46 = local_b4->lineno - local_94->lineno, iVar46 != 0)) {\n          do {\n            iVar59 = uVar24 - 1;\n            if (iVar59 < 0x10) {\n              uVar24 = 0;\n            }\n            else {\n              uVar24 = uVar24 - 0x10;\n              iVar59 = 0xf;\n            }\n            if (iVar46 + 7U < 0xf) {\n              if (bufend <= bufptr) {\n                bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,1);\n              }\n              local_ac = (aux_t *)((int)local_ac + 1);\n              *bufptr = (char)iVar46 * '\x10' + (char)iVar59;\n              bufptr = bufptr + 1;\n              break;\n            }\n            if ((int)bufend - (int)bufptr < 3) {\n              bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,3);\n            }\n            *bufptr = (char)iVar59 + -0x80;\n            if (iVar46 < -0x8000) {\n              iVar46 = iVar46 + 0x8000;\n              cVar56 = -0x80;\n              cVar39 = '\0';\n            }\n            else {\n              if (iVar46 < 0x8000) goto code_r0x00024a60;\n              iVar46 = iVar46 + -0x7fff;\n              cVar56 = '\x7f';\n              cVar39 = -1;\n            }\n            local_ac = (aux_t *)((int)local_ac + 3);\n            pcVar22 = bufptr + 2;\n            bufptr[1] = cVar56;\n            bufptr = bufptr + 3;\n            *pcVar22 = cVar39;\n          } while( true );\n        }\n      }\n      else {\n        bVar62 = local_98 != local_a8;\n        if (local_98 != (proc_t *)0x0 && bVar62) {\n          (local_98->pdr).lnHigh = local_94->lineno;\n          bVar62 = local_98 != (proc_t *)0x0 && bVar62;\n        }\n        lVar25 = 0;\n        if (local_a0 != (page *)0x0) {\n          local_9c = (page *)0x0;\n          pbVar1 = &((FDR *)local_a0)->cbLineOffset;\n          bVar17 = *pbVar1;\n          *(uint *)((int)&((FDR *)local_a0)->cbLine + 4) =\n               -(uint)(local_ac < (uint)*pbVar1) -\n               *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);\n          *(int *)&((FDR *)local_a0)->cbLine = (int)local_ac - (int)bVar17;\n          ((FDR *)local_a0)->cline = (long)local_a4;\n          hdr->ilineMax = hdr->ilineMax + (int)local_a4->byte;\n          lVar25 = ((FDR *)local_a0)->cline + ((FDR *)local_a0)->ilineBase;\n          local_a4 = (page *)uVar24;\n        }\n        (peVar43->fdr).ilineBase = lVar25;\n        *(aux_t **)&(peVar43->fdr).cbLineOffset = local_ac;\n        *(undefined4 *)((int)&(peVar43->fdr).cbLineOffset + 4) = 0;\n        local_a0 = (page *)peVar43;\n        if (bVar62) {\nLAB_000238a1:\n          if (local_a8 != (proc_t *)0x0) {\n            (local_a8->pdr).lnLow = local_b4->lineno;\n            pbVar1 = &((FDR *)local_a0)->cbLineOffset;\n            bVar17 = *pbVar1;\n            iVar46 = *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);\n            *(int *)&(local_a8->pdr).cbLineOffset = (int)local_ac - (int)*pbVar1;\n            *(uint *)((int)&(local_a8->pdr).cbLineOffset + 4) =\n                 -(uint)(local_ac < (uint)bVar17) - iVar46;\n            (local_a8->pdr).iline = (long)local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }\n      goto LAB_000238d0;\n    }\n    pfVar5 = plVar41->frag;\n    uVar49 = plVar41->paddr + (int)pfVar5->fr_address;\n    uVar57 = *(int *)((int)&pfVar5->fr_address + 4) +\n             (uint)CARRY4(plVar41->paddr,(uint)pfVar5->fr_address);\n    pfVar5 = local_b4->frag;\n    uVar24 = local_b4->paddr + (int)pfVar5->fr_address;\n    uVar44 = *(int *)((int)&pfVar5->fr_address + 4) +\n             (uint)CARRY4(local_b4->paddr,(uint)pfVar5->fr_address);\n    if (uVar44 < uVar57 || uVar44 - uVar57 < (uint)(uVar24 < uVar49)) {\n      uVar24 = uVar49 - uVar24 >> 2 | ((uVar57 - uVar44) - (uint)(uVar49 < uVar24)) * 0x40000000;\n      goto LAB_000237e1;\n    }\n    goto LAB_000237a0;\n  }\n  local_a4 = (page *)0x0;\n  local_ac = (aux_t *)0x0;\nLAB_00023a3f:\n  local_74 = &bufend;\n  local_78 = &buf;\n  hdr->ilineMax = hdr->ilineMax + (int)local_a4;\n  local_68 = ecoff_padding_adjust(backend,local_78,local_74,(ulong)local_ac,&bufptr);\n  iVar46 = *(int *)((int)&hdr->cbLineOffset + 4);\n  *(uint *)&hdr->cbPdOffset = local_68;\n  *(uint *)&hdr->cbLine = local_68 - (int)hdr->cbLineOffset;\n  uVar48 = proc_cnt;\n  *(uint *)((int)&hdr->cbLine + 4) = -(uint)(local_68 < (uint)hdr->cbLineOffset) - iVar46;\n  *(undefined4 *)((int)&hdr->cbPdOffset + 4) = 0;\n  hdr->idnMax = 0;\n  *(undefined4 *)&hdr->cbDnOffset = 0;\n  *(undefined4 *)((int)&hdr->cbDnOffset + 4) = 0;\n  hdr->ipdMax = uVar48;\n  uVar44 = (int)bufend - (int)(buf + local_68);\n  uVar24 = (int)uVar44 >> 0x1f;\n  uVar49 = (int)((ulonglong)uVar54 * (ulonglong)uVar48 >> 0x20) + iVar29 * uVar48;\n  if (uVar24 < uVar49 ||\n      uVar24 - uVar49 < (uint)(uVar44 < (uint)((ulonglong)uVar54 * (ulonglong)uVar48))) {\n    ecoff_add_bytes(local_78,local_74,buf + local_68,uVar48 * uVar54);\n    uVar48 = proc_cnt;\n  }\n  local_68 = uVar48 * uVar54 + local_68;\n  uVar54 = (uint)backend->external_sym_size;\n  local_a0 = (page *)(buf + local_68);\n  *(uint *)&hdr->cbSymOffset = local_68;\n  uVar24 = *(uint *)((int)&backend->external_sym_size + 4);\n  *(undefined4 *)((int)&hdr->cbSymOffset + 4) = 0;\n  p_Var6 = backend->swap_sym_out;\n  if (file_desc.first != (vlinks_t *)0x0) {\n    local_8c = 0;\n    paVar23 = (segT)(PTR__bfd_std_section_00077fa0 + 0x180);\n    pvVar35 = file_desc.first;\nLAB_00023b80:\n    local_5c = pvVar35;\n    local_9c = local_5c->datum;\n    if (local_5c->next == (vlinks *)0x0) {\n      local_54 = (page *)(local_9c->file + file_desc.objects_last_page);\n      if (local_54 <= local_9c) {\n        local_68 = local_68 + local_8c * uVar54;\n        lVar25 = __udivdi3(local_68 - (int)hdr->cbSymOffset,\n                           -(uint)(local_68 < (uint)hdr->cbSymOffset) -\n                           *(int *)((int)&hdr->cbSymOffset + 4),(int)backend->external_sym_size,\n                           *(undefined4 *)((int)&backend->external_sym_size + 4));\n        goto LAB_0002441d;\n      }\n    }\n    else {\n      local_54 = (page *)(local_9c->file + file_desc.objects_per_page);\n      pvVar35 = local_5c->next;\n      if (local_54 <= local_9c) goto LAB_00023b80;\n    }\nLAB_00023bb7:\n    local_9c->ofile[0].isymBase = local_8c;\n    ptVar33 = local_9c->tag[4].same_block;\n    if (ptVar33 != (tag *)0x0) {\n      local_a8 = (proc_t *)local_8c;\nLAB_00023bdc:\n      local_64 = ptVar33;\n      plVar7 = (localsym *)local_64->same_name;\n      if ((tag *)local_64->hash_ptr == (tag *)0x0) {\n        local_70 = plVar7 + *(ushort *)(local_9c->byte + 0x9c);\n        if (local_70 <= plVar7) {\n          local_8c = (int)local_a8;\n          ptVar33 = (tag *)((int)local_a8 - local_9c->ofile[0].isymBase);\n          goto LAB_000243a4;\n        }\n      }\n      else {\n        local_70 = plVar7 + *(ushort *)(local_9c->byte + 0x9a);\n        ptVar33 = (tag *)local_64->hash_ptr;\n        if (local_70 <= plVar7) goto LAB_00023bdc;\n      }\n      ppVar50 = (page *)plVar7->file_ptr;\n      do {\n        if (ppVar50 != local_9c) {\n                    /* WARNING: Subroutine does not return */\n          as_abort("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }\n        psVar38 = plVar7->as_sym;\n        if (psVar38 == (symbolS *)0x0) {\n          plVar9 = plVar7->begin_ptr;\n          if (plVar9 == (localsym *)0x0) {\n            pfVar32 = plVar7->forward_ref;\njoined_r0x000242a4:\n            if (pfVar32 != (forward *)0x0) {\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              goto LAB_00023ff8;\n            }\n          }\n          else {\nLAB_00023e89:\n            iVar29 = plVar9->sym_index;\n            if (iVar29 == -1) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n            }\n            uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff | iVar29 << 0xc;\n            *(uint *)&(plVar7->ecoff_sym).asym.field_0xc = uVar44;\n            if (((ushort)uVar44 & 0x7c0) != 0x2c0) {\n              (plVar7->ecoff_sym).asym.iss = (plVar9->ecoff_sym).asym.iss;\n            }\n            bVar20 = (plVar9->ecoff_sym).asym.field_0xc;\n            if (((bVar20 & 0x3f) + 0x39 & 0x3b) == 0) {\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              *(uint *)&(plVar9->ecoff_sym).asym.field_0xc =\n                   *(uint *)&(plVar9->ecoff_sym).asym.field_0xc & 0xfff |\n                   ((int)local_a4->byte + 1) * 0x1000;\n              (*p_Var6)(stdoutput,&(plVar9->ecoff_sym).asym,buf + iVar29 * uVar54 + local_68);\n              if ((bVar20 & 0x37) == 6) goto LAB_00024180;\n              if (((bVar20 & 0x3f) == 7) &&\n                 ((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7c0) != 0x2c0)) {\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                }\n                if (plVar7->proc_ptr == (ecoff_proc *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                }\n                psVar8 = plVar7->proc_ptr->sym->as_sym;\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(psVar8);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(psVar8);\n                local_b4 = (lineno_list_t *)vVar65;\n                local_b0 = (int)(vVar65 >> 0x20);\n                pfVar32 = plVar7->forward_ref;\n                *(uint *)&(plVar7->ecoff_sym).asym.value = (int)local_b4 - (uint)vVar66;\n                *(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                     (local_b0 - (int)(vVar66 >> 0x20)) - (uint)(local_b4 < (uint)vVar66);\n              }\n              else {\n                pfVar32 = plVar7->forward_ref;\n              }\n            }\n            else {\n              if (plVar9->index_ptr == (ecoff_aux *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n              }\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              (plVar9->index_ptr->data).dnLow = (int)local_a4->byte + 1;\n              if ((bVar20 & 0x37) == 6) {\nLAB_00024180:\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n                }\n                if (plVar9->as_sym == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n                }\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(plVar9->as_sym);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(plVar9->as_sym);\n                uVar16 = vVar65 - vVar66;\n                if ((uVar16 & 1) == 0) {\n                  (plVar7->ecoff_sym).asym.value = uVar16;\n                }\n                else {\n                  (plVar7->ecoff_sym).asym.value = uVar16 + 1;\n                }\n                paVar30 = symbol_get_bfdsym(plVar9->as_sym);\n                uVar12 = *(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4);\n                *(int *)&paVar30[1].value = (int)(plVar7->ecoff_sym).asym.value;\n                *(undefined4 *)((int)&paVar30[1].value + 4) = uVar12;\n                pfVar32 = plVar7->forward_ref;\n                goto joined_r0x000242a4;\n              }\n              pfVar32 = plVar7->forward_ref;\n            }\njoined_r0x000247a5:\n            if (pfVar32 != (forward *)0x0) {\nLAB_00023ff8:\n              AVar10 = (AUXU)local_9c->file[0].file_index;\n              do {\n                paVar53 = pfVar32->index_ptr;\n                pfVar32->ifd_ptr->data = AVar10;\n                (paVar53->data).dnLow = (paVar53->data).dnLow & 0xfffU | (int)local_a4 << 0xc;\n                pfVar32 = pfVar32->next;\n              } while (pfVar32 != (forward *)0x0);\n            }\n          }\nLAB_0002402d:\n          uVar44 = (int)bufend - (int)local_a0->byte >> 0x1f;\n          if (uVar44 < uVar24 ||\n              uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)local_a0->byte) < uVar54)) {\n            local_a0 = (page *)ecoff_add_bytes(local_78,local_74,local_a0->byte,uVar54);\n          }\n          (*p_Var6)(stdoutput,&(plVar7->ecoff_sym).asym,local_a0);\n          local_a0 = (page *)((int)local_a0 + uVar54);\n          plVar7->sym_index = (long)local_a8;\n          peVar11 = plVar7->proc_ptr;\n          if ((peVar11 != (ecoff_proc *)0x0) && (peVar11->sym == plVar7)) {\n            (peVar11->pdr).isym = (int)local_a8 - local_8c;\n          }\n          local_a8 = (proc_t *)((int)local_a8 + 1);\n          if ((psVar38 != (symbolS *)0x0) &&\n             (peVar31 = symbol_get_obj(psVar38), peVar31->ecoff_symbol == plVar7)) {\n            if (((plVar7->ecoff_sym).asym.field_0xc & 0x37) == 6) {\n              *(uint *)&(plVar7->ecoff_sym).asym.field_0xc =\n                   *(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff |\n                   (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          if ((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff) == 0x47) {\n            if (plVar7->proc_ptr == (ecoff_proc *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n            }\n            psVar8 = plVar7->proc_ptr->sym->as_sym;\n            paVar27 = S_GET_SEGMENT(psVar38);\n            paVar28 = S_GET_SEGMENT(psVar8);\n            if (paVar27 != paVar28) {\n              pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n              as_warn(pcVar22);\n            }\n            vVar65 = S_GET_VALUE(psVar38);\n            vVar66 = S_GET_VALUE(psVar8);\n            (plVar7->ecoff_sym).asym.value = vVar65 - vVar66;\n          }\n          else {\n            vVar65 = S_GET_VALUE(psVar38);\n            paVar27 = S_GET_SEGMENT(psVar38);\n            ptVar33 = *(tag **)&plVar7->addend;\n            uVar44 = (int)&(*(tag **)&plVar7->addend)->free + (uint)vVar65;\n            bVar17 = paVar27->vma;\n            iVar29 = *(int *)((int)&paVar27->vma + 4);\n            *(uint *)&(plVar7->ecoff_sym).asym.value = uVar44 + (int)paVar27->vma;\n            *(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                 (int)&(*(tag **)((int)&plVar7->addend + 4))->free +\n                 (uint)CARRY4(uVar44,(uint)bVar17) +\n                 iVar29 + (uint)CARRY4((uint)vVar65,(uint)ptVar33) + (int)(vVar65 >> 0x20);\n          }\n          iVar29 = S_IS_WEAK(psVar38);\n          *(byte *)&plVar7->ecoff_sym =\n               *(byte *)&plVar7->ecoff_sym & 0xfb | ((byte)iVar29 & 1) * '\x04';\n          if ((((((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 6) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) &&\n              (iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0)) &&\n             (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) {\n            (plVar7->ecoff_sym).asym.field_0xc = (plVar7->ecoff_sym).asym.field_0xc & 0xc0 | 0xe;\n          }\n          if (((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff) == 0) &&\n             ((uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc,\n              (uVar44 & 0xfff00) != 0x8f300 || ((uVar44 & 0xfffdf) != 0x8f3c0)))) {\n            paVar27 = S_GET_SEGMENT(psVar38);\n            pbVar52 = (byte *)paVar27->name;\n            if (((*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300) ||\n               (((iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0 &&\n                 (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n                (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)))) {\n              bVar20 = (paVar27 == text_section) * '\x03' + 2;\n            }\n            else {\n              paVar30 = symbol_get_bfdsym(psVar38);\n              bVar20 = (-((paVar30->flags & 8) == 0) & 0xfbU) + 6;\n            }\n            iVar29 = S_IS_DEFINED(psVar38);\n            if (iVar29 == 0) {\n              peVar31 = symbol_get_obj(psVar38);\n              iVar29 = *(int *)((int)&peVar31->ecoff_extern_size + 4);\n              uVar49 = (uint)peVar31->ecoff_extern_size;\n              if ((iVar29 == 0 && uVar49 == 0) ||\n                 (uVar44 = bfd_get_gp_size(stdoutput),\n                 iVar29 != 0 || (uint)-iVar29 < (uint)(uVar44 < uVar49))) {\n                bVar42 = 6;\n              }\n              else {\n                *(uint *)&(plVar7->ecoff_sym).asym.value = uVar49;\n                bVar42 = 0x15;\n                *(int *)((int)&(plVar7->ecoff_sym).asym.value + 4) = iVar29;\n              }\n              paVar30 = symbol_get_bfdsym(psVar38);\n              uVar44 = (uint)bVar42;\n              *(uint *)&paVar30[1].value = uVar49;\n              *(int *)((int)&paVar30[1].value + 4) = iVar29;\n            }\n            else {\n              iVar29 = S_IS_COMMON(psVar38);\n              if (iVar29 == 0) {\n                uVar44 = 1;\n                if (paVar27 != text_section) {\n                  uVar44 = 2;\n                  bVar62 = paVar27 < data_section;\n                  bVar63 = paVar27 == data_section;\n                  if (!bVar63) {\n                    iVar29 = 7;\n                    uVar44 = 0xf;\n                    pbVar51 = pbVar52;\n                    pbVar58 = (byte *)".rdata";\n                    do {\n                      if (iVar29 == 0) break;\n                      iVar29 = iVar29 + -1;\n                      bVar62 = *pbVar51 < *pbVar58;\n                      bVar63 = *pbVar51 == *pbVar58;\n                      pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                      pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                    } while (bVar63);\n                    bVar61 = false;\n                    bVar62 = (!bVar62 && !bVar63) == bVar62;\n                    if (!bVar62) {\n                      iVar29 = 8;\n                      pbVar51 = pbVar52;\n                      pbVar58 = (byte *)".rodata";\n                      do {\n                        if (iVar29 == 0) break;\n                        iVar29 = iVar29 + -1;\n                        bVar61 = *pbVar51 < *pbVar58;\n                        bVar62 = *pbVar51 == *pbVar58;\n                        pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                        pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                      } while (bVar62);\n                      bVar63 = false;\n                      bVar62 = (!bVar61 && !bVar62) == bVar61;\n                      if (!bVar62) {\n                        iVar29 = 7;\n                        uVar44 = 0xd;\n                        pbVar51 = pbVar52;\n                        pbVar58 = (byte *)".sdata";\n                        do {\n                          if (iVar29 == 0) break;\n                          iVar29 = iVar29 + -1;\n                          bVar63 = *pbVar51 < *pbVar58;\n                          bVar62 = *pbVar51 == *pbVar58;\n                          pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                          pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                        } while (bVar62);\n                        if ((!bVar63 && !bVar62) != bVar63) {\n                          uVar44 = 3;\n                          bVar62 = paVar27 < bss_section;\n                          bVar63 = paVar27 == bss_section;\n                          if (!bVar63) {\n                            iVar29 = 6;\n                            uVar44 = 0xe;\n                            pbVar51 = (byte *)".sbss";\n                            do {\n                              if (iVar29 == 0) break;\n                              iVar29 = iVar29 + -1;\n                              bVar62 = *pbVar52 < *pbVar51;\n                              bVar63 = *pbVar52 == *pbVar51;\n                              pbVar52 = pbVar52 + (uint)bVar64 * -2 + 1;\n                              pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                            } while (bVar63);\n                            if ((!bVar62 && !bVar63) != bVar62) {\n                              uVar44 = (uint)(paVar27 == paVar23) * 3 + 2;\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                vVar65 = S_GET_VALUE(psVar38);\n                if (vVar65 != 0) {\n                  vVar65 = S_GET_VALUE(psVar38);\n                  iVar29 = (int)(vVar65 >> 0x20);\n                  uVar49 = bfd_get_gp_size(stdoutput);\n                  uVar44 = 0x12;\n                  if (iVar29 == 0 && (uint)(uVar49 < (uint)vVar65) <= (uint)-iVar29)\n                  goto LAB_00023df1;\n                }\n                uVar44 = 0x11;\n              }\n            }\nLAB_00023df1:\n            (plVar7->ecoff_sym).asym.field_0xc =\n                 (plVar7->ecoff_sym).asym.field_0xc & 0xc0 | bVar20 & 0x3f;\n            *(ushort *)&(plVar7->ecoff_sym).asym.field_0xc =\n                 *(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0xf83f | (ushort)(uVar44 << 6);\n          }\n          iVar29 = S_IS_EXTERNAL(psVar38);\n          if (((((iVar29 == 0) && (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) ||\n              ((plVar7->proc_ptr != (ecoff_proc *)0x0 ||\n               (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 0)))) ||\n             ((*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300)) {\n            iVar29 = S_IS_COMMON(psVar38);\n            if (iVar29 == 0) {\n              if (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) != 8) {\n                ptVar33 = (tag *)plVar7->name;\n                pcVar22 = strchr((char *)ptVar33,1);\n                if (pcVar22 != (char *)0x0) goto LAB_00023e7a;\n                sVar34 = add_string(&local_9c->file[0].strings,local_9c->file[0].str_hash,\n                                    (char *)ptVar33,(shash_t **)0x0);\n                (plVar7->ecoff_sym).asym.iss = sVar34;\n                plVar9 = plVar7->begin_ptr;\n                if (plVar9 != (localsym *)0x0) goto LAB_00023e89;\n                pfVar32 = plVar7->forward_ref;\n                local_a4 = (page *)((int)local_a8 - local_8c);\n                goto joined_r0x000247a5;\n              }\nLAB_00023e7a:\n              plVar9 = plVar7->begin_ptr;\n              if (plVar9 != (localsym *)0x0) goto LAB_00023e89;\n              pfVar32 = plVar7->forward_ref;\n              if (pfVar32 != (forward *)0x0) {\n                local_a4 = (page *)((int)local_a8 - local_8c);\n                goto LAB_00023ff8;\n              }\n              goto LAB_0002402d;\n            }\n          }\n          else {\n            S_IS_COMMON(psVar38);\n          }\n          if (plVar7->begin_ptr != (localsym *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (plVar7->forward_ref != (forward *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          peVar31 = symbol_get_obj(psVar38);\n          if (plVar7 == peVar31->ecoff_symbol) {\nLAB_00024347:\n            (plVar7->ecoff_sym).ifd = local_9c->file[0].file_index;\n            iVar29 = S_IS_EXTERNAL(psVar38);\n            if ((iVar29 != 0) || (iVar29 = S_IS_WEAK(psVar38), iVar29 != 0)) {\n              local_9c->ubyte[0x44] = local_9c->ubyte[0x44] & 0xdf;\n            }\n          }\n        }\n        if (local_70 <= plVar7 + 1) goto LAB_00024380;\n        ppVar50 = (page *)plVar7[1].file_ptr;\n        plVar7 = plVar7 + 1;\n      } while( true );\n    }\n    goto LAB_000243a4;\n  }\n  hdr->isymMax = 0;\nLAB_0002554e:\n  hdr->ioptMax = 0;\n  *(undefined4 *)&hdr->cbOptOffset = 0;\n  *(undefined4 *)((int)&hdr->cbOptOffset + 4) = 0;\n  *(undefined4 *)((int)&hdr->cbAuxOffset + 4) = 0;\n  *(uint *)&hdr->cbAuxOffset = local_68;\nLAB_00024eaa:\n  uVar37 = ecoff_padding_adjust(backend,local_78,local_74,local_68,(char **)0x0);\n  hdr->iauxMax = uVar37 - (int)hdr->cbAuxOffset >> 2 |\n                 (-(uint)(uVar37 < (uint)hdr->cbAuxOffset) - *(int *)((int)&hdr->cbAuxOffset + 4)) *\n                 0x40000000;\n  *(ulong *)&hdr->cbSsOffset = uVar37;\n  pvVar35 = file_desc.first;\n  local_9c = (page *)file_desc.first;\n  *(undefined4 *)((int)&hdr->cbSsOffset + 4) = 0;\n  uVar48 = uVar37;\n  if (pvVar35 != (vlinks_t *)0x0) {\n    local_a8 = (proc_t *)0x0;\n    do {\n      uVar3 = file_desc.objects_last_page;\n      if (*(vlinks **)((int)local_9c + 4) != (vlinks *)0x0) {\n        uVar3 = file_desc.objects_per_page;\n      }\n      ppVar50 = *(page **)((int)local_9c + 8);\n      ppVar55 = (page *)(ppVar50->file + uVar3);\n      ppVar60 = (page *)*(vlinks **)((int)local_9c + 4);\n      if (ppVar50 < ppVar55) {\n        do {\n          ppVar50->shash[0].sym_ptr = (localsym_t *)local_a8;\n          pvVar35 = ppVar50->file[0].strings.first;\n          pcVar22 = buf + uVar48;\n          if (pvVar35 == (vlinks_t *)0x0) {\n            peVar47 = (efdr *)0x0;\n            lVar25 = 0;\n          }\n          else {\n            peVar47 = (efdr *)0x0;\n            do {\n              if (pvVar35->next == (vlinks *)0x0) {\n                uVar3 = ppVar50->ofile[1].ipdFirst;\n              }\n              else {\n                uVar3 = *(ushort *)(ppVar50->byte + 0x86);\n              }\n              uVar54 = (uint)uVar3;\n              if ((uint)((int)bufend - (int)pcVar22) < uVar54) {\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }\n              peVar47 = (efdr *)((int)&(peVar47->fdr).adr + uVar54);\n              memcpy(pcVar22,pvVar35->datum,uVar54);\n              pvVar35 = pvVar35->next;\n              pcVar22 = pcVar22 + uVar54;\n            } while (pvVar35 != (vlinks *)0x0);\n            local_a8 = (proc_t *)((int)&(peVar47->fdr).adr + (int)&local_a8->sym);\n            lVar25 = (int)peVar47 >> 0x1f;\n            uVar48 = (int)&((localsym_t *)local_a8)->name + uVar37;\n          }\n          ppVar50->sym[0].file_ptr = peVar47;\n          ppVar60 = (page *)(ppVar50->byte + 0x294);\n          ppVar50->lineno[0].lineno = lVar25;\n          ppVar50 = ppVar60;\n        } while (ppVar60 < ppVar55);\n        ppVar60 = (page *)*(vlinks **)((int)local_9c + 4);\n      }\n      local_9c = ppVar60;\n    } while (local_9c != (page *)0x0);\n  }\n  local_9c = (page *)ecoff_padding_adjust(backend,local_78,local_74,uVar48,(char **)0x0);\n  uVar54 = *(uint *)((int)&backend->external_fdr_size + 4);\n  hdr->crfd = 0;\n  hdr->issMax = (int)local_9c->byte - (int)hdr->cbSsOffset;\n  *(undefined4 *)&hdr->cbRfdOffset = 0;\n  *(undefined4 *)((int)&hdr->cbRfdOffset + 4) = 0;\n  *(page **)&hdr->cbFdOffset = local_9c;\n  pcVar22 = buf + (int)local_9c;\n  *(undefined4 *)((int)&hdr->cbFdOffset + 4) = 0;\n  p_Var15 = backend->swap_fdr_out;\n  uVar24 = (uint)backend->external_fdr_size;\n  if (file_desc.first == (vlinks_t *)0x0) {\n    lVar25 = 0;\n  }\n  else {\n    local_ac = (aux_t *)0x0;\n    ppVar36 = (proc_t *)file_desc.first;\nLAB_000251e2:\n    do {\n      local_98 = ppVar36;\n      ppVar50 = *(page **)((int)local_98 + 8);\n      pcVar26 = pcVar22;\n      if (*(vlinks **)&local_98->pdr == (vlinks *)0x0) {\n        ppVar60 = (page *)(ppVar50->file + file_desc.objects_last_page);\n        if (ppVar60 <= ppVar50) {\n          local_9c = (page *)((int)local_9c->byte + (int)local_ac * uVar24);\n          lVar25 = __udivdi3((int)local_9c - (int)hdr->cbFdOffset,\n                             -(uint)(local_9c < (uint)hdr->cbFdOffset) -\n                             *(int *)((int)&hdr->cbFdOffset + 4),(int)backend->external_fdr_size,\n                             *(undefined4 *)((int)&backend->external_fdr_size + 4));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        ppVar60 = (page *)(ppVar50->file + file_desc.objects_per_page);\n        ppVar36 = (proc_t *)*(vlinks **)&local_98->pdr;\n        if (ppVar60 <= ppVar50) goto LAB_000251e2;\n      }\n      do {\n        uVar44 = (int)bufend - (int)pcVar26 >> 0x1f;\n        if (uVar44 < uVar54 || uVar44 - uVar54 < (uint)((uint)((int)bufend - (int)pcVar26) < uVar24)\n           ) {\n          pcVar26 = ecoff_add_bytes(local_78,local_74,pcVar26,uVar24);\n        }\n        pcVar22 = pcVar26 + uVar24;\n        ppVar55 = (page *)(ppVar50->byte + 0x294);\n        (*p_Var15)(stdoutput,(FDR *)ppVar50,pcVar26);\n        local_ac = (aux_t *)((int)local_ac + 1);\n        pcVar26 = pcVar22;\n        ppVar50 = ppVar55;\n      } while (ppVar55 < ppVar60);\n      ppVar36 = (proc_t *)*(vlinks **)&local_98->pdr;\n    } while (*(vlinks **)&local_98->pdr != (vlinks *)0x0);\n    local_9c = (page *)((int)local_9c->byte + (int)local_ac * uVar24);\n    lVar25 = __udivdi3((int)local_9c - (int)hdr->cbFdOffset,\n                       -(uint)(local_9c < (uint)hdr->cbFdOffset) -\n                       *(int *)((int)&hdr->cbFdOffset + 4),(int)backend->external_fdr_size,\n                       *(undefined4 *)((int)&backend->external_fdr_size + 4));\n  }\nLAB_000252e8:\n  hdr->ifdMax = lVar25;\n  hdr->issExtMax = 0;\n  psVar38 = symbol_rootP;\n  *(undefined4 *)&hdr->cbSsExtOffset = 0;\n  *(undefined4 *)((int)&hdr->cbSsExtOffset + 4) = 0;\n  hdr->iextMax = 0;\n  *(undefined4 *)&hdr->cbExtOffset = 0;\n  *(undefined4 *)((int)&hdr->cbExtOffset + 4) = 0;\n  for (; psVar38 != (symbolS *)0x0; psVar38 = symbol_next(psVar38)) {\n    peVar31 = symbol_get_obj(psVar38);\n    if (peVar31->ecoff_symbol != (localsym *)0x0) {\n      iVar29 = S_IS_EXTERNAL(psVar38);\n      if (((iVar29 == 0) && (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n         (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) {\n        peVar31 = symbol_get_obj(psVar38);\n        plVar7 = peVar31->ecoff_symbol;\n        uVar54 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc;\n        *(undefined4 *)&(plVar7->ecoff_sym).asym.value = 0;\n        *(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4) = 0;\n        *(uint *)&(plVar7->ecoff_sym).asym.field_0xc = uVar54 & 0x800 | 0xfffff000;\n      }\n      peVar31 = symbol_get_obj(psVar38);\n      elf_ecoff_set_ext(psVar38,&peVar31->ecoff_symbol->ecoff_sym);\n    }\n  }\n  if (((int)backend->debug_align - 1U & (uint)local_9c) == 0) {\n    hdr->vstamp = 0x30b;\n    *bufp = buf;\n    return (ulong)local_9c;\n  }\n                    /* WARNING: Subroutine does not return */\n  as_abort("../../gas/ecoff.c",0x129d,"ecoff_build_debug");\ncode_r0x00024a60:\n  local_ac = (aux_t *)((int)local_ac + 3);\n  pcVar22 = bufptr + 2;\n  bufptr[1] = (char)((uint)iVar46 >> 8);\n  bufptr = bufptr + 3;\n  *pcVar22 = (char)iVar46;\nLAB_000238d0:\n  if (0 < (int)uVar24) {\n    uVar24 = uVar24 - 1;\n    local_ac = (aux_t *)((int)local_ac + 1);\n    uVar44 = (uVar24 >> 4) + (int)local_ac;\n    if (bufend <= bufptr) goto LAB_00023925;\n    while (pcVar22 = bufptr + 1, pcVar26 = bufptr, bufptr = pcVar22, 0xf < uVar24) {\n      while( true ) {\n        uVar24 = uVar24 - 0x10;\n        *pcVar26 = '\x0f';\n        if ((aux_t *)uVar44 == local_ac) goto LAB_00023953;\n        local_ac = (aux_t *)((int)local_ac + 1);\n        if (bufptr < bufend) break;\nLAB_00023925:\n        pcVar26 = ecoff_add_bytes(&buf,&bufend,bufptr,1);\n        bufptr = pcVar26 + 1;\n        if (uVar24 < 0x10) goto LAB_00023944;\n      }\n    }\nLAB_00023944:\n    *pcVar26 = (char)uVar24;\n  }\nLAB_00023953:\n  plVar41 = local_b4->next;\n  if (plVar41 == (lineno_list *)0x0) goto LAB_00023a10;\n  local_9c = local_a4;\n  local_94 = local_b4;\n  local_98 = local_a8;\nLAB_000237a0:\n  plVar40 = plVar41->next;\n  local_b4 = plVar41;\n  goto LAB_000237a6;\nLAB_00023a10:\n  if (local_a8 != (proc_t *)0x0) {\n    (local_a8->pdr).lnHigh = local_b4->lineno;\n  }\n  if (local_a0 != (page *)0x0) {\n    pbVar1 = &((FDR *)local_a0)->cbLineOffset;\n    *(int *)&((FDR *)local_a0)->cbLine = (int)local_ac - (int)*pbVar1;\n    *(uint *)((int)&((FDR *)local_a0)->cbLine + 4) =\n         -(uint)(local_ac < (uint)*pbVar1) - *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);\n    ((FDR *)local_a0)->cline = (long)local_a4;\n  }\n  goto LAB_00023a3f;\nLAB_00024380:\n  ptVar33 = (tag *)local_64->hash_ptr;\n  if ((tag *)local_64->hash_ptr == (tag *)0x0) goto code_r0x00024393;\n  goto LAB_00023bdc;\ncode_r0x00024393:\n  ptVar33 = (tag *)((int)local_a8 - local_9c->ofile[0].isymBase);\n  local_8c = (int)local_a8;\nLAB_000243a4:\n  local_9c->sym[0].index_ptr = (ecoff_aux *)ptVar33;\n  local_9c = (page *)(local_9c->byte + 0x294);\n  if (local_54 <= local_9c) goto code_r0x000243bf;\n  goto LAB_00023bb7;\ncode_r0x000243bf:\n  pvVar35 = local_5c->next;\n  if (local_5c->next == (vlinks *)0x0) goto code_r0x000243ce;\n  goto LAB_00023b80;\ncode_r0x000243ce:\n  local_68 = local_68 + local_8c * uVar54;\n  lVar25 = __udivdi3(local_68 - (int)hdr->cbSymOffset,\n                     -(uint)(local_68 < (uint)hdr->cbSymOffset) -\n                     *(int *)((int)&hdr->cbSymOffset + 4),(int)backend->external_sym_size,\n                     *(undefined4 *)((int)&backend->external_sym_size + 4));\nLAB_0002441d:\n  plVar7 = (localsym *)file_desc.first;\n  hdr->isymMax = lVar25;\n  pcVar22 = buf + (int)hdr->cbPdOffset;\n  uVar54 = (uint)backend->external_pdr_size;\n  uVar24 = *(uint *)((int)&backend->external_pdr_size + 4);\n  p_Var13 = backend->swap_pdr_out;\n  if (plVar7 != (localsym *)0x0) {\n    uVar3 = 0;\nLAB_00024474:\n    do {\n      local_70 = plVar7;\n      local_a4 = *(page **)&local_70->addend;\n      if ((vlinks *)local_70->as_sym == (vlinks *)0x0) {\n        local_7c = (page *)(local_a4->file + file_desc.objects_last_page);\n        if (local_7c <= local_a4) break;\n      }\n      else {\n        local_7c = (page *)(local_a4->file + file_desc.objects_per_page);\n        plVar7 = (localsym *)local_70->as_sym;\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }\n      do {\n        bVar62 = true;\n        local_a4->ofile[0].ipdFirst = uVar3;\n        pvVar35 = local_a4->file[0].procs.first;\n        if (pvVar35 != (vlinks_t *)0x0) {\nLAB_000244d8:\n          do {\n            local_88 = pvVar35;\n            if (local_88->next == (vlinks *)0x0) {\n              ppVar50 = local_88->datum;\n              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xb0) * 0x44);\n              if (local_a0 <= ppVar50) break;\n            }\n            else {\n              ppVar50 = local_88->datum;\n              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xae) * 0x44);\n              pvVar35 = local_88->next;\n              if (local_a0 <= ppVar50) goto LAB_000244d8;\n            }\n            do {\n              psVar38 = (ppVar50->proc[0].sym)->as_sym;\n              vVar65 = S_GET_VALUE(psVar38);\n              paVar23 = S_GET_SEGMENT(psVar38);\n              plVar45 = (localsym_t *)((int)vVar65 + (int)paVar23->vma);\n              if (bVar62) {\n                iVar29 = 0;\n                local_a4->proc[0].sym = plVar45;\n                iVar46 = 0;\n                local_a4->sym[0].as_sym = (symbolS *)0x0;\n              }\n              else {\n                iVar29 = (int)plVar45 - local_a4->aux[0].type;\n                iVar46 = -(uint)(plVar45 < local_a4->proc[0].sym) - local_a4->dense[0].index;\n              }\n              *(int *)((int)ppVar50 + 4) = iVar29;\n              *(int *)((int)ppVar50 + 8) = iVar46;\n              uVar44 = (int)bufend - (int)pcVar22 >> 0x1f;\n              if (uVar44 < uVar24 ||\n                  uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)pcVar22) < uVar54)) {\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }\n              pPVar2 = (PDR *)((int)ppVar50 + 4);\n              ppVar50 = (page *)((int)ppVar50 + 0x44);\n              (*p_Var13)(stdoutput,pPVar2,pcVar22);\n              pcVar22 = pcVar22 + uVar54;\n              bVar62 = false;\n              uVar3 = uVar3 + 1;\n            } while (ppVar50 < local_a0);\n            pvVar35 = local_88->next;\n          } while (local_88->next != (vlinks *)0x0);\n          pvVar35 = (vlinks_t *)(uint)(ushort)(uVar3 - local_a4->ofile[0].ipdFirst);\n        }\n        local_a4->ofile[0].cpd = (short)pvVar35;\n        local_a4 = (page *)(local_a4->byte + 0x294);\n      } while (local_a4 < local_7c);\n      plVar7 = (localsym *)local_70->as_sym;\n    } while ((vlinks *)local_70->as_sym != (vlinks *)0x0);\n    plVar18 = (lineno_list_t *)file_desc.first;\n    hdr->ioptMax = 0;\n    *(undefined4 *)&hdr->cbOptOffset = 0;\n    *(undefined4 *)((int)&hdr->cbOptOffset + 4) = 0;\n    *(undefined4 *)((int)&hdr->cbAuxOffset + 4) = 0;\n    *(uint *)&hdr->cbAuxOffset = local_68;\n    bVar14 = stdoutput->xvec->byteorder;\n    bufptr_00 = (tir_ext *)(buf + local_68);\n    if (plVar18 != (lineno_list_t *)0x0) {\n      iVar29 = 0;\nLAB_00024d54:\n      do {\n        local_94 = plVar18;\n        local_a0 = (page *)local_94->proc;\n        if ((vlinks *)local_94->file == (vlinks *)0x0) {\n          local_9c = (page *)(local_a0->file + file_desc.objects_last_page);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (page *)(local_a0->file + file_desc.objects_per_page);\n          plVar18 = (lineno_list_t *)local_94->file;\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          local_a0->ofile[0].iauxBase = iVar29;\n          local_a0->ubyte[0x44] = local_a0->ubyte[0x44] & 0x7f | (bVar14 == BFD_ENDIAN_BIG) << 7;\n          ppVar36 = (proc_t *)local_a0->forward[0xb].free;\n          if (ppVar36 != (proc_t *)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppVar36;\n              paVar53 = *(aux_t **)((int)local_a8 + 8);\n              if (*(forward **)&local_a8->pdr == (forward *)0x0) {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc4);\n                if (local_ac <= paVar53) break;\n              }\n              else {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc2);\n                ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n                if (local_ac <= paVar53) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)bufend - (int)bufptr_00) < 4) {\n                  bufptr_00 = (tir_ext *)ecoff_add_bytes(local_78,local_74,(char *)bufptr_00,4);\n                }\n                iVar46 = SUB14(bVar14 == BFD_ENDIAN_BIG,0);\n                switch(paVar53->type) {\n                case aux_tir:\n                  (*backend->swap_tir_out)(iVar46,&(paVar53->data).ti,bufptr_00);\n                  break;\n                case aux_rndx:\n                  (*backend->swap_rndx_out)(iVar46,&(paVar53->data).rndx,(rndx_ext *)bufptr_00);\n                  break;\n                case aux_dnLow:\n                case aux_dnHigh:\n                case aux_isym:\n                case aux_iss:\n                case aux_width:\n                case aux_count:\n                  iVar46 = (paVar53->data).dnLow;\n                  if (bVar14 == BFD_ENDIAN_BIG) {\n                    bfd_putb32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                  else {\n                    bfd_putl32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                }\n                bufptr_00 = bufptr_00 + 1;\n                iVar29 = iVar29 + 1;\n                paVar53 = paVar53 + 1;\n              } while (paVar53 < local_ac);\n              ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n            } while (*(forward **)&local_a8->pdr != (forward *)0x0);\n            ppVar36 = (proc_t *)(iVar29 - local_a0->ofile[0].iauxBase);\n          }\n          local_a0->forward[3].ifd_ptr = (aux_t *)ppVar36;\n          local_a0 = (page *)(local_a0->byte + 0x294);\n        } while (local_a0 < local_9c);\n        plVar18 = (lineno_list_t *)local_94->file;\n      } while ((vlinks *)local_94->file != (vlinks *)0x0);\n      local_68 = local_68 + iVar29 * 4;\n    }\n    goto LAB_00024eaa;\n  }\n  goto LAB_0002554e;\n}" type_identifier (function_declarator "ecoff_build_debug(HDRR *hdr,char **bufp,ecoff_debug_swap *backend)" identifier (parameter_list "(HDRR *hdr,char **bufp,ecoff_debug_swap *backend)" ( (parameter_declaration "HDRR *hdr" type_identifier (pointer_declarator "*hdr" * identifier)) , (parameter_declaration "char **bufp" primitive_type (pointer_declarator "**bufp" * (pointer_declarator "*bufp" * identifier))) , (parameter_declaration "ecoff_debug_swap *backend" type_identifier (pointer_declarator "*backend" * identifier)) ))) (compound_statement "{\n  bfd_vma *pbVar1;\n  PDR *pPVar2;\n  ushort uVar3;\n  small_free_t sVar4;\n  fragS *pfVar5;\n  _func_void_bfd_ptr_SYMR_ptr_void_ptr *p_Var6;\n  localsym *plVar7;\n  symbolS *psVar8;\n  localsym *plVar9;\n  AUXU AVar10;\n  ecoff_proc *peVar11;\n  undefined4 uVar12;\n  _func_void_bfd_ptr_PDR_ptr_void_ptr *p_Var13;\n  bfd_endian bVar14;\n  _func_void_bfd_ptr_FDR_ptr_void_ptr *p_Var15;\n  ulonglong uVar16;\n  bfd_vma bVar17;\n  lineno_list_t *plVar18;\n  small_free_t sVar19;\n  byte bVar20;\n  tag_t *ptag;\n  scope_t *psVar21;\n  char *pcVar22;\n  segT paVar23;\n  uint uVar24;\n  long lVar25;\n  char *pcVar26;\n  segT paVar27;\n  segT paVar28;\n  int iVar29;\n  asymbol *paVar30;\n  elf_obj_sy *peVar31;\n  forward *pfVar32;\n  tag *ptVar33;\n  symint_t sVar34;\n  vlinks_t *pvVar35;\n  proc_t *ppVar36;\n  ulong uVar37;\n  tir_ext *bufptr_00;\n  symbolS *psVar38;\n  char cVar39;\n  lineno_list *plVar40;\n  lineno_list *plVar41;\n  byte bVar42;\n  efdr_t *peVar43;\n  uint uVar44;\n  localsym_t *plVar45;\n  int iVar46;\n  efdr *peVar47;\n  ulong uVar48;\n  uint uVar49;\n  page *ppVar50;\n  byte *pbVar51;\n  byte *pbVar52;\n  aux_t *paVar53;\n  uint uVar54;\n  page *ppVar55;\n  char cVar56;\n  uint uVar57;\n  byte *pbVar58;\n  int iVar59;\n  page *ppVar60;\n  bool bVar61;\n  bool bVar62;\n  bool bVar63;\n  byte bVar64;\n  valueT vVar65;\n  valueT vVar66;\n  lineno_list_t *local_b4;\n  int local_b0;\n  aux_t *local_ac;\n  proc_t *local_a8;\n  page *local_a4;\n  page *local_a0;\n  page *local_9c;\n  proc_t *local_98;\n  lineno_list_t *local_94;\n  int local_8c;\n  vlinks_t *local_88;\n  page *local_7c;\n  char **local_78;\n  char **local_74;\n  localsym *local_70;\n  uint local_68;\n  tag *local_64;\n  vlinks_t *local_5c;\n  page *local_54;\n  char *buf;\n  char *bufend;\n  char *bufptr;\n  lineno_list_t first;\n  \n  bVar64 = 0;\n  uVar54 = (uint)backend->external_pdr_size;\n  iVar29 = *(int *)((int)&backend->external_pdr_size + 4);\n  if (first_file == (efdr_t *)0x0) {\n    add_file((char *)0x0,1,0);\n  }\n  sVar19 = (small_free_t)top_tag_head->first_tag;\n  ppVar36 = cur_proc_ptr;\n  while (cur_proc_ptr = ppVar36, (tag *)sVar19.f_scope != (tag *)0x0) {\n    ptag = (tag_t *)(sVar19.f_tag)->hash_ptr;\n    if ((sVar19.f_tag)->forward_ref != (forward *)0x0) {\n      add_unknown_tag(ptag,(tag_t *)&(sVar19.f_tag)->forward_ref);\n      ptag = (tag_t *)(sVar19.f_tag)->hash_ptr;\n    }\n    sVar4 = (small_free_t)(sVar19.f_scope)->type;\n    alloc_counts[5].total_free = alloc_counts[5].total_free + 1;\n    ptag->basic_type = (bt_t)(sVar19.f_scope)->lsym;\n    (sVar19.f_scope)->prev = (scope *)alloc_counts[5].free_list;\n    alloc_counts[5].free_list = sVar19;\n    sVar19 = sVar4;\n    ppVar36 = cur_proc_ptr;\n  }\n  alloc_counts[7].total_free = alloc_counts[7].total_free + 1;\n  sVar19 = top_tag_head;\n  ((scope_t *)top_tag_head)->free = (scope *)alloc_counts[7].free_list;\n  alloc_counts[7].free_list = sVar19;\n  peVar43 = cur_file_ptr;\n  cur_proc_ptr = (proc_t *)0x0;\n  for (psVar38 = symbol_rootP; psVar38 != (symbolS *)0x0; psVar38 = symbol_next(psVar38)) {\n    peVar31 = symbol_get_obj(psVar38);\n    if (((peVar31->ecoff_symbol == (localsym *)0x0) &&\n        (peVar31 = symbol_get_obj(psVar38), peVar31->ecoff_file != (efdr *)0x0)) &&\n       (paVar30 = symbol_get_bfdsym(psVar38), (paVar30->flags & 0x100) == 0)) {\n      peVar31 = symbol_get_obj(psVar38);\n      cur_file_ptr = peVar31->ecoff_file;\n      vVar65 = S_GET_VALUE(psVar38);\n      add_ecoff_symbol((char *)0x0,st_Nil,sc_Nil,psVar38,0,(symint_t)vVar65,0xfffff);\n    }\n  }\n  bVar62 = false;\n  cur_proc_ptr = ppVar36;\n  cur_file_ptr = peVar43;\n  peVar47 = first_file;\njoined_r0x000235e4:\n  if (peVar47 != (efdr_t *)0x0) {\n    psVar21 = peVar47->cur_scope;\n    peVar43 = peVar47;\n    cur_file_ptr = peVar47;\n    while (psVar21 != (scope_t *)0x0) {\n      while( true ) {\n        psVar21 = psVar21->prev;\n        if (psVar21 == (scope *)0x0) {\n          add_ecoff_symbol((char *)0x0,st_End,sc_Text,(symbolS *)0x0,0,0,0);\n          peVar47 = peVar47->next_file;\n          goto joined_r0x000235e4;\n        }\n        peVar43->cur_scope = psVar21;\n        if ((bVar62) || (peVar43->fake != 0)) break;\n        bVar62 = true;\n        pcVar22 = (char *)dcgettext(0,"missing .end or .bend at end of file",5);\n        as_warn(pcVar22);\n        psVar21 = cur_file_ptr->cur_scope;\n        peVar43 = cur_file_ptr;\n        if (psVar21 == (scope_t *)0x0) goto LAB_00023650;\n      }\n    }\nLAB_00023650:\n    peVar47 = peVar47->next_file;\n    goto joined_r0x000235e4;\n  }\n  buf = (char *)xmalloc(0x2000);\n  plVar40 = first_lineno;\n  local_b4 = first_lineno;\n  bufend = buf + 0x2000;\n  bVar62 = debug_type == DEBUG_ECOFF;\n  *(undefined4 *)&hdr->cbLineOffset = 0;\n  *(undefined4 *)((int)&hdr->cbLineOffset + 4) = 0;\n  hdr->ilineMax = 0;\n  bufptr = buf;\n  if ((bVar62) || (first_proc_ptr == (proc_t *)0x0)) {\n    if (plVar40 != (lineno_list_t *)0x0) {\n      plVar40 = plVar40->next;\n      goto LAB_00023764;\n    }\n  }\n  else if (plVar40 != (lineno_list_t *)0x0) {\n    vVar65 = S_GET_VALUE(first_proc_ptr->sym->as_sym);\n    paVar23 = S_GET_SEGMENT(first_proc_ptr->sym->as_sym);\n    if ((int)(vVar65 >> 0x20) + *(int *)((int)&paVar23->vma + 4) +\n        (uint)CARRY4((uint)vVar65,(uint)paVar23->vma) == 0 && (uint)vVar65 + (int)paVar23->vma == 0)\n    {\n      plVar40 = plVar40->next;\n    }\n    else {\n      first.file = plVar40->file;\n      first.paddr = 0;\n      first.proc = plVar40->proc;\n      first.lineno = 0;\n      first.frag = &zero_address_frag;\n      first.next = local_b4;\n      local_b4 = &first;\n    }\nLAB_00023764:\n    local_9c = (page *)0x0;\n    local_ac = (aux_t *)0x0;\n    local_94 = (lineno_list_t *)0x0;\n    local_a0 = (page *)0x0;\n    local_98 = (proc_t *)0x0;\nLAB_000237a6:\n    plVar41 = plVar40;\n    if (plVar41 == (lineno_list *)0x0) {\n      uVar24 = 1;\nLAB_000237e1:\n      peVar43 = local_b4->file;\n      local_a8 = local_b4->proc;\n      local_a4 = (page *)((int)local_9c + uVar24);\n      if ((page *)peVar43 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (proc_t *)0x0) {\n            (local_98->pdr).lnHigh = local_94->lineno;\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (lineno_list_t *)0x0) &&\n           (iVar46 = local_b4->lineno - local_94->lineno, iVar46 != 0)) {\n          do {\n            iVar59 = uVar24 - 1;\n            if (iVar59 < 0x10) {\n              uVar24 = 0;\n            }\n            else {\n              uVar24 = uVar24 - 0x10;\n              iVar59 = 0xf;\n            }\n            if (iVar46 + 7U < 0xf) {\n              if (bufend <= bufptr) {\n                bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,1);\n              }\n              local_ac = (aux_t *)((int)local_ac + 1);\n              *bufptr = (char)iVar46 * '\x10' + (char)iVar59;\n              bufptr = bufptr + 1;\n              break;\n            }\n            if ((int)bufend - (int)bufptr < 3) {\n              bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,3);\n            }\n            *bufptr = (char)iVar59 + -0x80;\n            if (iVar46 < -0x8000) {\n              iVar46 = iVar46 + 0x8000;\n              cVar56 = -0x80;\n              cVar39 = '\0';\n            }\n            else {\n              if (iVar46 < 0x8000) goto code_r0x00024a60;\n              iVar46 = iVar46 + -0x7fff;\n              cVar56 = '\x7f';\n              cVar39 = -1;\n            }\n            local_ac = (aux_t *)((int)local_ac + 3);\n            pcVar22 = bufptr + 2;\n            bufptr[1] = cVar56;\n            bufptr = bufptr + 3;\n            *pcVar22 = cVar39;\n          } while( true );\n        }\n      }\n      else {\n        bVar62 = local_98 != local_a8;\n        if (local_98 != (proc_t *)0x0 && bVar62) {\n          (local_98->pdr).lnHigh = local_94->lineno;\n          bVar62 = local_98 != (proc_t *)0x0 && bVar62;\n        }\n        lVar25 = 0;\n        if (local_a0 != (page *)0x0) {\n          local_9c = (page *)0x0;\n          pbVar1 = &((FDR *)local_a0)->cbLineOffset;\n          bVar17 = *pbVar1;\n          *(uint *)((int)&((FDR *)local_a0)->cbLine + 4) =\n               -(uint)(local_ac < (uint)*pbVar1) -\n               *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);\n          *(int *)&((FDR *)local_a0)->cbLine = (int)local_ac - (int)bVar17;\n          ((FDR *)local_a0)->cline = (long)local_a4;\n          hdr->ilineMax = hdr->ilineMax + (int)local_a4->byte;\n          lVar25 = ((FDR *)local_a0)->cline + ((FDR *)local_a0)->ilineBase;\n          local_a4 = (page *)uVar24;\n        }\n        (peVar43->fdr).ilineBase = lVar25;\n        *(aux_t **)&(peVar43->fdr).cbLineOffset = local_ac;\n        *(undefined4 *)((int)&(peVar43->fdr).cbLineOffset + 4) = 0;\n        local_a0 = (page *)peVar43;\n        if (bVar62) {\nLAB_000238a1:\n          if (local_a8 != (proc_t *)0x0) {\n            (local_a8->pdr).lnLow = local_b4->lineno;\n            pbVar1 = &((FDR *)local_a0)->cbLineOffset;\n            bVar17 = *pbVar1;\n            iVar46 = *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);\n            *(int *)&(local_a8->pdr).cbLineOffset = (int)local_ac - (int)*pbVar1;\n            *(uint *)((int)&(local_a8->pdr).cbLineOffset + 4) =\n                 -(uint)(local_ac < (uint)bVar17) - iVar46;\n            (local_a8->pdr).iline = (long)local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }\n      goto LAB_000238d0;\n    }\n    pfVar5 = plVar41->frag;\n    uVar49 = plVar41->paddr + (int)pfVar5->fr_address;\n    uVar57 = *(int *)((int)&pfVar5->fr_address + 4) +\n             (uint)CARRY4(plVar41->paddr,(uint)pfVar5->fr_address);\n    pfVar5 = local_b4->frag;\n    uVar24 = local_b4->paddr + (int)pfVar5->fr_address;\n    uVar44 = *(int *)((int)&pfVar5->fr_address + 4) +\n             (uint)CARRY4(local_b4->paddr,(uint)pfVar5->fr_address);\n    if (uVar44 < uVar57 || uVar44 - uVar57 < (uint)(uVar24 < uVar49)) {\n      uVar24 = uVar49 - uVar24 >> 2 | ((uVar57 - uVar44) - (uint)(uVar49 < uVar24)) * 0x40000000;\n      goto LAB_000237e1;\n    }\n    goto LAB_000237a0;\n  }\n  local_a4 = (page *)0x0;\n  local_ac = (aux_t *)0x0;\nLAB_00023a3f:\n  local_74 = &bufend;\n  local_78 = &buf;\n  hdr->ilineMax = hdr->ilineMax + (int)local_a4;\n  local_68 = ecoff_padding_adjust(backend,local_78,local_74,(ulong)local_ac,&bufptr);\n  iVar46 = *(int *)((int)&hdr->cbLineOffset + 4);\n  *(uint *)&hdr->cbPdOffset = local_68;\n  *(uint *)&hdr->cbLine = local_68 - (int)hdr->cbLineOffset;\n  uVar48 = proc_cnt;\n  *(uint *)((int)&hdr->cbLine + 4) = -(uint)(local_68 < (uint)hdr->cbLineOffset) - iVar46;\n  *(undefined4 *)((int)&hdr->cbPdOffset + 4) = 0;\n  hdr->idnMax = 0;\n  *(undefined4 *)&hdr->cbDnOffset = 0;\n  *(undefined4 *)((int)&hdr->cbDnOffset + 4) = 0;\n  hdr->ipdMax = uVar48;\n  uVar44 = (int)bufend - (int)(buf + local_68);\n  uVar24 = (int)uVar44 >> 0x1f;\n  uVar49 = (int)((ulonglong)uVar54 * (ulonglong)uVar48 >> 0x20) + iVar29 * uVar48;\n  if (uVar24 < uVar49 ||\n      uVar24 - uVar49 < (uint)(uVar44 < (uint)((ulonglong)uVar54 * (ulonglong)uVar48))) {\n    ecoff_add_bytes(local_78,local_74,buf + local_68,uVar48 * uVar54);\n    uVar48 = proc_cnt;\n  }\n  local_68 = uVar48 * uVar54 + local_68;\n  uVar54 = (uint)backend->external_sym_size;\n  local_a0 = (page *)(buf + local_68);\n  *(uint *)&hdr->cbSymOffset = local_68;\n  uVar24 = *(uint *)((int)&backend->external_sym_size + 4);\n  *(undefined4 *)((int)&hdr->cbSymOffset + 4) = 0;\n  p_Var6 = backend->swap_sym_out;\n  if (file_desc.first != (vlinks_t *)0x0) {\n    local_8c = 0;\n    paVar23 = (segT)(PTR__bfd_std_section_00077fa0 + 0x180);\n    pvVar35 = file_desc.first;\nLAB_00023b80:\n    local_5c = pvVar35;\n    local_9c = local_5c->datum;\n    if (local_5c->next == (vlinks *)0x0) {\n      local_54 = (page *)(local_9c->file + file_desc.objects_last_page);\n      if (local_54 <= local_9c) {\n        local_68 = local_68 + local_8c * uVar54;\n        lVar25 = __udivdi3(local_68 - (int)hdr->cbSymOffset,\n                           -(uint)(local_68 < (uint)hdr->cbSymOffset) -\n                           *(int *)((int)&hdr->cbSymOffset + 4),(int)backend->external_sym_size,\n                           *(undefined4 *)((int)&backend->external_sym_size + 4));\n        goto LAB_0002441d;\n      }\n    }\n    else {\n      local_54 = (page *)(local_9c->file + file_desc.objects_per_page);\n      pvVar35 = local_5c->next;\n      if (local_54 <= local_9c) goto LAB_00023b80;\n    }\nLAB_00023bb7:\n    local_9c->ofile[0].isymBase = local_8c;\n    ptVar33 = local_9c->tag[4].same_block;\n    if (ptVar33 != (tag *)0x0) {\n      local_a8 = (proc_t *)local_8c;\nLAB_00023bdc:\n      local_64 = ptVar33;\n      plVar7 = (localsym *)local_64->same_name;\n      if ((tag *)local_64->hash_ptr == (tag *)0x0) {\n        local_70 = plVar7 + *(ushort *)(local_9c->byte + 0x9c);\n        if (local_70 <= plVar7) {\n          local_8c = (int)local_a8;\n          ptVar33 = (tag *)((int)local_a8 - local_9c->ofile[0].isymBase);\n          goto LAB_000243a4;\n        }\n      }\n      else {\n        local_70 = plVar7 + *(ushort *)(local_9c->byte + 0x9a);\n        ptVar33 = (tag *)local_64->hash_ptr;\n        if (local_70 <= plVar7) goto LAB_00023bdc;\n      }\n      ppVar50 = (page *)plVar7->file_ptr;\n      do {\n        if (ppVar50 != local_9c) {\n                    /* WARNING: Subroutine does not return */\n          as_abort("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }\n        psVar38 = plVar7->as_sym;\n        if (psVar38 == (symbolS *)0x0) {\n          plVar9 = plVar7->begin_ptr;\n          if (plVar9 == (localsym *)0x0) {\n            pfVar32 = plVar7->forward_ref;\njoined_r0x000242a4:\n            if (pfVar32 != (forward *)0x0) {\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              goto LAB_00023ff8;\n            }\n          }\n          else {\nLAB_00023e89:\n            iVar29 = plVar9->sym_index;\n            if (iVar29 == -1) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n            }\n            uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff | iVar29 << 0xc;\n            *(uint *)&(plVar7->ecoff_sym).asym.field_0xc = uVar44;\n            if (((ushort)uVar44 & 0x7c0) != 0x2c0) {\n              (plVar7->ecoff_sym).asym.iss = (plVar9->ecoff_sym).asym.iss;\n            }\n            bVar20 = (plVar9->ecoff_sym).asym.field_0xc;\n            if (((bVar20 & 0x3f) + 0x39 & 0x3b) == 0) {\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              *(uint *)&(plVar9->ecoff_sym).asym.field_0xc =\n                   *(uint *)&(plVar9->ecoff_sym).asym.field_0xc & 0xfff |\n                   ((int)local_a4->byte + 1) * 0x1000;\n              (*p_Var6)(stdoutput,&(plVar9->ecoff_sym).asym,buf + iVar29 * uVar54 + local_68);\n              if ((bVar20 & 0x37) == 6) goto LAB_00024180;\n              if (((bVar20 & 0x3f) == 7) &&\n                 ((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7c0) != 0x2c0)) {\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                }\n                if (plVar7->proc_ptr == (ecoff_proc *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                }\n                psVar8 = plVar7->proc_ptr->sym->as_sym;\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(psVar8);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(psVar8);\n                local_b4 = (lineno_list_t *)vVar65;\n                local_b0 = (int)(vVar65 >> 0x20);\n                pfVar32 = plVar7->forward_ref;\n                *(uint *)&(plVar7->ecoff_sym).asym.value = (int)local_b4 - (uint)vVar66;\n                *(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                     (local_b0 - (int)(vVar66 >> 0x20)) - (uint)(local_b4 < (uint)vVar66);\n              }\n              else {\n                pfVar32 = plVar7->forward_ref;\n              }\n            }\n            else {\n              if (plVar9->index_ptr == (ecoff_aux *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n              }\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              (plVar9->index_ptr->data).dnLow = (int)local_a4->byte + 1;\n              if ((bVar20 & 0x37) == 6) {\nLAB_00024180:\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n                }\n                if (plVar9->as_sym == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n                }\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(plVar9->as_sym);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(plVar9->as_sym);\n                uVar16 = vVar65 - vVar66;\n                if ((uVar16 & 1) == 0) {\n                  (plVar7->ecoff_sym).asym.value = uVar16;\n                }\n                else {\n                  (plVar7->ecoff_sym).asym.value = uVar16 + 1;\n                }\n                paVar30 = symbol_get_bfdsym(plVar9->as_sym);\n                uVar12 = *(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4);\n                *(int *)&paVar30[1].value = (int)(plVar7->ecoff_sym).asym.value;\n                *(undefined4 *)((int)&paVar30[1].value + 4) = uVar12;\n                pfVar32 = plVar7->forward_ref;\n                goto joined_r0x000242a4;\n              }\n              pfVar32 = plVar7->forward_ref;\n            }\njoined_r0x000247a5:\n            if (pfVar32 != (forward *)0x0) {\nLAB_00023ff8:\n              AVar10 = (AUXU)local_9c->file[0].file_index;\n              do {\n                paVar53 = pfVar32->index_ptr;\n                pfVar32->ifd_ptr->data = AVar10;\n                (paVar53->data).dnLow = (paVar53->data).dnLow & 0xfffU | (int)local_a4 << 0xc;\n                pfVar32 = pfVar32->next;\n              } while (pfVar32 != (forward *)0x0);\n            }\n          }\nLAB_0002402d:\n          uVar44 = (int)bufend - (int)local_a0->byte >> 0x1f;\n          if (uVar44 < uVar24 ||\n              uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)local_a0->byte) < uVar54)) {\n            local_a0 = (page *)ecoff_add_bytes(local_78,local_74,local_a0->byte,uVar54);\n          }\n          (*p_Var6)(stdoutput,&(plVar7->ecoff_sym).asym,local_a0);\n          local_a0 = (page *)((int)local_a0 + uVar54);\n          plVar7->sym_index = (long)local_a8;\n          peVar11 = plVar7->proc_ptr;\n          if ((peVar11 != (ecoff_proc *)0x0) && (peVar11->sym == plVar7)) {\n            (peVar11->pdr).isym = (int)local_a8 - local_8c;\n          }\n          local_a8 = (proc_t *)((int)local_a8 + 1);\n          if ((psVar38 != (symbolS *)0x0) &&\n             (peVar31 = symbol_get_obj(psVar38), peVar31->ecoff_symbol == plVar7)) {\n            if (((plVar7->ecoff_sym).asym.field_0xc & 0x37) == 6) {\n              *(uint *)&(plVar7->ecoff_sym).asym.field_0xc =\n                   *(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff |\n                   (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          if ((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff) == 0x47) {\n            if (plVar7->proc_ptr == (ecoff_proc *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n            }\n            psVar8 = plVar7->proc_ptr->sym->as_sym;\n            paVar27 = S_GET_SEGMENT(psVar38);\n            paVar28 = S_GET_SEGMENT(psVar8);\n            if (paVar27 != paVar28) {\n              pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n              as_warn(pcVar22);\n            }\n            vVar65 = S_GET_VALUE(psVar38);\n            vVar66 = S_GET_VALUE(psVar8);\n            (plVar7->ecoff_sym).asym.value = vVar65 - vVar66;\n          }\n          else {\n            vVar65 = S_GET_VALUE(psVar38);\n            paVar27 = S_GET_SEGMENT(psVar38);\n            ptVar33 = *(tag **)&plVar7->addend;\n            uVar44 = (int)&(*(tag **)&plVar7->addend)->free + (uint)vVar65;\n            bVar17 = paVar27->vma;\n            iVar29 = *(int *)((int)&paVar27->vma + 4);\n            *(uint *)&(plVar7->ecoff_sym).asym.value = uVar44 + (int)paVar27->vma;\n            *(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                 (int)&(*(tag **)((int)&plVar7->addend + 4))->free +\n                 (uint)CARRY4(uVar44,(uint)bVar17) +\n                 iVar29 + (uint)CARRY4((uint)vVar65,(uint)ptVar33) + (int)(vVar65 >> 0x20);\n          }\n          iVar29 = S_IS_WEAK(psVar38);\n          *(byte *)&plVar7->ecoff_sym =\n               *(byte *)&plVar7->ecoff_sym & 0xfb | ((byte)iVar29 & 1) * '\x04';\n          if ((((((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 6) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) &&\n              (iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0)) &&\n             (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) {\n            (plVar7->ecoff_sym).asym.field_0xc = (plVar7->ecoff_sym).asym.field_0xc & 0xc0 | 0xe;\n          }\n          if (((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff) == 0) &&\n             ((uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc,\n              (uVar44 & 0xfff00) != 0x8f300 || ((uVar44 & 0xfffdf) != 0x8f3c0)))) {\n            paVar27 = S_GET_SEGMENT(psVar38);\n            pbVar52 = (byte *)paVar27->name;\n            if (((*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300) ||\n               (((iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0 &&\n                 (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n                (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)))) {\n              bVar20 = (paVar27 == text_section) * '\x03' + 2;\n            }\n            else {\n              paVar30 = symbol_get_bfdsym(psVar38);\n              bVar20 = (-((paVar30->flags & 8) == 0) & 0xfbU) + 6;\n            }\n            iVar29 = S_IS_DEFINED(psVar38);\n            if (iVar29 == 0) {\n              peVar31 = symbol_get_obj(psVar38);\n              iVar29 = *(int *)((int)&peVar31->ecoff_extern_size + 4);\n              uVar49 = (uint)peVar31->ecoff_extern_size;\n              if ((iVar29 == 0 && uVar49 == 0) ||\n                 (uVar44 = bfd_get_gp_size(stdoutput),\n                 iVar29 != 0 || (uint)-iVar29 < (uint)(uVar44 < uVar49))) {\n                bVar42 = 6;\n              }\n              else {\n                *(uint *)&(plVar7->ecoff_sym).asym.value = uVar49;\n                bVar42 = 0x15;\n                *(int *)((int)&(plVar7->ecoff_sym).asym.value + 4) = iVar29;\n              }\n              paVar30 = symbol_get_bfdsym(psVar38);\n              uVar44 = (uint)bVar42;\n              *(uint *)&paVar30[1].value = uVar49;\n              *(int *)((int)&paVar30[1].value + 4) = iVar29;\n            }\n            else {\n              iVar29 = S_IS_COMMON(psVar38);\n              if (iVar29 == 0) {\n                uVar44 = 1;\n                if (paVar27 != text_section) {\n                  uVar44 = 2;\n                  bVar62 = paVar27 < data_section;\n                  bVar63 = paVar27 == data_section;\n                  if (!bVar63) {\n                    iVar29 = 7;\n                    uVar44 = 0xf;\n                    pbVar51 = pbVar52;\n                    pbVar58 = (byte *)".rdata";\n                    do {\n                      if (iVar29 == 0) break;\n                      iVar29 = iVar29 + -1;\n                      bVar62 = *pbVar51 < *pbVar58;\n                      bVar63 = *pbVar51 == *pbVar58;\n                      pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                      pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                    } while (bVar63);\n                    bVar61 = false;\n                    bVar62 = (!bVar62 && !bVar63) == bVar62;\n                    if (!bVar62) {\n                      iVar29 = 8;\n                      pbVar51 = pbVar52;\n                      pbVar58 = (byte *)".rodata";\n                      do {\n                        if (iVar29 == 0) break;\n                        iVar29 = iVar29 + -1;\n                        bVar61 = *pbVar51 < *pbVar58;\n                        bVar62 = *pbVar51 == *pbVar58;\n                        pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                        pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                      } while (bVar62);\n                      bVar63 = false;\n                      bVar62 = (!bVar61 && !bVar62) == bVar61;\n                      if (!bVar62) {\n                        iVar29 = 7;\n                        uVar44 = 0xd;\n                        pbVar51 = pbVar52;\n                        pbVar58 = (byte *)".sdata";\n                        do {\n                          if (iVar29 == 0) break;\n                          iVar29 = iVar29 + -1;\n                          bVar63 = *pbVar51 < *pbVar58;\n                          bVar62 = *pbVar51 == *pbVar58;\n                          pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                          pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                        } while (bVar62);\n                        if ((!bVar63 && !bVar62) != bVar63) {\n                          uVar44 = 3;\n                          bVar62 = paVar27 < bss_section;\n                          bVar63 = paVar27 == bss_section;\n                          if (!bVar63) {\n                            iVar29 = 6;\n                            uVar44 = 0xe;\n                            pbVar51 = (byte *)".sbss";\n                            do {\n                              if (iVar29 == 0) break;\n                              iVar29 = iVar29 + -1;\n                              bVar62 = *pbVar52 < *pbVar51;\n                              bVar63 = *pbVar52 == *pbVar51;\n                              pbVar52 = pbVar52 + (uint)bVar64 * -2 + 1;\n                              pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                            } while (bVar63);\n                            if ((!bVar62 && !bVar63) != bVar62) {\n                              uVar44 = (uint)(paVar27 == paVar23) * 3 + 2;\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                vVar65 = S_GET_VALUE(psVar38);\n                if (vVar65 != 0) {\n                  vVar65 = S_GET_VALUE(psVar38);\n                  iVar29 = (int)(vVar65 >> 0x20);\n                  uVar49 = bfd_get_gp_size(stdoutput);\n                  uVar44 = 0x12;\n                  if (iVar29 == 0 && (uint)(uVar49 < (uint)vVar65) <= (uint)-iVar29)\n                  goto LAB_00023df1;\n                }\n                uVar44 = 0x11;\n              }\n            }\nLAB_00023df1:\n            (plVar7->ecoff_sym).asym.field_0xc =\n                 (plVar7->ecoff_sym).asym.field_0xc & 0xc0 | bVar20 & 0x3f;\n            *(ushort *)&(plVar7->ecoff_sym).asym.field_0xc =\n                 *(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0xf83f | (ushort)(uVar44 << 6);\n          }\n          iVar29 = S_IS_EXTERNAL(psVar38);\n          if (((((iVar29 == 0) && (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) ||\n              ((plVar7->proc_ptr != (ecoff_proc *)0x0 ||\n               (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 0)))) ||\n             ((*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300)) {\n            iVar29 = S_IS_COMMON(psVar38);\n            if (iVar29 == 0) {\n              if (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) != 8) {\n                ptVar33 = (tag *)plVar7->name;\n                pcVar22 = strchr((char *)ptVar33,1);\n                if (pcVar22 != (char *)0x0) goto LAB_00023e7a;\n                sVar34 = add_string(&local_9c->file[0].strings,local_9c->file[0].str_hash,\n                                    (char *)ptVar33,(shash_t **)0x0);\n                (plVar7->ecoff_sym).asym.iss = sVar34;\n                plVar9 = plVar7->begin_ptr;\n                if (plVar9 != (localsym *)0x0) goto LAB_00023e89;\n                pfVar32 = plVar7->forward_ref;\n                local_a4 = (page *)((int)local_a8 - local_8c);\n                goto joined_r0x000247a5;\n              }\nLAB_00023e7a:\n              plVar9 = plVar7->begin_ptr;\n              if (plVar9 != (localsym *)0x0) goto LAB_00023e89;\n              pfVar32 = plVar7->forward_ref;\n              if (pfVar32 != (forward *)0x0) {\n                local_a4 = (page *)((int)local_a8 - local_8c);\n                goto LAB_00023ff8;\n              }\n              goto LAB_0002402d;\n            }\n          }\n          else {\n            S_IS_COMMON(psVar38);\n          }\n          if (plVar7->begin_ptr != (localsym *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (plVar7->forward_ref != (forward *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          peVar31 = symbol_get_obj(psVar38);\n          if (plVar7 == peVar31->ecoff_symbol) {\nLAB_00024347:\n            (plVar7->ecoff_sym).ifd = local_9c->file[0].file_index;\n            iVar29 = S_IS_EXTERNAL(psVar38);\n            if ((iVar29 != 0) || (iVar29 = S_IS_WEAK(psVar38), iVar29 != 0)) {\n              local_9c->ubyte[0x44] = local_9c->ubyte[0x44] & 0xdf;\n            }\n          }\n        }\n        if (local_70 <= plVar7 + 1) goto LAB_00024380;\n        ppVar50 = (page *)plVar7[1].file_ptr;\n        plVar7 = plVar7 + 1;\n      } while( true );\n    }\n    goto LAB_000243a4;\n  }\n  hdr->isymMax = 0;\nLAB_0002554e:\n  hdr->ioptMax = 0;\n  *(undefined4 *)&hdr->cbOptOffset = 0;\n  *(undefined4 *)((int)&hdr->cbOptOffset + 4) = 0;\n  *(undefined4 *)((int)&hdr->cbAuxOffset + 4) = 0;\n  *(uint *)&hdr->cbAuxOffset = local_68;\nLAB_00024eaa:\n  uVar37 = ecoff_padding_adjust(backend,local_78,local_74,local_68,(char **)0x0);\n  hdr->iauxMax = uVar37 - (int)hdr->cbAuxOffset >> 2 |\n                 (-(uint)(uVar37 < (uint)hdr->cbAuxOffset) - *(int *)((int)&hdr->cbAuxOffset + 4)) *\n                 0x40000000;\n  *(ulong *)&hdr->cbSsOffset = uVar37;\n  pvVar35 = file_desc.first;\n  local_9c = (page *)file_desc.first;\n  *(undefined4 *)((int)&hdr->cbSsOffset + 4) = 0;\n  uVar48 = uVar37;\n  if (pvVar35 != (vlinks_t *)0x0) {\n    local_a8 = (proc_t *)0x0;\n    do {\n      uVar3 = file_desc.objects_last_page;\n      if (*(vlinks **)((int)local_9c + 4) != (vlinks *)0x0) {\n        uVar3 = file_desc.objects_per_page;\n      }\n      ppVar50 = *(page **)((int)local_9c + 8);\n      ppVar55 = (page *)(ppVar50->file + uVar3);\n      ppVar60 = (page *)*(vlinks **)((int)local_9c + 4);\n      if (ppVar50 < ppVar55) {\n        do {\n          ppVar50->shash[0].sym_ptr = (localsym_t *)local_a8;\n          pvVar35 = ppVar50->file[0].strings.first;\n          pcVar22 = buf + uVar48;\n          if (pvVar35 == (vlinks_t *)0x0) {\n            peVar47 = (efdr *)0x0;\n            lVar25 = 0;\n          }\n          else {\n            peVar47 = (efdr *)0x0;\n            do {\n              if (pvVar35->next == (vlinks *)0x0) {\n                uVar3 = ppVar50->ofile[1].ipdFirst;\n              }\n              else {\n                uVar3 = *(ushort *)(ppVar50->byte + 0x86);\n              }\n              uVar54 = (uint)uVar3;\n              if ((uint)((int)bufend - (int)pcVar22) < uVar54) {\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }\n              peVar47 = (efdr *)((int)&(peVar47->fdr).adr + uVar54);\n              memcpy(pcVar22,pvVar35->datum,uVar54);\n              pvVar35 = pvVar35->next;\n              pcVar22 = pcVar22 + uVar54;\n            } while (pvVar35 != (vlinks *)0x0);\n            local_a8 = (proc_t *)((int)&(peVar47->fdr).adr + (int)&local_a8->sym);\n            lVar25 = (int)peVar47 >> 0x1f;\n            uVar48 = (int)&((localsym_t *)local_a8)->name + uVar37;\n          }\n          ppVar50->sym[0].file_ptr = peVar47;\n          ppVar60 = (page *)(ppVar50->byte + 0x294);\n          ppVar50->lineno[0].lineno = lVar25;\n          ppVar50 = ppVar60;\n        } while (ppVar60 < ppVar55);\n        ppVar60 = (page *)*(vlinks **)((int)local_9c + 4);\n      }\n      local_9c = ppVar60;\n    } while (local_9c != (page *)0x0);\n  }\n  local_9c = (page *)ecoff_padding_adjust(backend,local_78,local_74,uVar48,(char **)0x0);\n  uVar54 = *(uint *)((int)&backend->external_fdr_size + 4);\n  hdr->crfd = 0;\n  hdr->issMax = (int)local_9c->byte - (int)hdr->cbSsOffset;\n  *(undefined4 *)&hdr->cbRfdOffset = 0;\n  *(undefined4 *)((int)&hdr->cbRfdOffset + 4) = 0;\n  *(page **)&hdr->cbFdOffset = local_9c;\n  pcVar22 = buf + (int)local_9c;\n  *(undefined4 *)((int)&hdr->cbFdOffset + 4) = 0;\n  p_Var15 = backend->swap_fdr_out;\n  uVar24 = (uint)backend->external_fdr_size;\n  if (file_desc.first == (vlinks_t *)0x0) {\n    lVar25 = 0;\n  }\n  else {\n    local_ac = (aux_t *)0x0;\n    ppVar36 = (proc_t *)file_desc.first;\nLAB_000251e2:\n    do {\n      local_98 = ppVar36;\n      ppVar50 = *(page **)((int)local_98 + 8);\n      pcVar26 = pcVar22;\n      if (*(vlinks **)&local_98->pdr == (vlinks *)0x0) {\n        ppVar60 = (page *)(ppVar50->file + file_desc.objects_last_page);\n        if (ppVar60 <= ppVar50) {\n          local_9c = (page *)((int)local_9c->byte + (int)local_ac * uVar24);\n          lVar25 = __udivdi3((int)local_9c - (int)hdr->cbFdOffset,\n                             -(uint)(local_9c < (uint)hdr->cbFdOffset) -\n                             *(int *)((int)&hdr->cbFdOffset + 4),(int)backend->external_fdr_size,\n                             *(undefined4 *)((int)&backend->external_fdr_size + 4));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        ppVar60 = (page *)(ppVar50->file + file_desc.objects_per_page);\n        ppVar36 = (proc_t *)*(vlinks **)&local_98->pdr;\n        if (ppVar60 <= ppVar50) goto LAB_000251e2;\n      }\n      do {\n        uVar44 = (int)bufend - (int)pcVar26 >> 0x1f;\n        if (uVar44 < uVar54 || uVar44 - uVar54 < (uint)((uint)((int)bufend - (int)pcVar26) < uVar24)\n           ) {\n          pcVar26 = ecoff_add_bytes(local_78,local_74,pcVar26,uVar24);\n        }\n        pcVar22 = pcVar26 + uVar24;\n        ppVar55 = (page *)(ppVar50->byte + 0x294);\n        (*p_Var15)(stdoutput,(FDR *)ppVar50,pcVar26);\n        local_ac = (aux_t *)((int)local_ac + 1);\n        pcVar26 = pcVar22;\n        ppVar50 = ppVar55;\n      } while (ppVar55 < ppVar60);\n      ppVar36 = (proc_t *)*(vlinks **)&local_98->pdr;\n    } while (*(vlinks **)&local_98->pdr != (vlinks *)0x0);\n    local_9c = (page *)((int)local_9c->byte + (int)local_ac * uVar24);\n    lVar25 = __udivdi3((int)local_9c - (int)hdr->cbFdOffset,\n                       -(uint)(local_9c < (uint)hdr->cbFdOffset) -\n                       *(int *)((int)&hdr->cbFdOffset + 4),(int)backend->external_fdr_size,\n                       *(undefined4 *)((int)&backend->external_fdr_size + 4));\n  }\nLAB_000252e8:\n  hdr->ifdMax = lVar25;\n  hdr->issExtMax = 0;\n  psVar38 = symbol_rootP;\n  *(undefined4 *)&hdr->cbSsExtOffset = 0;\n  *(undefined4 *)((int)&hdr->cbSsExtOffset + 4) = 0;\n  hdr->iextMax = 0;\n  *(undefined4 *)&hdr->cbExtOffset = 0;\n  *(undefined4 *)((int)&hdr->cbExtOffset + 4) = 0;\n  for (; psVar38 != (symbolS *)0x0; psVar38 = symbol_next(psVar38)) {\n    peVar31 = symbol_get_obj(psVar38);\n    if (peVar31->ecoff_symbol != (localsym *)0x0) {\n      iVar29 = S_IS_EXTERNAL(psVar38);\n      if (((iVar29 == 0) && (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n         (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) {\n        peVar31 = symbol_get_obj(psVar38);\n        plVar7 = peVar31->ecoff_symbol;\n        uVar54 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc;\n        *(undefined4 *)&(plVar7->ecoff_sym).asym.value = 0;\n        *(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4) = 0;\n        *(uint *)&(plVar7->ecoff_sym).asym.field_0xc = uVar54 & 0x800 | 0xfffff000;\n      }\n      peVar31 = symbol_get_obj(psVar38);\n      elf_ecoff_set_ext(psVar38,&peVar31->ecoff_symbol->ecoff_sym);\n    }\n  }\n  if (((int)backend->debug_align - 1U & (uint)local_9c) == 0) {\n    hdr->vstamp = 0x30b;\n    *bufp = buf;\n    return (ulong)local_9c;\n  }\n                    /* WARNING: Subroutine does not return */\n  as_abort("../../gas/ecoff.c",0x129d,"ecoff_build_debug");\ncode_r0x00024a60:\n  local_ac = (aux_t *)((int)local_ac + 3);\n  pcVar22 = bufptr + 2;\n  bufptr[1] = (char)((uint)iVar46 >> 8);\n  bufptr = bufptr + 3;\n  *pcVar22 = (char)iVar46;\nLAB_000238d0:\n  if (0 < (int)uVar24) {\n    uVar24 = uVar24 - 1;\n    local_ac = (aux_t *)((int)local_ac + 1);\n    uVar44 = (uVar24 >> 4) + (int)local_ac;\n    if (bufend <= bufptr) goto LAB_00023925;\n    while (pcVar22 = bufptr + 1, pcVar26 = bufptr, bufptr = pcVar22, 0xf < uVar24) {\n      while( true ) {\n        uVar24 = uVar24 - 0x10;\n        *pcVar26 = '\x0f';\n        if ((aux_t *)uVar44 == local_ac) goto LAB_00023953;\n        local_ac = (aux_t *)((int)local_ac + 1);\n        if (bufptr < bufend) break;\nLAB_00023925:\n        pcVar26 = ecoff_add_bytes(&buf,&bufend,bufptr,1);\n        bufptr = pcVar26 + 1;\n        if (uVar24 < 0x10) goto LAB_00023944;\n      }\n    }\nLAB_00023944:\n    *pcVar26 = (char)uVar24;\n  }\nLAB_00023953:\n  plVar41 = local_b4->next;\n  if (plVar41 == (lineno_list *)0x0) goto LAB_00023a10;\n  local_9c = local_a4;\n  local_94 = local_b4;\n  local_98 = local_a8;\nLAB_000237a0:\n  plVar40 = plVar41->next;\n  local_b4 = plVar41;\n  goto LAB_000237a6;\nLAB_00023a10:\n  if (local_a8 != (proc_t *)0x0) {\n    (local_a8->pdr).lnHigh = local_b4->lineno;\n  }\n  if (local_a0 != (page *)0x0) {\n    pbVar1 = &((FDR *)local_a0)->cbLineOffset;\n    *(int *)&((FDR *)local_a0)->cbLine = (int)local_ac - (int)*pbVar1;\n    *(uint *)((int)&((FDR *)local_a0)->cbLine + 4) =\n         -(uint)(local_ac < (uint)*pbVar1) - *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);\n    ((FDR *)local_a0)->cline = (long)local_a4;\n  }\n  goto LAB_00023a3f;\nLAB_00024380:\n  ptVar33 = (tag *)local_64->hash_ptr;\n  if ((tag *)local_64->hash_ptr == (tag *)0x0) goto code_r0x00024393;\n  goto LAB_00023bdc;\ncode_r0x00024393:\n  ptVar33 = (tag *)((int)local_a8 - local_9c->ofile[0].isymBase);\n  local_8c = (int)local_a8;\nLAB_000243a4:\n  local_9c->sym[0].index_ptr = (ecoff_aux *)ptVar33;\n  local_9c = (page *)(local_9c->byte + 0x294);\n  if (local_54 <= local_9c) goto code_r0x000243bf;\n  goto LAB_00023bb7;\ncode_r0x000243bf:\n  pvVar35 = local_5c->next;\n  if (local_5c->next == (vlinks *)0x0) goto code_r0x000243ce;\n  goto LAB_00023b80;\ncode_r0x000243ce:\n  local_68 = local_68 + local_8c * uVar54;\n  lVar25 = __udivdi3(local_68 - (int)hdr->cbSymOffset,\n                     -(uint)(local_68 < (uint)hdr->cbSymOffset) -\n                     *(int *)((int)&hdr->cbSymOffset + 4),(int)backend->external_sym_size,\n                     *(undefined4 *)((int)&backend->external_sym_size + 4));\nLAB_0002441d:\n  plVar7 = (localsym *)file_desc.first;\n  hdr->isymMax = lVar25;\n  pcVar22 = buf + (int)hdr->cbPdOffset;\n  uVar54 = (uint)backend->external_pdr_size;\n  uVar24 = *(uint *)((int)&backend->external_pdr_size + 4);\n  p_Var13 = backend->swap_pdr_out;\n  if (plVar7 != (localsym *)0x0) {\n    uVar3 = 0;\nLAB_00024474:\n    do {\n      local_70 = plVar7;\n      local_a4 = *(page **)&local_70->addend;\n      if ((vlinks *)local_70->as_sym == (vlinks *)0x0) {\n        local_7c = (page *)(local_a4->file + file_desc.objects_last_page);\n        if (local_7c <= local_a4) break;\n      }\n      else {\n        local_7c = (page *)(local_a4->file + file_desc.objects_per_page);\n        plVar7 = (localsym *)local_70->as_sym;\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }\n      do {\n        bVar62 = true;\n        local_a4->ofile[0].ipdFirst = uVar3;\n        pvVar35 = local_a4->file[0].procs.first;\n        if (pvVar35 != (vlinks_t *)0x0) {\nLAB_000244d8:\n          do {\n            local_88 = pvVar35;\n            if (local_88->next == (vlinks *)0x0) {\n              ppVar50 = local_88->datum;\n              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xb0) * 0x44);\n              if (local_a0 <= ppVar50) break;\n            }\n            else {\n              ppVar50 = local_88->datum;\n              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xae) * 0x44);\n              pvVar35 = local_88->next;\n              if (local_a0 <= ppVar50) goto LAB_000244d8;\n            }\n            do {\n              psVar38 = (ppVar50->proc[0].sym)->as_sym;\n              vVar65 = S_GET_VALUE(psVar38);\n              paVar23 = S_GET_SEGMENT(psVar38);\n              plVar45 = (localsym_t *)((int)vVar65 + (int)paVar23->vma);\n              if (bVar62) {\n                iVar29 = 0;\n                local_a4->proc[0].sym = plVar45;\n                iVar46 = 0;\n                local_a4->sym[0].as_sym = (symbolS *)0x0;\n              }\n              else {\n                iVar29 = (int)plVar45 - local_a4->aux[0].type;\n                iVar46 = -(uint)(plVar45 < local_a4->proc[0].sym) - local_a4->dense[0].index;\n              }\n              *(int *)((int)ppVar50 + 4) = iVar29;\n              *(int *)((int)ppVar50 + 8) = iVar46;\n              uVar44 = (int)bufend - (int)pcVar22 >> 0x1f;\n              if (uVar44 < uVar24 ||\n                  uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)pcVar22) < uVar54)) {\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }\n              pPVar2 = (PDR *)((int)ppVar50 + 4);\n              ppVar50 = (page *)((int)ppVar50 + 0x44);\n              (*p_Var13)(stdoutput,pPVar2,pcVar22);\n              pcVar22 = pcVar22 + uVar54;\n              bVar62 = false;\n              uVar3 = uVar3 + 1;\n            } while (ppVar50 < local_a0);\n            pvVar35 = local_88->next;\n          } while (local_88->next != (vlinks *)0x0);\n          pvVar35 = (vlinks_t *)(uint)(ushort)(uVar3 - local_a4->ofile[0].ipdFirst);\n        }\n        local_a4->ofile[0].cpd = (short)pvVar35;\n        local_a4 = (page *)(local_a4->byte + 0x294);\n      } while (local_a4 < local_7c);\n      plVar7 = (localsym *)local_70->as_sym;\n    } while ((vlinks *)local_70->as_sym != (vlinks *)0x0);\n    plVar18 = (lineno_list_t *)file_desc.first;\n    hdr->ioptMax = 0;\n    *(undefined4 *)&hdr->cbOptOffset = 0;\n    *(undefined4 *)((int)&hdr->cbOptOffset + 4) = 0;\n    *(undefined4 *)((int)&hdr->cbAuxOffset + 4) = 0;\n    *(uint *)&hdr->cbAuxOffset = local_68;\n    bVar14 = stdoutput->xvec->byteorder;\n    bufptr_00 = (tir_ext *)(buf + local_68);\n    if (plVar18 != (lineno_list_t *)0x0) {\n      iVar29 = 0;\nLAB_00024d54:\n      do {\n        local_94 = plVar18;\n        local_a0 = (page *)local_94->proc;\n        if ((vlinks *)local_94->file == (vlinks *)0x0) {\n          local_9c = (page *)(local_a0->file + file_desc.objects_last_page);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (page *)(local_a0->file + file_desc.objects_per_page);\n          plVar18 = (lineno_list_t *)local_94->file;\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          local_a0->ofile[0].iauxBase = iVar29;\n          local_a0->ubyte[0x44] = local_a0->ubyte[0x44] & 0x7f | (bVar14 == BFD_ENDIAN_BIG) << 7;\n          ppVar36 = (proc_t *)local_a0->forward[0xb].free;\n          if (ppVar36 != (proc_t *)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppVar36;\n              paVar53 = *(aux_t **)((int)local_a8 + 8);\n              if (*(forward **)&local_a8->pdr == (forward *)0x0) {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc4);\n                if (local_ac <= paVar53) break;\n              }\n              else {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc2);\n                ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n                if (local_ac <= paVar53) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)bufend - (int)bufptr_00) < 4) {\n                  bufptr_00 = (tir_ext *)ecoff_add_bytes(local_78,local_74,(char *)bufptr_00,4);\n                }\n                iVar46 = SUB14(bVar14 == BFD_ENDIAN_BIG,0);\n                switch(paVar53->type) {\n                case aux_tir:\n                  (*backend->swap_tir_out)(iVar46,&(paVar53->data).ti,bufptr_00);\n                  break;\n                case aux_rndx:\n                  (*backend->swap_rndx_out)(iVar46,&(paVar53->data).rndx,(rndx_ext *)bufptr_00);\n                  break;\n                case aux_dnLow:\n                case aux_dnHigh:\n                case aux_isym:\n                case aux_iss:\n                case aux_width:\n                case aux_count:\n                  iVar46 = (paVar53->data).dnLow;\n                  if (bVar14 == BFD_ENDIAN_BIG) {\n                    bfd_putb32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                  else {\n                    bfd_putl32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                }\n                bufptr_00 = bufptr_00 + 1;\n                iVar29 = iVar29 + 1;\n                paVar53 = paVar53 + 1;\n              } while (paVar53 < local_ac);\n              ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n            } while (*(forward **)&local_a8->pdr != (forward *)0x0);\n            ppVar36 = (proc_t *)(iVar29 - local_a0->ofile[0].iauxBase);\n          }\n          local_a0->forward[3].ifd_ptr = (aux_t *)ppVar36;\n          local_a0 = (page *)(local_a0->byte + 0x294);\n        } while (local_a0 < local_9c);\n        plVar18 = (lineno_list_t *)local_94->file;\n      } while ((vlinks *)local_94->file != (vlinks *)0x0);\n      local_68 = local_68 + iVar29 * 4;\n    }\n    goto LAB_00024eaa;\n  }\n  goto LAB_0002554e;\n}" { (declaration "bfd_vma *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "PDR *pPVar2;" type_identifier (pointer_declarator "*pPVar2" * identifier) ;) (declaration "ushort uVar3;" type_identifier identifier ;) (declaration "small_free_t sVar4;" type_identifier identifier ;) (declaration "fragS *pfVar5;" type_identifier (pointer_declarator "*pfVar5" * identifier) ;) (declaration "_func_void_bfd_ptr_SYMR_ptr_void_ptr *p_Var6;" type_identifier (pointer_declarator "*p_Var6" * identifier) ;) (declaration "localsym *plVar7;" type_identifier (pointer_declarator "*plVar7" * identifier) ;) (declaration "symbolS *psVar8;" type_identifier (pointer_declarator "*psVar8" * identifier) ;) (declaration "localsym *plVar9;" type_identifier (pointer_declarator "*plVar9" * identifier) ;) (declaration "AUXU AVar10;" type_identifier identifier ;) (declaration "ecoff_proc *peVar11;" type_identifier (pointer_declarator "*peVar11" * identifier) ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "_func_void_bfd_ptr_PDR_ptr_void_ptr *p_Var13;" type_identifier (pointer_declarator "*p_Var13" * identifier) ;) (declaration "bfd_endian bVar14;" type_identifier identifier ;) (declaration "_func_void_bfd_ptr_FDR_ptr_void_ptr *p_Var15;" type_identifier (pointer_declarator "*p_Var15" * identifier) ;) (declaration "ulonglong uVar16;" type_identifier identifier ;) (declaration "bfd_vma bVar17;" type_identifier identifier ;) (declaration "lineno_list_t *plVar18;" type_identifier (pointer_declarator "*plVar18" * identifier) ;) (declaration "small_free_t sVar19;" type_identifier identifier ;) (declaration "byte bVar20;" type_identifier identifier ;) (declaration "tag_t *ptag;" type_identifier (pointer_declarator "*ptag" * identifier) ;) (declaration "scope_t *psVar21;" type_identifier (pointer_declarator "*psVar21" * identifier) ;) (declaration "char *pcVar22;" primitive_type (pointer_declarator "*pcVar22" * identifier) ;) (declaration "segT paVar23;" type_identifier identifier ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "long lVar25;" (sized_type_specifier "long" long) identifier ;) (declaration "char *pcVar26;" primitive_type (pointer_declarator "*pcVar26" * identifier) ;) (declaration "segT paVar27;" type_identifier identifier ;) (declaration "segT paVar28;" type_identifier identifier ;) (declaration "int iVar29;" primitive_type identifier ;) (declaration "asymbol *paVar30;" type_identifier (pointer_declarator "*paVar30" * identifier) ;) (declaration "elf_obj_sy *peVar31;" type_identifier (pointer_declarator "*peVar31" * identifier) ;) (declaration "forward *pfVar32;" type_identifier (pointer_declarator "*pfVar32" * identifier) ;) (declaration "tag *ptVar33;" type_identifier (pointer_declarator "*ptVar33" * identifier) ;) (declaration "symint_t sVar34;" type_identifier identifier ;) (declaration "vlinks_t *pvVar35;" type_identifier (pointer_declarator "*pvVar35" * identifier) ;) (declaration "proc_t *ppVar36;" type_identifier (pointer_declarator "*ppVar36" * identifier) ;) (declaration "ulong uVar37;" type_identifier identifier ;) (declaration "tir_ext *bufptr_00;" type_identifier (pointer_declarator "*bufptr_00" * identifier) ;) (declaration "symbolS *psVar38;" type_identifier (pointer_declarator "*psVar38" * identifier) ;) (declaration "char cVar39;" primitive_type identifier ;) (declaration "lineno_list *plVar40;" type_identifier (pointer_declarator "*plVar40" * identifier) ;) (declaration "lineno_list *plVar41;" type_identifier (pointer_declarator "*plVar41" * identifier) ;) (declaration "byte bVar42;" type_identifier identifier ;) (declaration "efdr_t *peVar43;" type_identifier (pointer_declarator "*peVar43" * identifier) ;) (declaration "uint uVar44;" type_identifier identifier ;) (declaration "localsym_t *plVar45;" type_identifier (pointer_declarator "*plVar45" * identifier) ;) (declaration "int iVar46;" primitive_type identifier ;) (declaration "efdr *peVar47;" type_identifier (pointer_declarator "*peVar47" * identifier) ;) (declaration "ulong uVar48;" type_identifier identifier ;) (declaration "uint uVar49;" type_identifier identifier ;) (declaration "page *ppVar50;" type_identifier (pointer_declarator "*ppVar50" * identifier) ;) (declaration "byte *pbVar51;" type_identifier (pointer_declarator "*pbVar51" * identifier) ;) (declaration "byte *pbVar52;" type_identifier (pointer_declarator "*pbVar52" * identifier) ;) (declaration "aux_t *paVar53;" type_identifier (pointer_declarator "*paVar53" * identifier) ;) (declaration "uint uVar54;" type_identifier identifier ;) (declaration "page *ppVar55;" type_identifier (pointer_declarator "*ppVar55" * identifier) ;) (declaration "char cVar56;" primitive_type identifier ;) (declaration "uint uVar57;" type_identifier identifier ;) (declaration "byte *pbVar58;" type_identifier (pointer_declarator "*pbVar58" * identifier) ;) (declaration "int iVar59;" primitive_type identifier ;) (declaration "page *ppVar60;" type_identifier (pointer_declarator "*ppVar60" * identifier) ;) (declaration "bool bVar61;" primitive_type identifier ;) (declaration "bool bVar62;" primitive_type identifier ;) (declaration "bool bVar63;" primitive_type identifier ;) (declaration "byte bVar64;" type_identifier identifier ;) (declaration "valueT vVar65;" type_identifier identifier ;) (declaration "valueT vVar66;" type_identifier identifier ;) (declaration "lineno_list_t *local_b4;" type_identifier (pointer_declarator "*local_b4" * identifier) ;) (declaration "int local_b0;" primitive_type identifier ;) (declaration "aux_t *local_ac;" type_identifier (pointer_declarator "*local_ac" * identifier) ;) (declaration "proc_t *local_a8;" type_identifier (pointer_declarator "*local_a8" * identifier) ;) (declaration "page *local_a4;" type_identifier (pointer_declarator "*local_a4" * identifier) ;) (declaration "page *local_a0;" type_identifier (pointer_declarator "*local_a0" * identifier) ;) (declaration "page *local_9c;" type_identifier (pointer_declarator "*local_9c" * identifier) ;) (declaration "proc_t *local_98;" type_identifier (pointer_declarator "*local_98" * identifier) ;) (declaration "lineno_list_t *local_94;" type_identifier (pointer_declarator "*local_94" * identifier) ;) (declaration "int local_8c;" primitive_type identifier ;) (declaration "vlinks_t *local_88;" type_identifier (pointer_declarator "*local_88" * identifier) ;) (declaration "page *local_7c;" type_identifier (pointer_declarator "*local_7c" * identifier) ;) (declaration "char **local_78;" primitive_type (pointer_declarator "**local_78" * (pointer_declarator "*local_78" * identifier)) ;) (declaration "char **local_74;" primitive_type (pointer_declarator "**local_74" * (pointer_declarator "*local_74" * identifier)) ;) (declaration "localsym *local_70;" type_identifier (pointer_declarator "*local_70" * identifier) ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "tag *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (declaration "vlinks_t *local_5c;" type_identifier (pointer_declarator "*local_5c" * identifier) ;) (declaration "page *local_54;" type_identifier (pointer_declarator "*local_54" * identifier) ;) (declaration "char *buf;" primitive_type (pointer_declarator "*buf" * identifier) ;) (declaration "char *bufend;" primitive_type (pointer_declarator "*bufend" * identifier) ;) (declaration "char *bufptr;" primitive_type (pointer_declarator "*bufptr" * identifier) ;) (declaration "lineno_list_t first;" type_identifier identifier ;) (expression_statement "bVar64 = 0;" (assignment_expression "bVar64 = 0" identifier = number_literal) ;) (expression_statement "uVar54 = (uint)backend->external_pdr_size;" (assignment_expression "uVar54 = (uint)backend->external_pdr_size" identifier = (cast_expression "(uint)backend->external_pdr_size" ( (type_descriptor "uint" type_identifier) ) (field_expression "backend->external_pdr_size" identifier -> field_identifier))) ;) (expression_statement "iVar29 = *(int *)((int)&backend->external_pdr_size + 4);" (assignment_expression "iVar29 = *(int *)((int)&backend->external_pdr_size + 4)" identifier = (pointer_expression "*(int *)((int)&backend->external_pdr_size + 4)" * (cast_expression "(int *)((int)&backend->external_pdr_size + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&backend->external_pdr_size + 4)" ( (binary_expression "(int)&backend->external_pdr_size + 4" (cast_expression "(int)&backend->external_pdr_size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&backend->external_pdr_size" & (field_expression "backend->external_pdr_size" identifier -> field_identifier))) + number_literal) ))))) ;) (if_statement "if (first_file == (efdr_t *)0x0) {\n    add_file((char *)0x0,1,0);\n  }" if (parenthesized_expression "(first_file == (efdr_t *)0x0)" ( (binary_expression "first_file == (efdr_t *)0x0" identifier == (cast_expression "(efdr_t *)0x0" ( (type_descriptor "efdr_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    add_file((char *)0x0,1,0);\n  }" { (expression_statement "add_file((char *)0x0,1,0);" (call_expression "add_file((char *)0x0,1,0)" identifier (argument_list "((char *)0x0,1,0)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal , number_literal ))) ;) })) (expression_statement "sVar19 = (small_free_t)top_tag_head->first_tag;" (assignment_expression "sVar19 = (small_free_t)top_tag_head->first_tag" identifier = (cast_expression "(small_free_t)top_tag_head->first_tag" ( (type_descriptor "small_free_t" type_identifier) ) (field_expression "top_tag_head->first_tag" identifier -> field_identifier))) ;) (expression_statement "ppVar36 = cur_proc_ptr;" (assignment_expression "ppVar36 = cur_proc_ptr" identifier = identifier) ;) (while_statement "while (cur_proc_ptr = ppVar36, (tag *)sVar19.f_scope != (tag *)0x0) {\n    ptag = (tag_t *)(sVar19.f_tag)->hash_ptr;\n    if ((sVar19.f_tag)->forward_ref != (forward *)0x0) {\n      add_unknown_tag(ptag,(tag_t *)&(sVar19.f_tag)->forward_ref);\n      ptag = (tag_t *)(sVar19.f_tag)->hash_ptr;\n    }\n    sVar4 = (small_free_t)(sVar19.f_scope)->type;\n    alloc_counts[5].total_free = alloc_counts[5].total_free + 1;\n    ptag->basic_type = (bt_t)(sVar19.f_scope)->lsym;\n    (sVar19.f_scope)->prev = (scope *)alloc_counts[5].free_list;\n    alloc_counts[5].free_list = sVar19;\n    sVar19 = sVar4;\n    ppVar36 = cur_proc_ptr;\n  }" while (parenthesized_expression "(cur_proc_ptr = ppVar36, (tag *)sVar19.f_scope != (tag *)0x0)" ( (comma_expression "cur_proc_ptr = ppVar36, (tag *)sVar19.f_scope != (tag *)0x0" (assignment_expression "cur_proc_ptr = ppVar36" identifier = identifier) , (binary_expression "(tag *)sVar19.f_scope != (tag *)0x0" (cast_expression "(tag *)sVar19.f_scope" ( (type_descriptor "tag *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "sVar19.f_scope" identifier . field_identifier)) != (cast_expression "(tag *)0x0" ( (type_descriptor "tag *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n    ptag = (tag_t *)(sVar19.f_tag)->hash_ptr;\n    if ((sVar19.f_tag)->forward_ref != (forward *)0x0) {\n      add_unknown_tag(ptag,(tag_t *)&(sVar19.f_tag)->forward_ref);\n      ptag = (tag_t *)(sVar19.f_tag)->hash_ptr;\n    }\n    sVar4 = (small_free_t)(sVar19.f_scope)->type;\n    alloc_counts[5].total_free = alloc_counts[5].total_free + 1;\n    ptag->basic_type = (bt_t)(sVar19.f_scope)->lsym;\n    (sVar19.f_scope)->prev = (scope *)alloc_counts[5].free_list;\n    alloc_counts[5].free_list = sVar19;\n    sVar19 = sVar4;\n    ppVar36 = cur_proc_ptr;\n  }" { (expression_statement "ptag = (tag_t *)(sVar19.f_tag)->hash_ptr;" (assignment_expression "ptag = (tag_t *)(sVar19.f_tag)->hash_ptr" identifier = (cast_expression "(tag_t *)(sVar19.f_tag)->hash_ptr" ( (type_descriptor "tag_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(sVar19.f_tag)->hash_ptr" (parenthesized_expression "(sVar19.f_tag)" ( (field_expression "sVar19.f_tag" identifier . field_identifier) )) -> field_identifier))) ;) (if_statement "if ((sVar19.f_tag)->forward_ref != (forward *)0x0) {\n      add_unknown_tag(ptag,(tag_t *)&(sVar19.f_tag)->forward_ref);\n      ptag = (tag_t *)(sVar19.f_tag)->hash_ptr;\n    }" if (parenthesized_expression "((sVar19.f_tag)->forward_ref != (forward *)0x0)" ( (binary_expression "(sVar19.f_tag)->forward_ref != (forward *)0x0" (field_expression "(sVar19.f_tag)->forward_ref" (parenthesized_expression "(sVar19.f_tag)" ( (field_expression "sVar19.f_tag" identifier . field_identifier) )) -> field_identifier) != (cast_expression "(forward *)0x0" ( (type_descriptor "forward *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      add_unknown_tag(ptag,(tag_t *)&(sVar19.f_tag)->forward_ref);\n      ptag = (tag_t *)(sVar19.f_tag)->hash_ptr;\n    }" { (expression_statement "add_unknown_tag(ptag,(tag_t *)&(sVar19.f_tag)->forward_ref);" (call_expression "add_unknown_tag(ptag,(tag_t *)&(sVar19.f_tag)->forward_ref)" identifier (argument_list "(ptag,(tag_t *)&(sVar19.f_tag)->forward_ref)" ( identifier , (cast_expression "(tag_t *)&(sVar19.f_tag)->forward_ref" ( (type_descriptor "tag_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(sVar19.f_tag)->forward_ref" & (field_expression "(sVar19.f_tag)->forward_ref" (parenthesized_expression "(sVar19.f_tag)" ( (field_expression "sVar19.f_tag" identifier . field_identifier) )) -> field_identifier))) ))) ;) (expression_statement "ptag = (tag_t *)(sVar19.f_tag)->hash_ptr;" (assignment_expression "ptag = (tag_t *)(sVar19.f_tag)->hash_ptr" identifier = (cast_expression "(tag_t *)(sVar19.f_tag)->hash_ptr" ( (type_descriptor "tag_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(sVar19.f_tag)->hash_ptr" (parenthesized_expression "(sVar19.f_tag)" ( (field_expression "sVar19.f_tag" identifier . field_identifier) )) -> field_identifier))) ;) })) (expression_statement "sVar4 = (small_free_t)(sVar19.f_scope)->type;" (assignment_expression "sVar4 = (small_free_t)(sVar19.f_scope)->type" identifier = (field_expression "(small_free_t)(sVar19.f_scope)->type" (call_expression "(small_free_t)(sVar19.f_scope)" (parenthesized_expression "(small_free_t)" ( identifier )) (argument_list "(sVar19.f_scope)" ( (field_expression "sVar19.f_scope" identifier . field_identifier) ))) -> field_identifier)) ;) (expression_statement "alloc_counts[5].total_free = alloc_counts[5].total_free + 1;" (assignment_expression "alloc_counts[5].total_free = alloc_counts[5].total_free + 1" (field_expression "alloc_counts[5].total_free" (subscript_expression "alloc_counts[5]" identifier [ number_literal ]) . field_identifier) = (binary_expression "alloc_counts[5].total_free + 1" (field_expression "alloc_counts[5].total_free" (subscript_expression "alloc_counts[5]" identifier [ number_literal ]) . field_identifier) + number_literal)) ;) (expression_statement "ptag->basic_type = (bt_t)(sVar19.f_scope)->lsym;" (assignment_expression "ptag->basic_type = (bt_t)(sVar19.f_scope)->lsym" (field_expression "ptag->basic_type" identifier -> field_identifier) = (field_expression "(bt_t)(sVar19.f_scope)->lsym" (call_expression "(bt_t)(sVar19.f_scope)" (parenthesized_expression "(bt_t)" ( identifier )) (argument_list "(sVar19.f_scope)" ( (field_expression "sVar19.f_scope" identifier . field_identifier) ))) -> field_identifier)) ;) (expression_statement "(sVar19.f_scope)->prev = (scope *)alloc_counts[5].free_list;" (assignment_expression "(sVar19.f_scope)->prev = (scope *)alloc_counts[5].free_list" (field_expression "(sVar19.f_scope)->prev" (parenthesized_expression "(sVar19.f_scope)" ( (field_expression "sVar19.f_scope" identifier . field_identifier) )) -> field_identifier) = (cast_expression "(scope *)alloc_counts[5].free_list" ( (type_descriptor "scope *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "alloc_counts[5].free_list" (subscript_expression "alloc_counts[5]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "alloc_counts[5].free_list = sVar19;" (assignment_expression "alloc_counts[5].free_list = sVar19" (field_expression "alloc_counts[5].free_list" (subscript_expression "alloc_counts[5]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "sVar19 = sVar4;" (assignment_expression "sVar19 = sVar4" identifier = identifier) ;) (expression_statement "ppVar36 = cur_proc_ptr;" (assignment_expression "ppVar36 = cur_proc_ptr" identifier = identifier) ;) })) (expression_statement "alloc_counts[7].total_free = alloc_counts[7].total_free + 1;" (assignment_expression "alloc_counts[7].total_free = alloc_counts[7].total_free + 1" (field_expression "alloc_counts[7].total_free" (subscript_expression "alloc_counts[7]" identifier [ number_literal ]) . field_identifier) = (binary_expression "alloc_counts[7].total_free + 1" (field_expression "alloc_counts[7].total_free" (subscript_expression "alloc_counts[7]" identifier [ number_literal ]) . field_identifier) + number_literal)) ;) (expression_statement "sVar19 = top_tag_head;" (assignment_expression "sVar19 = top_tag_head" identifier = identifier) ;) (expression_statement "((scope_t *)top_tag_head)->free = (scope *)alloc_counts[7].free_list;" (assignment_expression "((scope_t *)top_tag_head)->free = (scope *)alloc_counts[7].free_list" (field_expression "((scope_t *)top_tag_head)->free" (parenthesized_expression "((scope_t *)top_tag_head)" ( (cast_expression "(scope_t *)top_tag_head" ( (type_descriptor "scope_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) = (cast_expression "(scope *)alloc_counts[7].free_list" ( (type_descriptor "scope *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "alloc_counts[7].free_list" (subscript_expression "alloc_counts[7]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "alloc_counts[7].free_list = sVar19;" (assignment_expression "alloc_counts[7].free_list = sVar19" (field_expression "alloc_counts[7].free_list" (subscript_expression "alloc_counts[7]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "peVar43 = cur_file_ptr;" (assignment_expression "peVar43 = cur_file_ptr" identifier = identifier) ;) (expression_statement "cur_proc_ptr = (proc_t *)0x0;" (assignment_expression "cur_proc_ptr = (proc_t *)0x0" identifier = (cast_expression "(proc_t *)0x0" ( (type_descriptor "proc_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (for_statement "for (psVar38 = symbol_rootP; psVar38 != (symbolS *)0x0; psVar38 = symbol_next(psVar38)) {\n    peVar31 = symbol_get_obj(psVar38);\n    if (((peVar31->ecoff_symbol == (localsym *)0x0) &&\n        (peVar31 = symbol_get_obj(psVar38), peVar31->ecoff_file != (efdr *)0x0)) &&\n       (paVar30 = symbol_get_bfdsym(psVar38), (paVar30->flags & 0x100) == 0)) {\n      peVar31 = symbol_get_obj(psVar38);\n      cur_file_ptr = peVar31->ecoff_file;\n      vVar65 = S_GET_VALUE(psVar38);\n      add_ecoff_symbol((char *)0x0,st_Nil,sc_Nil,psVar38,0,(symint_t)vVar65,0xfffff);\n    }\n  }" for ( (assignment_expression "psVar38 = symbol_rootP" identifier = identifier) ; (binary_expression "psVar38 != (symbolS *)0x0" identifier != (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "psVar38 = symbol_next(psVar38)" identifier = (call_expression "symbol_next(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) ) (compound_statement "{\n    peVar31 = symbol_get_obj(psVar38);\n    if (((peVar31->ecoff_symbol == (localsym *)0x0) &&\n        (peVar31 = symbol_get_obj(psVar38), peVar31->ecoff_file != (efdr *)0x0)) &&\n       (paVar30 = symbol_get_bfdsym(psVar38), (paVar30->flags & 0x100) == 0)) {\n      peVar31 = symbol_get_obj(psVar38);\n      cur_file_ptr = peVar31->ecoff_file;\n      vVar65 = S_GET_VALUE(psVar38);\n      add_ecoff_symbol((char *)0x0,st_Nil,sc_Nil,psVar38,0,(symint_t)vVar65,0xfffff);\n    }\n  }" { (expression_statement "peVar31 = symbol_get_obj(psVar38);" (assignment_expression "peVar31 = symbol_get_obj(psVar38)" identifier = (call_expression "symbol_get_obj(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) ;) (if_statement "if (((peVar31->ecoff_symbol == (localsym *)0x0) &&\n        (peVar31 = symbol_get_obj(psVar38), peVar31->ecoff_file != (efdr *)0x0)) &&\n       (paVar30 = symbol_get_bfdsym(psVar38), (paVar30->flags & 0x100) == 0)) {\n      peVar31 = symbol_get_obj(psVar38);\n      cur_file_ptr = peVar31->ecoff_file;\n      vVar65 = S_GET_VALUE(psVar38);\n      add_ecoff_symbol((char *)0x0,st_Nil,sc_Nil,psVar38,0,(symint_t)vVar65,0xfffff);\n    }" if (parenthesized_expression "(((peVar31->ecoff_symbol == (localsym *)0x0) &&\n        (peVar31 = symbol_get_obj(psVar38), peVar31->ecoff_file != (efdr *)0x0)) &&\n       (paVar30 = symbol_get_bfdsym(psVar38), (paVar30->flags & 0x100) == 0))" ( (binary_expression "((peVar31->ecoff_symbol == (localsym *)0x0) &&\n        (peVar31 = symbol_get_obj(psVar38), peVar31->ecoff_file != (efdr *)0x0)) &&\n       (paVar30 = symbol_get_bfdsym(psVar38), (paVar30->flags & 0x100) == 0)" (parenthesized_expression "((peVar31->ecoff_symbol == (localsym *)0x0) &&\n        (peVar31 = symbol_get_obj(psVar38), peVar31->ecoff_file != (efdr *)0x0))" ( (binary_expression "(peVar31->ecoff_symbol == (localsym *)0x0) &&\n        (peVar31 = symbol_get_obj(psVar38), peVar31->ecoff_file != (efdr *)0x0)" (parenthesized_expression "(peVar31->ecoff_symbol == (localsym *)0x0)" ( (binary_expression "peVar31->ecoff_symbol == (localsym *)0x0" (field_expression "peVar31->ecoff_symbol" identifier -> field_identifier) == (cast_expression "(localsym *)0x0" ( (type_descriptor "localsym *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(peVar31 = symbol_get_obj(psVar38), peVar31->ecoff_file != (efdr *)0x0)" ( (comma_expression "peVar31 = symbol_get_obj(psVar38), peVar31->ecoff_file != (efdr *)0x0" (assignment_expression "peVar31 = symbol_get_obj(psVar38)" identifier = (call_expression "symbol_get_obj(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) , (binary_expression "peVar31->ecoff_file != (efdr *)0x0" (field_expression "peVar31->ecoff_file" identifier -> field_identifier) != (cast_expression "(efdr *)0x0" ( (type_descriptor "efdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(paVar30 = symbol_get_bfdsym(psVar38), (paVar30->flags & 0x100) == 0)" ( (comma_expression "paVar30 = symbol_get_bfdsym(psVar38), (paVar30->flags & 0x100) == 0" (assignment_expression "paVar30 = symbol_get_bfdsym(psVar38)" identifier = (call_expression "symbol_get_bfdsym(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) , (binary_expression "(paVar30->flags & 0x100) == 0" (parenthesized_expression "(paVar30->flags & 0x100)" ( (binary_expression "paVar30->flags & 0x100" (field_expression "paVar30->flags" identifier -> field_identifier) & number_literal) )) == number_literal)) ))) )) (compound_statement "{\n      peVar31 = symbol_get_obj(psVar38);\n      cur_file_ptr = peVar31->ecoff_file;\n      vVar65 = S_GET_VALUE(psVar38);\n      add_ecoff_symbol((char *)0x0,st_Nil,sc_Nil,psVar38,0,(symint_t)vVar65,0xfffff);\n    }" { (expression_statement "peVar31 = symbol_get_obj(psVar38);" (assignment_expression "peVar31 = symbol_get_obj(psVar38)" identifier = (call_expression "symbol_get_obj(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) ;) (expression_statement "cur_file_ptr = peVar31->ecoff_file;" (assignment_expression "cur_file_ptr = peVar31->ecoff_file" identifier = (field_expression "peVar31->ecoff_file" identifier -> field_identifier)) ;) (expression_statement "vVar65 = S_GET_VALUE(psVar38);" (assignment_expression "vVar65 = S_GET_VALUE(psVar38)" identifier = (call_expression "S_GET_VALUE(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) ;) (expression_statement "add_ecoff_symbol((char *)0x0,st_Nil,sc_Nil,psVar38,0,(symint_t)vVar65,0xfffff);" (call_expression "add_ecoff_symbol((char *)0x0,st_Nil,sc_Nil,psVar38,0,(symint_t)vVar65,0xfffff)" identifier (argument_list "((char *)0x0,st_Nil,sc_Nil,psVar38,0,(symint_t)vVar65,0xfffff)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , identifier , identifier , number_literal , (cast_expression "(symint_t)vVar65" ( (type_descriptor "symint_t" type_identifier) ) identifier) , number_literal ))) ;) })) })) (expression_statement "bVar62 = false;" (assignment_expression "bVar62 = false" identifier = false) ;) (expression_statement "cur_proc_ptr = ppVar36;" (assignment_expression "cur_proc_ptr = ppVar36" identifier = identifier) ;) (expression_statement "cur_file_ptr = peVar43;" (assignment_expression "cur_file_ptr = peVar43" identifier = identifier) ;) (expression_statement "peVar47 = first_file;" (assignment_expression "peVar47 = first_file" identifier = identifier) ;) (labeled_statement "joined_r0x000235e4:\n  if (peVar47 != (efdr_t *)0x0) {\n    psVar21 = peVar47->cur_scope;\n    peVar43 = peVar47;\n    cur_file_ptr = peVar47;\n    while (psVar21 != (scope_t *)0x0) {\n      while( true ) {\n        psVar21 = psVar21->prev;\n        if (psVar21 == (scope *)0x0) {\n          add_ecoff_symbol((char *)0x0,st_End,sc_Text,(symbolS *)0x0,0,0,0);\n          peVar47 = peVar47->next_file;\n          goto joined_r0x000235e4;\n        }\n        peVar43->cur_scope = psVar21;\n        if ((bVar62) || (peVar43->fake != 0)) break;\n        bVar62 = true;\n        pcVar22 = (char *)dcgettext(0,"missing .end or .bend at end of file",5);\n        as_warn(pcVar22);\n        psVar21 = cur_file_ptr->cur_scope;\n        peVar43 = cur_file_ptr;\n        if (psVar21 == (scope_t *)0x0) goto LAB_00023650;\n      }\n    }\nLAB_00023650:\n    peVar47 = peVar47->next_file;\n    goto joined_r0x000235e4;\n  }" statement_identifier : (if_statement "if (peVar47 != (efdr_t *)0x0) {\n    psVar21 = peVar47->cur_scope;\n    peVar43 = peVar47;\n    cur_file_ptr = peVar47;\n    while (psVar21 != (scope_t *)0x0) {\n      while( true ) {\n        psVar21 = psVar21->prev;\n        if (psVar21 == (scope *)0x0) {\n          add_ecoff_symbol((char *)0x0,st_End,sc_Text,(symbolS *)0x0,0,0,0);\n          peVar47 = peVar47->next_file;\n          goto joined_r0x000235e4;\n        }\n        peVar43->cur_scope = psVar21;\n        if ((bVar62) || (peVar43->fake != 0)) break;\n        bVar62 = true;\n        pcVar22 = (char *)dcgettext(0,"missing .end or .bend at end of file",5);\n        as_warn(pcVar22);\n        psVar21 = cur_file_ptr->cur_scope;\n        peVar43 = cur_file_ptr;\n        if (psVar21 == (scope_t *)0x0) goto LAB_00023650;\n      }\n    }\nLAB_00023650:\n    peVar47 = peVar47->next_file;\n    goto joined_r0x000235e4;\n  }" if (parenthesized_expression "(peVar47 != (efdr_t *)0x0)" ( (binary_expression "peVar47 != (efdr_t *)0x0" identifier != (cast_expression "(efdr_t *)0x0" ( (type_descriptor "efdr_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    psVar21 = peVar47->cur_scope;\n    peVar43 = peVar47;\n    cur_file_ptr = peVar47;\n    while (psVar21 != (scope_t *)0x0) {\n      while( true ) {\n        psVar21 = psVar21->prev;\n        if (psVar21 == (scope *)0x0) {\n          add_ecoff_symbol((char *)0x0,st_End,sc_Text,(symbolS *)0x0,0,0,0);\n          peVar47 = peVar47->next_file;\n          goto joined_r0x000235e4;\n        }\n        peVar43->cur_scope = psVar21;\n        if ((bVar62) || (peVar43->fake != 0)) break;\n        bVar62 = true;\n        pcVar22 = (char *)dcgettext(0,"missing .end or .bend at end of file",5);\n        as_warn(pcVar22);\n        psVar21 = cur_file_ptr->cur_scope;\n        peVar43 = cur_file_ptr;\n        if (psVar21 == (scope_t *)0x0) goto LAB_00023650;\n      }\n    }\nLAB_00023650:\n    peVar47 = peVar47->next_file;\n    goto joined_r0x000235e4;\n  }" { (expression_statement "psVar21 = peVar47->cur_scope;" (assignment_expression "psVar21 = peVar47->cur_scope" identifier = (field_expression "peVar47->cur_scope" identifier -> field_identifier)) ;) (expression_statement "peVar43 = peVar47;" (assignment_expression "peVar43 = peVar47" identifier = identifier) ;) (expression_statement "cur_file_ptr = peVar47;" (assignment_expression "cur_file_ptr = peVar47" identifier = identifier) ;) (while_statement "while (psVar21 != (scope_t *)0x0) {\n      while( true ) {\n        psVar21 = psVar21->prev;\n        if (psVar21 == (scope *)0x0) {\n          add_ecoff_symbol((char *)0x0,st_End,sc_Text,(symbolS *)0x0,0,0,0);\n          peVar47 = peVar47->next_file;\n          goto joined_r0x000235e4;\n        }\n        peVar43->cur_scope = psVar21;\n        if ((bVar62) || (peVar43->fake != 0)) break;\n        bVar62 = true;\n        pcVar22 = (char *)dcgettext(0,"missing .end or .bend at end of file",5);\n        as_warn(pcVar22);\n        psVar21 = cur_file_ptr->cur_scope;\n        peVar43 = cur_file_ptr;\n        if (psVar21 == (scope_t *)0x0) goto LAB_00023650;\n      }\n    }" while (parenthesized_expression "(psVar21 != (scope_t *)0x0)" ( (binary_expression "psVar21 != (scope_t *)0x0" identifier != (cast_expression "(scope_t *)0x0" ( (type_descriptor "scope_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      while( true ) {\n        psVar21 = psVar21->prev;\n        if (psVar21 == (scope *)0x0) {\n          add_ecoff_symbol((char *)0x0,st_End,sc_Text,(symbolS *)0x0,0,0,0);\n          peVar47 = peVar47->next_file;\n          goto joined_r0x000235e4;\n        }\n        peVar43->cur_scope = psVar21;\n        if ((bVar62) || (peVar43->fake != 0)) break;\n        bVar62 = true;\n        pcVar22 = (char *)dcgettext(0,"missing .end or .bend at end of file",5);\n        as_warn(pcVar22);\n        psVar21 = cur_file_ptr->cur_scope;\n        peVar43 = cur_file_ptr;\n        if (psVar21 == (scope_t *)0x0) goto LAB_00023650;\n      }\n    }" { (while_statement "while( true ) {\n        psVar21 = psVar21->prev;\n        if (psVar21 == (scope *)0x0) {\n          add_ecoff_symbol((char *)0x0,st_End,sc_Text,(symbolS *)0x0,0,0,0);\n          peVar47 = peVar47->next_file;\n          goto joined_r0x000235e4;\n        }\n        peVar43->cur_scope = psVar21;\n        if ((bVar62) || (peVar43->fake != 0)) break;\n        bVar62 = true;\n        pcVar22 = (char *)dcgettext(0,"missing .end or .bend at end of file",5);\n        as_warn(pcVar22);\n        psVar21 = cur_file_ptr->cur_scope;\n        peVar43 = cur_file_ptr;\n        if (psVar21 == (scope_t *)0x0) goto LAB_00023650;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        psVar21 = psVar21->prev;\n        if (psVar21 == (scope *)0x0) {\n          add_ecoff_symbol((char *)0x0,st_End,sc_Text,(symbolS *)0x0,0,0,0);\n          peVar47 = peVar47->next_file;\n          goto joined_r0x000235e4;\n        }\n        peVar43->cur_scope = psVar21;\n        if ((bVar62) || (peVar43->fake != 0)) break;\n        bVar62 = true;\n        pcVar22 = (char *)dcgettext(0,"missing .end or .bend at end of file",5);\n        as_warn(pcVar22);\n        psVar21 = cur_file_ptr->cur_scope;\n        peVar43 = cur_file_ptr;\n        if (psVar21 == (scope_t *)0x0) goto LAB_00023650;\n      }" { (expression_statement "psVar21 = psVar21->prev;" (assignment_expression "psVar21 = psVar21->prev" identifier = (field_expression "psVar21->prev" identifier -> field_identifier)) ;) (if_statement "if (psVar21 == (scope *)0x0) {\n          add_ecoff_symbol((char *)0x0,st_End,sc_Text,(symbolS *)0x0,0,0,0);\n          peVar47 = peVar47->next_file;\n          goto joined_r0x000235e4;\n        }" if (parenthesized_expression "(psVar21 == (scope *)0x0)" ( (binary_expression "psVar21 == (scope *)0x0" identifier == (cast_expression "(scope *)0x0" ( (type_descriptor "scope *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          add_ecoff_symbol((char *)0x0,st_End,sc_Text,(symbolS *)0x0,0,0,0);\n          peVar47 = peVar47->next_file;\n          goto joined_r0x000235e4;\n        }" { (expression_statement "add_ecoff_symbol((char *)0x0,st_End,sc_Text,(symbolS *)0x0,0,0,0);" (call_expression "add_ecoff_symbol((char *)0x0,st_End,sc_Text,(symbolS *)0x0,0,0,0)" identifier (argument_list "((char *)0x0,st_End,sc_Text,(symbolS *)0x0,0,0,0)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , identifier , (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal , number_literal , number_literal ))) ;) (expression_statement "peVar47 = peVar47->next_file;" (assignment_expression "peVar47 = peVar47->next_file" identifier = (field_expression "peVar47->next_file" identifier -> field_identifier)) ;) (goto_statement "goto joined_r0x000235e4;" goto statement_identifier ;) })) (expression_statement "peVar43->cur_scope = psVar21;" (assignment_expression "peVar43->cur_scope = psVar21" (field_expression "peVar43->cur_scope" identifier -> field_identifier) = identifier) ;) (if_statement "if ((bVar62) || (peVar43->fake != 0)) break;" if (parenthesized_expression "((bVar62) || (peVar43->fake != 0))" ( (binary_expression "(bVar62) || (peVar43->fake != 0)" (parenthesized_expression "(bVar62)" ( identifier )) || (parenthesized_expression "(peVar43->fake != 0)" ( (binary_expression "peVar43->fake != 0" (field_expression "peVar43->fake" identifier -> field_identifier) != number_literal) ))) )) (break_statement "break;" break ;)) (expression_statement "bVar62 = true;" (assignment_expression "bVar62 = true" identifier = true) ;) (expression_statement "pcVar22 = (char *)dcgettext(0,"missing .end or .bend at end of file",5);" (assignment_expression "pcVar22 = (char *)dcgettext(0,"missing .end or .bend at end of file",5)" identifier = (cast_expression "(char *)dcgettext(0,"missing .end or .bend at end of file",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"missing .end or .bend at end of file",5)" identifier (argument_list "(0,"missing .end or .bend at end of file",5)" ( number_literal , (string_literal ""missing .end or .bend at end of file"" " string_content ") , number_literal ))))) ;) (expression_statement "as_warn(pcVar22);" (call_expression "as_warn(pcVar22)" identifier (argument_list "(pcVar22)" ( identifier ))) ;) (expression_statement "psVar21 = cur_file_ptr->cur_scope;" (assignment_expression "psVar21 = cur_file_ptr->cur_scope" identifier = (field_expression "cur_file_ptr->cur_scope" identifier -> field_identifier)) ;) (expression_statement "peVar43 = cur_file_ptr;" (assignment_expression "peVar43 = cur_file_ptr" identifier = identifier) ;) (if_statement "if (psVar21 == (scope_t *)0x0) goto LAB_00023650;" if (parenthesized_expression "(psVar21 == (scope_t *)0x0)" ( (binary_expression "psVar21 == (scope_t *)0x0" identifier == (cast_expression "(scope_t *)0x0" ( (type_descriptor "scope_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00023650;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_00023650:\n    peVar47 = peVar47->next_file;" statement_identifier : (expression_statement "peVar47 = peVar47->next_file;" (assignment_expression "peVar47 = peVar47->next_file" identifier = (field_expression "peVar47->next_file" identifier -> field_identifier)) ;)) (goto_statement "goto joined_r0x000235e4;" goto statement_identifier ;) }))) (expression_statement "buf = (char *)xmalloc(0x2000);" (assignment_expression "buf = (char *)xmalloc(0x2000)" identifier = (cast_expression "(char *)xmalloc(0x2000)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x2000)" identifier (argument_list "(0x2000)" ( number_literal ))))) ;) (expression_statement "plVar40 = first_lineno;" (assignment_expression "plVar40 = first_lineno" identifier = identifier) ;) (expression_statement "local_b4 = first_lineno;" (assignment_expression "local_b4 = first_lineno" identifier = identifier) ;) (expression_statement "bufend = buf + 0x2000;" (assignment_expression "bufend = buf + 0x2000" identifier = (binary_expression "buf + 0x2000" identifier + number_literal)) ;) (expression_statement "bVar62 = debug_type == DEBUG_ECOFF;" (assignment_expression "bVar62 = debug_type == DEBUG_ECOFF" identifier = (binary_expression "debug_type == DEBUG_ECOFF" identifier == identifier)) ;) (expression_statement "*(undefined4 *)&hdr->cbLineOffset = 0;" (assignment_expression "*(undefined4 *)&hdr->cbLineOffset = 0" (pointer_expression "*(undefined4 *)&hdr->cbLineOffset" * (cast_expression "(undefined4 *)&hdr->cbLineOffset" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&hdr->cbLineOffset" & (field_expression "hdr->cbLineOffset" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&hdr->cbLineOffset + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&hdr->cbLineOffset + 4) = 0" (pointer_expression "*(undefined4 *)((int)&hdr->cbLineOffset + 4)" * (cast_expression "(undefined4 *)((int)&hdr->cbLineOffset + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&hdr->cbLineOffset + 4)" ( (binary_expression "(int)&hdr->cbLineOffset + 4" (cast_expression "(int)&hdr->cbLineOffset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&hdr->cbLineOffset" & (field_expression "hdr->cbLineOffset" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "hdr->ilineMax = 0;" (assignment_expression "hdr->ilineMax = 0" (field_expression "hdr->ilineMax" identifier -> field_identifier) = number_literal) ;) (expression_statement "bufptr = buf;" (assignment_expression "bufptr = buf" identifier = identifier) ;) (if_statement "if ((bVar62) || (first_proc_ptr == (proc_t *)0x0)) {\n    if (plVar40 != (lineno_list_t *)0x0) {\n      plVar40 = plVar40->next;\n      goto LAB_00023764;\n    }\n  }\n  else if (plVar40 != (lineno_list_t *)0x0) {\n    vVar65 = S_GET_VALUE(first_proc_ptr->sym->as_sym);\n    paVar23 = S_GET_SEGMENT(first_proc_ptr->sym->as_sym);\n    if ((int)(vVar65 >> 0x20) + *(int *)((int)&paVar23->vma + 4) +\n        (uint)CARRY4((uint)vVar65,(uint)paVar23->vma) == 0 && (uint)vVar65 + (int)paVar23->vma == 0)\n    {\n      plVar40 = plVar40->next;\n    }\n    else {\n      first.file = plVar40->file;\n      first.paddr = 0;\n      first.proc = plVar40->proc;\n      first.lineno = 0;\n      first.frag = &zero_address_frag;\n      first.next = local_b4;\n      local_b4 = &first;\n    }\nLAB_00023764:\n    local_9c = (page *)0x0;\n    local_ac = (aux_t *)0x0;\n    local_94 = (lineno_list_t *)0x0;\n    local_a0 = (page *)0x0;\n    local_98 = (proc_t *)0x0;\nLAB_000237a6:\n    plVar41 = plVar40;\n    if (plVar41 == (lineno_list *)0x0) {\n      uVar24 = 1;\nLAB_000237e1:\n      peVar43 = local_b4->file;\n      local_a8 = local_b4->proc;\n      local_a4 = (page *)((int)local_9c + uVar24);\n      if ((page *)peVar43 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (proc_t *)0x0) {\n            (local_98->pdr).lnHigh = local_94->lineno;\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (lineno_list_t *)0x0) &&\n           (iVar46 = local_b4->lineno - local_94->lineno, iVar46 != 0)) {\n          do {\n            iVar59 = uVar24 - 1;\n            if (iVar59 < 0x10) {\n              uVar24 = 0;\n            }\n            else {\n              uVar24 = uVar24 - 0x10;\n              iVar59 = 0xf;\n            }\n            if (iVar46 + 7U < 0xf) {\n              if (bufend <= bufptr) {\n                bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,1);\n              }\n              local_ac = (aux_t *)((int)local_ac + 1);\n              *bufptr = (char)iVar46 * '\x10' + (char)iVar59;\n              bufptr = bufptr + 1;\n              break;\n            }\n            if ((int)bufend - (int)bufptr < 3) {\n              bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,3);\n            }\n            *bufptr = (char)iVar59 + -0x80;\n            if (iVar46 < -0x8000) {\n              iVar46 = iVar46 + 0x8000;\n              cVar56 = -0x80;\n              cVar39 = '\0';\n            }\n            else {\n              if (iVar46 < 0x8000) goto code_r0x00024a60;\n              iVar46 = iVar46 + -0x7fff;\n              cVar56 = '\x7f';\n              cVar39 = -1;\n            }\n            local_ac = (aux_t *)((int)local_ac + 3);\n            pcVar22 = bufptr + 2;\n            bufptr[1] = cVar56;\n            bufptr = bufptr + 3;\n            *pcVar22 = cVar39;\n          } while( true );\n        }\n      }\n      else {\n        bVar62 = local_98 != local_a8;\n        if (local_98 != (proc_t *)0x0 && bVar62) {\n          (local_98->pdr).lnHigh = local_94->lineno;\n          bVar62 = local_98 != (proc_t *)0x0 && bVar62;\n        }\n        lVar25 = 0;\n        if (local_a0 != (page *)0x0) {\n          local_9c = (page *)0x0;\n          pbVar1 = &((FDR *)local_a0)->cbLineOffset;\n          bVar17 = *pbVar1;\n          *(uint *)((int)&((FDR *)local_a0)->cbLine + 4) =\n               -(uint)(local_ac < (uint)*pbVar1) -\n               *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);\n          *(int *)&((FDR *)local_a0)->cbLine = (int)local_ac - (int)bVar17;\n          ((FDR *)local_a0)->cline = (long)local_a4;\n          hdr->ilineMax = hdr->ilineMax + (int)local_a4->byte;\n          lVar25 = ((FDR *)local_a0)->cline + ((FDR *)local_a0)->ilineBase;\n          local_a4 = (page *)uVar24;\n        }\n        (peVar43->fdr).ilineBase = lVar25;\n        *(aux_t **)&(peVar43->fdr).cbLineOffset = local_ac;\n        *(undefined4 *)((int)&(peVar43->fdr).cbLineOffset + 4) = 0;\n        local_a0 = (page *)peVar43;\n        if (bVar62) {\nLAB_000238a1:\n          if (local_a8 != (proc_t *)0x0) {\n            (local_a8->pdr).lnLow = local_b4->lineno;\n            pbVar1 = &((FDR *)local_a0)->cbLineOffset;\n            bVar17 = *pbVar1;\n            iVar46 = *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);\n            *(int *)&(local_a8->pdr).cbLineOffset = (int)local_ac - (int)*pbVar1;\n            *(uint *)((int)&(local_a8->pdr).cbLineOffset + 4) =\n                 -(uint)(local_ac < (uint)bVar17) - iVar46;\n            (local_a8->pdr).iline = (long)local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }\n      goto LAB_000238d0;\n    }\n    pfVar5 = plVar41->frag;\n    uVar49 = plVar41->paddr + (int)pfVar5->fr_address;\n    uVar57 = *(int *)((int)&pfVar5->fr_address + 4) +\n             (uint)CARRY4(plVar41->paddr,(uint)pfVar5->fr_address);\n    pfVar5 = local_b4->frag;\n    uVar24 = local_b4->paddr + (int)pfVar5->fr_address;\n    uVar44 = *(int *)((int)&pfVar5->fr_address + 4) +\n             (uint)CARRY4(local_b4->paddr,(uint)pfVar5->fr_address);\n    if (uVar44 < uVar57 || uVar44 - uVar57 < (uint)(uVar24 < uVar49)) {\n      uVar24 = uVar49 - uVar24 >> 2 | ((uVar57 - uVar44) - (uint)(uVar49 < uVar24)) * 0x40000000;\n      goto LAB_000237e1;\n    }\n    goto LAB_000237a0;\n  }" if (parenthesized_expression "((bVar62) || (first_proc_ptr == (proc_t *)0x0))" ( (binary_expression "(bVar62) || (first_proc_ptr == (proc_t *)0x0)" (parenthesized_expression "(bVar62)" ( identifier )) || (parenthesized_expression "(first_proc_ptr == (proc_t *)0x0)" ( (binary_expression "first_proc_ptr == (proc_t *)0x0" identifier == (cast_expression "(proc_t *)0x0" ( (type_descriptor "proc_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    if (plVar40 != (lineno_list_t *)0x0) {\n      plVar40 = plVar40->next;\n      goto LAB_00023764;\n    }\n  }" { (if_statement "if (plVar40 != (lineno_list_t *)0x0) {\n      plVar40 = plVar40->next;\n      goto LAB_00023764;\n    }" if (parenthesized_expression "(plVar40 != (lineno_list_t *)0x0)" ( (binary_expression "plVar40 != (lineno_list_t *)0x0" identifier != (cast_expression "(lineno_list_t *)0x0" ( (type_descriptor "lineno_list_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      plVar40 = plVar40->next;\n      goto LAB_00023764;\n    }" { (expression_statement "plVar40 = plVar40->next;" (assignment_expression "plVar40 = plVar40->next" identifier = (field_expression "plVar40->next" identifier -> field_identifier)) ;) (goto_statement "goto LAB_00023764;" goto statement_identifier ;) })) }) (else_clause "else if (plVar40 != (lineno_list_t *)0x0) {\n    vVar65 = S_GET_VALUE(first_proc_ptr->sym->as_sym);\n    paVar23 = S_GET_SEGMENT(first_proc_ptr->sym->as_sym);\n    if ((int)(vVar65 >> 0x20) + *(int *)((int)&paVar23->vma + 4) +\n        (uint)CARRY4((uint)vVar65,(uint)paVar23->vma) == 0 && (uint)vVar65 + (int)paVar23->vma == 0)\n    {\n      plVar40 = plVar40->next;\n    }\n    else {\n      first.file = plVar40->file;\n      first.paddr = 0;\n      first.proc = plVar40->proc;\n      first.lineno = 0;\n      first.frag = &zero_address_frag;\n      first.next = local_b4;\n      local_b4 = &first;\n    }\nLAB_00023764:\n    local_9c = (page *)0x0;\n    local_ac = (aux_t *)0x0;\n    local_94 = (lineno_list_t *)0x0;\n    local_a0 = (page *)0x0;\n    local_98 = (proc_t *)0x0;\nLAB_000237a6:\n    plVar41 = plVar40;\n    if (plVar41 == (lineno_list *)0x0) {\n      uVar24 = 1;\nLAB_000237e1:\n      peVar43 = local_b4->file;\n      local_a8 = local_b4->proc;\n      local_a4 = (page *)((int)local_9c + uVar24);\n      if ((page *)peVar43 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (proc_t *)0x0) {\n            (local_98->pdr).lnHigh = local_94->lineno;\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (lineno_list_t *)0x0) &&\n           (iVar46 = local_b4->lineno - local_94->lineno, iVar46 != 0)) {\n          do {\n            iVar59 = uVar24 - 1;\n            if (iVar59 < 0x10) {\n              uVar24 = 0;\n            }\n            else {\n              uVar24 = uVar24 - 0x10;\n              iVar59 = 0xf;\n            }\n            if (iVar46 + 7U < 0xf) {\n              if (bufend <= bufptr) {\n                bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,1);\n              }\n              local_ac = (aux_t *)((int)local_ac + 1);\n              *bufptr = (char)iVar46 * '\x10' + (char)iVar59;\n              bufptr = bufptr + 1;\n              break;\n            }\n            if ((int)bufend - (int)bufptr < 3) {\n              bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,3);\n            }\n            *bufptr = (char)iVar59 + -0x80;\n            if (iVar46 < -0x8000) {\n              iVar46 = iVar46 + 0x8000;\n              cVar56 = -0x80;\n              cVar39 = '\0';\n            }\n            else {\n              if (iVar46 < 0x8000) goto code_r0x00024a60;\n              iVar46 = iVar46 + -0x7fff;\n              cVar56 = '\x7f';\n              cVar39 = -1;\n            }\n            local_ac = (aux_t *)((int)local_ac + 3);\n            pcVar22 = bufptr + 2;\n            bufptr[1] = cVar56;\n            bufptr = bufptr + 3;\n            *pcVar22 = cVar39;\n          } while( true );\n        }\n      }\n      else {\n        bVar62 = local_98 != local_a8;\n        if (local_98 != (proc_t *)0x0 && bVar62) {\n          (local_98->pdr).lnHigh = local_94->lineno;\n          bVar62 = local_98 != (proc_t *)0x0 && bVar62;\n        }\n        lVar25 = 0;\n        if (local_a0 != (page *)0x0) {\n          local_9c = (page *)0x0;\n          pbVar1 = &((FDR *)local_a0)->cbLineOffset;\n          bVar17 = *pbVar1;\n          *(uint *)((int)&((FDR *)local_a0)->cbLine + 4) =\n               -(uint)(local_ac < (uint)*pbVar1) -\n               *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);\n          *(int *)&((FDR *)local_a0)->cbLine = (int)local_ac - (int)bVar17;\n          ((FDR *)local_a0)->cline = (long)local_a4;\n          hdr->ilineMax = hdr->ilineMax + (int)local_a4->byte;\n          lVar25 = ((FDR *)local_a0)->cline + ((FDR *)local_a0)->ilineBase;\n          local_a4 = (page *)uVar24;\n        }\n        (peVar43->fdr).ilineBase = lVar25;\n        *(aux_t **)&(peVar43->fdr).cbLineOffset = local_ac;\n        *(undefined4 *)((int)&(peVar43->fdr).cbLineOffset + 4) = 0;\n        local_a0 = (page *)peVar43;\n        if (bVar62) {\nLAB_000238a1:\n          if (local_a8 != (proc_t *)0x0) {\n            (local_a8->pdr).lnLow = local_b4->lineno;\n            pbVar1 = &((FDR *)local_a0)->cbLineOffset;\n            bVar17 = *pbVar1;\n            iVar46 = *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);\n            *(int *)&(local_a8->pdr).cbLineOffset = (int)local_ac - (int)*pbVar1;\n            *(uint *)((int)&(local_a8->pdr).cbLineOffset + 4) =\n                 -(uint)(local_ac < (uint)bVar17) - iVar46;\n            (local_a8->pdr).iline = (long)local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }\n      goto LAB_000238d0;\n    }\n    pfVar5 = plVar41->frag;\n    uVar49 = plVar41->paddr + (int)pfVar5->fr_address;\n    uVar57 = *(int *)((int)&pfVar5->fr_address + 4) +\n             (uint)CARRY4(plVar41->paddr,(uint)pfVar5->fr_address);\n    pfVar5 = local_b4->frag;\n    uVar24 = local_b4->paddr + (int)pfVar5->fr_address;\n    uVar44 = *(int *)((int)&pfVar5->fr_address + 4) +\n             (uint)CARRY4(local_b4->paddr,(uint)pfVar5->fr_address);\n    if (uVar44 < uVar57 || uVar44 - uVar57 < (uint)(uVar24 < uVar49)) {\n      uVar24 = uVar49 - uVar24 >> 2 | ((uVar57 - uVar44) - (uint)(uVar49 < uVar24)) * 0x40000000;\n      goto LAB_000237e1;\n    }\n    goto LAB_000237a0;\n  }" else (if_statement "if (plVar40 != (lineno_list_t *)0x0) {\n    vVar65 = S_GET_VALUE(first_proc_ptr->sym->as_sym);\n    paVar23 = S_GET_SEGMENT(first_proc_ptr->sym->as_sym);\n    if ((int)(vVar65 >> 0x20) + *(int *)((int)&paVar23->vma + 4) +\n        (uint)CARRY4((uint)vVar65,(uint)paVar23->vma) == 0 && (uint)vVar65 + (int)paVar23->vma == 0)\n    {\n      plVar40 = plVar40->next;\n    }\n    else {\n      first.file = plVar40->file;\n      first.paddr = 0;\n      first.proc = plVar40->proc;\n      first.lineno = 0;\n      first.frag = &zero_address_frag;\n      first.next = local_b4;\n      local_b4 = &first;\n    }\nLAB_00023764:\n    local_9c = (page *)0x0;\n    local_ac = (aux_t *)0x0;\n    local_94 = (lineno_list_t *)0x0;\n    local_a0 = (page *)0x0;\n    local_98 = (proc_t *)0x0;\nLAB_000237a6:\n    plVar41 = plVar40;\n    if (plVar41 == (lineno_list *)0x0) {\n      uVar24 = 1;\nLAB_000237e1:\n      peVar43 = local_b4->file;\n      local_a8 = local_b4->proc;\n      local_a4 = (page *)((int)local_9c + uVar24);\n      if ((page *)peVar43 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (proc_t *)0x0) {\n            (local_98->pdr).lnHigh = local_94->lineno;\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (lineno_list_t *)0x0) &&\n           (iVar46 = local_b4->lineno - local_94->lineno, iVar46 != 0)) {\n          do {\n            iVar59 = uVar24 - 1;\n            if (iVar59 < 0x10) {\n              uVar24 = 0;\n            }\n            else {\n              uVar24 = uVar24 - 0x10;\n              iVar59 = 0xf;\n            }\n            if (iVar46 + 7U < 0xf) {\n              if (bufend <= bufptr) {\n                bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,1);\n              }\n              local_ac = (aux_t *)((int)local_ac + 1);\n              *bufptr = (char)iVar46 * '\x10' + (char)iVar59;\n              bufptr = bufptr + 1;\n              break;\n            }\n            if ((int)bufend - (int)bufptr < 3) {\n              bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,3);\n            }\n            *bufptr = (char)iVar59 + -0x80;\n            if (iVar46 < -0x8000) {\n              iVar46 = iVar46 + 0x8000;\n              cVar56 = -0x80;\n              cVar39 = '\0';\n            }\n            else {\n              if (iVar46 < 0x8000) goto code_r0x00024a60;\n              iVar46 = iVar46 + -0x7fff;\n              cVar56 = '\x7f';\n              cVar39 = -1;\n            }\n            local_ac = (aux_t *)((int)local_ac + 3);\n            pcVar22 = bufptr + 2;\n            bufptr[1] = cVar56;\n            bufptr = bufptr + 3;\n            *pcVar22 = cVar39;\n          } while( true );\n        }\n      }\n      else {\n        bVar62 = local_98 != local_a8;\n        if (local_98 != (proc_t *)0x0 && bVar62) {\n          (local_98->pdr).lnHigh = local_94->lineno;\n          bVar62 = local_98 != (proc_t *)0x0 && bVar62;\n        }\n        lVar25 = 0;\n        if (local_a0 != (page *)0x0) {\n          local_9c = (page *)0x0;\n          pbVar1 = &((FDR *)local_a0)->cbLineOffset;\n          bVar17 = *pbVar1;\n          *(uint *)((int)&((FDR *)local_a0)->cbLine + 4) =\n               -(uint)(local_ac < (uint)*pbVar1) -\n               *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);\n          *(int *)&((FDR *)local_a0)->cbLine = (int)local_ac - (int)bVar17;\n          ((FDR *)local_a0)->cline = (long)local_a4;\n          hdr->ilineMax = hdr->ilineMax + (int)local_a4->byte;\n          lVar25 = ((FDR *)local_a0)->cline + ((FDR *)local_a0)->ilineBase;\n          local_a4 = (page *)uVar24;\n        }\n        (peVar43->fdr).ilineBase = lVar25;\n        *(aux_t **)&(peVar43->fdr).cbLineOffset = local_ac;\n        *(undefined4 *)((int)&(peVar43->fdr).cbLineOffset + 4) = 0;\n        local_a0 = (page *)peVar43;\n        if (bVar62) {\nLAB_000238a1:\n          if (local_a8 != (proc_t *)0x0) {\n            (local_a8->pdr).lnLow = local_b4->lineno;\n            pbVar1 = &((FDR *)local_a0)->cbLineOffset;\n            bVar17 = *pbVar1;\n            iVar46 = *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);\n            *(int *)&(local_a8->pdr).cbLineOffset = (int)local_ac - (int)*pbVar1;\n            *(uint *)((int)&(local_a8->pdr).cbLineOffset + 4) =\n                 -(uint)(local_ac < (uint)bVar17) - iVar46;\n            (local_a8->pdr).iline = (long)local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }\n      goto LAB_000238d0;\n    }\n    pfVar5 = plVar41->frag;\n    uVar49 = plVar41->paddr + (int)pfVar5->fr_address;\n    uVar57 = *(int *)((int)&pfVar5->fr_address + 4) +\n             (uint)CARRY4(plVar41->paddr,(uint)pfVar5->fr_address);\n    pfVar5 = local_b4->frag;\n    uVar24 = local_b4->paddr + (int)pfVar5->fr_address;\n    uVar44 = *(int *)((int)&pfVar5->fr_address + 4) +\n             (uint)CARRY4(local_b4->paddr,(uint)pfVar5->fr_address);\n    if (uVar44 < uVar57 || uVar44 - uVar57 < (uint)(uVar24 < uVar49)) {\n      uVar24 = uVar49 - uVar24 >> 2 | ((uVar57 - uVar44) - (uint)(uVar49 < uVar24)) * 0x40000000;\n      goto LAB_000237e1;\n    }\n    goto LAB_000237a0;\n  }" if (parenthesized_expression "(plVar40 != (lineno_list_t *)0x0)" ( (binary_expression "plVar40 != (lineno_list_t *)0x0" identifier != (cast_expression "(lineno_list_t *)0x0" ( (type_descriptor "lineno_list_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    vVar65 = S_GET_VALUE(first_proc_ptr->sym->as_sym);\n    paVar23 = S_GET_SEGMENT(first_proc_ptr->sym->as_sym);\n    if ((int)(vVar65 >> 0x20) + *(int *)((int)&paVar23->vma + 4) +\n        (uint)CARRY4((uint)vVar65,(uint)paVar23->vma) == 0 && (uint)vVar65 + (int)paVar23->vma == 0)\n    {\n      plVar40 = plVar40->next;\n    }\n    else {\n      first.file = plVar40->file;\n      first.paddr = 0;\n      first.proc = plVar40->proc;\n      first.lineno = 0;\n      first.frag = &zero_address_frag;\n      first.next = local_b4;\n      local_b4 = &first;\n    }\nLAB_00023764:\n    local_9c = (page *)0x0;\n    local_ac = (aux_t *)0x0;\n    local_94 = (lineno_list_t *)0x0;\n    local_a0 = (page *)0x0;\n    local_98 = (proc_t *)0x0;\nLAB_000237a6:\n    plVar41 = plVar40;\n    if (plVar41 == (lineno_list *)0x0) {\n      uVar24 = 1;\nLAB_000237e1:\n      peVar43 = local_b4->file;\n      local_a8 = local_b4->proc;\n      local_a4 = (page *)((int)local_9c + uVar24);\n      if ((page *)peVar43 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (proc_t *)0x0) {\n            (local_98->pdr).lnHigh = local_94->lineno;\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (lineno_list_t *)0x0) &&\n           (iVar46 = local_b4->lineno - local_94->lineno, iVar46 != 0)) {\n          do {\n            iVar59 = uVar24 - 1;\n            if (iVar59 < 0x10) {\n              uVar24 = 0;\n            }\n            else {\n              uVar24 = uVar24 - 0x10;\n              iVar59 = 0xf;\n            }\n            if (iVar46 + 7U < 0xf) {\n              if (bufend <= bufptr) {\n                bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,1);\n              }\n              local_ac = (aux_t *)((int)local_ac + 1);\n              *bufptr = (char)iVar46 * '\x10' + (char)iVar59;\n              bufptr = bufptr + 1;\n              break;\n            }\n            if ((int)bufend - (int)bufptr < 3) {\n              bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,3);\n            }\n            *bufptr = (char)iVar59 + -0x80;\n            if (iVar46 < -0x8000) {\n              iVar46 = iVar46 + 0x8000;\n              cVar56 = -0x80;\n              cVar39 = '\0';\n            }\n            else {\n              if (iVar46 < 0x8000) goto code_r0x00024a60;\n              iVar46 = iVar46 + -0x7fff;\n              cVar56 = '\x7f';\n              cVar39 = -1;\n            }\n            local_ac = (aux_t *)((int)local_ac + 3);\n            pcVar22 = bufptr + 2;\n            bufptr[1] = cVar56;\n            bufptr = bufptr + 3;\n            *pcVar22 = cVar39;\n          } while( true );\n        }\n      }\n      else {\n        bVar62 = local_98 != local_a8;\n        if (local_98 != (proc_t *)0x0 && bVar62) {\n          (local_98->pdr).lnHigh = local_94->lineno;\n          bVar62 = local_98 != (proc_t *)0x0 && bVar62;\n        }\n        lVar25 = 0;\n        if (local_a0 != (page *)0x0) {\n          local_9c = (page *)0x0;\n          pbVar1 = &((FDR *)local_a0)->cbLineOffset;\n          bVar17 = *pbVar1;\n          *(uint *)((int)&((FDR *)local_a0)->cbLine + 4) =\n               -(uint)(local_ac < (uint)*pbVar1) -\n               *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);\n          *(int *)&((FDR *)local_a0)->cbLine = (int)local_ac - (int)bVar17;\n          ((FDR *)local_a0)->cline = (long)local_a4;\n          hdr->ilineMax = hdr->ilineMax + (int)local_a4->byte;\n          lVar25 = ((FDR *)local_a0)->cline + ((FDR *)local_a0)->ilineBase;\n          local_a4 = (page *)uVar24;\n        }\n        (peVar43->fdr).ilineBase = lVar25;\n        *(aux_t **)&(peVar43->fdr).cbLineOffset = local_ac;\n        *(undefined4 *)((int)&(peVar43->fdr).cbLineOffset + 4) = 0;\n        local_a0 = (page *)peVar43;\n        if (bVar62) {\nLAB_000238a1:\n          if (local_a8 != (proc_t *)0x0) {\n            (local_a8->pdr).lnLow = local_b4->lineno;\n            pbVar1 = &((FDR *)local_a0)->cbLineOffset;\n            bVar17 = *pbVar1;\n            iVar46 = *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);\n            *(int *)&(local_a8->pdr).cbLineOffset = (int)local_ac - (int)*pbVar1;\n            *(uint *)((int)&(local_a8->pdr).cbLineOffset + 4) =\n                 -(uint)(local_ac < (uint)bVar17) - iVar46;\n            (local_a8->pdr).iline = (long)local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }\n      goto LAB_000238d0;\n    }\n    pfVar5 = plVar41->frag;\n    uVar49 = plVar41->paddr + (int)pfVar5->fr_address;\n    uVar57 = *(int *)((int)&pfVar5->fr_address + 4) +\n             (uint)CARRY4(plVar41->paddr,(uint)pfVar5->fr_address);\n    pfVar5 = local_b4->frag;\n    uVar24 = local_b4->paddr + (int)pfVar5->fr_address;\n    uVar44 = *(int *)((int)&pfVar5->fr_address + 4) +\n             (uint)CARRY4(local_b4->paddr,(uint)pfVar5->fr_address);\n    if (uVar44 < uVar57 || uVar44 - uVar57 < (uint)(uVar24 < uVar49)) {\n      uVar24 = uVar49 - uVar24 >> 2 | ((uVar57 - uVar44) - (uint)(uVar49 < uVar24)) * 0x40000000;\n      goto LAB_000237e1;\n    }\n    goto LAB_000237a0;\n  }" { (expression_statement "vVar65 = S_GET_VALUE(first_proc_ptr->sym->as_sym);" (assignment_expression "vVar65 = S_GET_VALUE(first_proc_ptr->sym->as_sym)" identifier = (call_expression "S_GET_VALUE(first_proc_ptr->sym->as_sym)" identifier (argument_list "(first_proc_ptr->sym->as_sym)" ( (field_expression "first_proc_ptr->sym->as_sym" (field_expression "first_proc_ptr->sym" identifier -> field_identifier) -> field_identifier) )))) ;) (expression_statement "paVar23 = S_GET_SEGMENT(first_proc_ptr->sym->as_sym);" (assignment_expression "paVar23 = S_GET_SEGMENT(first_proc_ptr->sym->as_sym)" identifier = (call_expression "S_GET_SEGMENT(first_proc_ptr->sym->as_sym)" identifier (argument_list "(first_proc_ptr->sym->as_sym)" ( (field_expression "first_proc_ptr->sym->as_sym" (field_expression "first_proc_ptr->sym" identifier -> field_identifier) -> field_identifier) )))) ;) (if_statement "if ((int)(vVar65 >> 0x20) + *(int *)((int)&paVar23->vma + 4) +\n        (uint)CARRY4((uint)vVar65,(uint)paVar23->vma) == 0 && (uint)vVar65 + (int)paVar23->vma == 0)\n    {\n      plVar40 = plVar40->next;\n    }\n    else {\n      first.file = plVar40->file;\n      first.paddr = 0;\n      first.proc = plVar40->proc;\n      first.lineno = 0;\n      first.frag = &zero_address_frag;\n      first.next = local_b4;\n      local_b4 = &first;\n    }" if (parenthesized_expression "((int)(vVar65 >> 0x20) + *(int *)((int)&paVar23->vma + 4) +\n        (uint)CARRY4((uint)vVar65,(uint)paVar23->vma) == 0 && (uint)vVar65 + (int)paVar23->vma == 0)" ( (binary_expression "(int)(vVar65 >> 0x20) + *(int *)((int)&paVar23->vma + 4) +\n        (uint)CARRY4((uint)vVar65,(uint)paVar23->vma) == 0 && (uint)vVar65 + (int)paVar23->vma == 0" (binary_expression "(int)(vVar65 >> 0x20) + *(int *)((int)&paVar23->vma + 4) +\n        (uint)CARRY4((uint)vVar65,(uint)paVar23->vma) == 0" (binary_expression "(int)(vVar65 >> 0x20) + *(int *)((int)&paVar23->vma + 4) +\n        (uint)CARRY4((uint)vVar65,(uint)paVar23->vma)" (binary_expression "(int)(vVar65 >> 0x20) + *(int *)((int)&paVar23->vma + 4)" (cast_expression "(int)(vVar65 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(vVar65 >> 0x20)" ( (binary_expression "vVar65 >> 0x20" identifier >> number_literal) ))) + (pointer_expression "*(int *)((int)&paVar23->vma + 4)" * (cast_expression "(int *)((int)&paVar23->vma + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar23->vma + 4)" ( (binary_expression "(int)&paVar23->vma + 4" (cast_expression "(int)&paVar23->vma" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar23->vma" & (field_expression "paVar23->vma" identifier -> field_identifier))) + number_literal) ))))) + (cast_expression "(uint)CARRY4((uint)vVar65,(uint)paVar23->vma)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)vVar65,(uint)paVar23->vma)" identifier (argument_list "((uint)vVar65,(uint)paVar23->vma)" ( (cast_expression "(uint)vVar65" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(uint)paVar23->vma" ( (type_descriptor "uint" type_identifier) ) (field_expression "paVar23->vma" identifier -> field_identifier)) ))))) == number_literal) && (binary_expression "(uint)vVar65 + (int)paVar23->vma == 0" (binary_expression "(uint)vVar65 + (int)paVar23->vma" (cast_expression "(uint)vVar65" ( (type_descriptor "uint" type_identifier) ) identifier) + (cast_expression "(int)paVar23->vma" ( (type_descriptor "int" primitive_type) ) (field_expression "paVar23->vma" identifier -> field_identifier))) == number_literal)) )) (compound_statement "{\n      plVar40 = plVar40->next;\n    }" { (expression_statement "plVar40 = plVar40->next;" (assignment_expression "plVar40 = plVar40->next" identifier = (field_expression "plVar40->next" identifier -> field_identifier)) ;) }) (else_clause "else {\n      first.file = plVar40->file;\n      first.paddr = 0;\n      first.proc = plVar40->proc;\n      first.lineno = 0;\n      first.frag = &zero_address_frag;\n      first.next = local_b4;\n      local_b4 = &first;\n    }" else (compound_statement "{\n      first.file = plVar40->file;\n      first.paddr = 0;\n      first.proc = plVar40->proc;\n      first.lineno = 0;\n      first.frag = &zero_address_frag;\n      first.next = local_b4;\n      local_b4 = &first;\n    }" { (expression_statement "first.file = plVar40->file;" (assignment_expression "first.file = plVar40->file" (field_expression "first.file" identifier . field_identifier) = (field_expression "plVar40->file" identifier -> field_identifier)) ;) (expression_statement "first.paddr = 0;" (assignment_expression "first.paddr = 0" (field_expression "first.paddr" identifier . field_identifier) = number_literal) ;) (expression_statement "first.proc = plVar40->proc;" (assignment_expression "first.proc = plVar40->proc" (field_expression "first.proc" identifier . field_identifier) = (field_expression "plVar40->proc" identifier -> field_identifier)) ;) (expression_statement "first.lineno = 0;" (assignment_expression "first.lineno = 0" (field_expression "first.lineno" identifier . field_identifier) = number_literal) ;) (expression_statement "first.frag = &zero_address_frag;" (assignment_expression "first.frag = &zero_address_frag" (field_expression "first.frag" identifier . field_identifier) = (pointer_expression "&zero_address_frag" & identifier)) ;) (expression_statement "first.next = local_b4;" (assignment_expression "first.next = local_b4" (field_expression "first.next" identifier . field_identifier) = identifier) ;) (expression_statement "local_b4 = &first;" (assignment_expression "local_b4 = &first" identifier = (pointer_expression "&first" & identifier)) ;) }))) (labeled_statement "LAB_00023764:\n    local_9c = (page *)0x0;" statement_identifier : (expression_statement "local_9c = (page *)0x0;" (assignment_expression "local_9c = (page *)0x0" identifier = (cast_expression "(page *)0x0" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "local_ac = (aux_t *)0x0;" (assignment_expression "local_ac = (aux_t *)0x0" identifier = (cast_expression "(aux_t *)0x0" ( (type_descriptor "aux_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_94 = (lineno_list_t *)0x0;" (assignment_expression "local_94 = (lineno_list_t *)0x0" identifier = (cast_expression "(lineno_list_t *)0x0" ( (type_descriptor "lineno_list_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_a0 = (page *)0x0;" (assignment_expression "local_a0 = (page *)0x0" identifier = (cast_expression "(page *)0x0" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_98 = (proc_t *)0x0;" (assignment_expression "local_98 = (proc_t *)0x0" identifier = (cast_expression "(proc_t *)0x0" ( (type_descriptor "proc_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_000237a6:\n    plVar41 = plVar40;" statement_identifier : (expression_statement "plVar41 = plVar40;" (assignment_expression "plVar41 = plVar40" identifier = identifier) ;)) (if_statement "if (plVar41 == (lineno_list *)0x0) {\n      uVar24 = 1;\nLAB_000237e1:\n      peVar43 = local_b4->file;\n      local_a8 = local_b4->proc;\n      local_a4 = (page *)((int)local_9c + uVar24);\n      if ((page *)peVar43 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (proc_t *)0x0) {\n            (local_98->pdr).lnHigh = local_94->lineno;\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (lineno_list_t *)0x0) &&\n           (iVar46 = local_b4->lineno - local_94->lineno, iVar46 != 0)) {\n          do {\n            iVar59 = uVar24 - 1;\n            if (iVar59 < 0x10) {\n              uVar24 = 0;\n            }\n            else {\n              uVar24 = uVar24 - 0x10;\n              iVar59 = 0xf;\n            }\n            if (iVar46 + 7U < 0xf) {\n              if (bufend <= bufptr) {\n                bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,1);\n              }\n              local_ac = (aux_t *)((int)local_ac + 1);\n              *bufptr = (char)iVar46 * '\x10' + (char)iVar59;\n              bufptr = bufptr + 1;\n              break;\n            }\n            if ((int)bufend - (int)bufptr < 3) {\n              bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,3);\n            }\n            *bufptr = (char)iVar59 + -0x80;\n            if (iVar46 < -0x8000) {\n              iVar46 = iVar46 + 0x8000;\n              cVar56 = -0x80;\n              cVar39 = '\0';\n            }\n            else {\n              if (iVar46 < 0x8000) goto code_r0x00024a60;\n              iVar46 = iVar46 + -0x7fff;\n              cVar56 = '\x7f';\n              cVar39 = -1;\n            }\n            local_ac = (aux_t *)((int)local_ac + 3);\n            pcVar22 = bufptr + 2;\n            bufptr[1] = cVar56;\n            bufptr = bufptr + 3;\n            *pcVar22 = cVar39;\n          } while( true );\n        }\n      }\n      else {\n        bVar62 = local_98 != local_a8;\n        if (local_98 != (proc_t *)0x0 && bVar62) {\n          (local_98->pdr).lnHigh = local_94->lineno;\n          bVar62 = local_98 != (proc_t *)0x0 && bVar62;\n        }\n        lVar25 = 0;\n        if (local_a0 != (page *)0x0) {\n          local_9c = (page *)0x0;\n          pbVar1 = &((FDR *)local_a0)->cbLineOffset;\n          bVar17 = *pbVar1;\n          *(uint *)((int)&((FDR *)local_a0)->cbLine + 4) =\n               -(uint)(local_ac < (uint)*pbVar1) -\n               *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);\n          *(int *)&((FDR *)local_a0)->cbLine = (int)local_ac - (int)bVar17;\n          ((FDR *)local_a0)->cline = (long)local_a4;\n          hdr->ilineMax = hdr->ilineMax + (int)local_a4->byte;\n          lVar25 = ((FDR *)local_a0)->cline + ((FDR *)local_a0)->ilineBase;\n          local_a4 = (page *)uVar24;\n        }\n        (peVar43->fdr).ilineBase = lVar25;\n        *(aux_t **)&(peVar43->fdr).cbLineOffset = local_ac;\n        *(undefined4 *)((int)&(peVar43->fdr).cbLineOffset + 4) = 0;\n        local_a0 = (page *)peVar43;\n        if (bVar62) {\nLAB_000238a1:\n          if (local_a8 != (proc_t *)0x0) {\n            (local_a8->pdr).lnLow = local_b4->lineno;\n            pbVar1 = &((FDR *)local_a0)->cbLineOffset;\n            bVar17 = *pbVar1;\n            iVar46 = *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);\n            *(int *)&(local_a8->pdr).cbLineOffset = (int)local_ac - (int)*pbVar1;\n            *(uint *)((int)&(local_a8->pdr).cbLineOffset + 4) =\n                 -(uint)(local_ac < (uint)bVar17) - iVar46;\n            (local_a8->pdr).iline = (long)local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }\n      goto LAB_000238d0;\n    }" if (parenthesized_expression "(plVar41 == (lineno_list *)0x0)" ( (binary_expression "plVar41 == (lineno_list *)0x0" identifier == (cast_expression "(lineno_list *)0x0" ( (type_descriptor "lineno_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar24 = 1;\nLAB_000237e1:\n      peVar43 = local_b4->file;\n      local_a8 = local_b4->proc;\n      local_a4 = (page *)((int)local_9c + uVar24);\n      if ((page *)peVar43 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (proc_t *)0x0) {\n            (local_98->pdr).lnHigh = local_94->lineno;\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (lineno_list_t *)0x0) &&\n           (iVar46 = local_b4->lineno - local_94->lineno, iVar46 != 0)) {\n          do {\n            iVar59 = uVar24 - 1;\n            if (iVar59 < 0x10) {\n              uVar24 = 0;\n            }\n            else {\n              uVar24 = uVar24 - 0x10;\n              iVar59 = 0xf;\n            }\n            if (iVar46 + 7U < 0xf) {\n              if (bufend <= bufptr) {\n                bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,1);\n              }\n              local_ac = (aux_t *)((int)local_ac + 1);\n              *bufptr = (char)iVar46 * '\x10' + (char)iVar59;\n              bufptr = bufptr + 1;\n              break;\n            }\n            if ((int)bufend - (int)bufptr < 3) {\n              bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,3);\n            }\n            *bufptr = (char)iVar59 + -0x80;\n            if (iVar46 < -0x8000) {\n              iVar46 = iVar46 + 0x8000;\n              cVar56 = -0x80;\n              cVar39 = '\0';\n            }\n            else {\n              if (iVar46 < 0x8000) goto code_r0x00024a60;\n              iVar46 = iVar46 + -0x7fff;\n              cVar56 = '\x7f';\n              cVar39 = -1;\n            }\n            local_ac = (aux_t *)((int)local_ac + 3);\n            pcVar22 = bufptr + 2;\n            bufptr[1] = cVar56;\n            bufptr = bufptr + 3;\n            *pcVar22 = cVar39;\n          } while( true );\n        }\n      }\n      else {\n        bVar62 = local_98 != local_a8;\n        if (local_98 != (proc_t *)0x0 && bVar62) {\n          (local_98->pdr).lnHigh = local_94->lineno;\n          bVar62 = local_98 != (proc_t *)0x0 && bVar62;\n        }\n        lVar25 = 0;\n        if (local_a0 != (page *)0x0) {\n          local_9c = (page *)0x0;\n          pbVar1 = &((FDR *)local_a0)->cbLineOffset;\n          bVar17 = *pbVar1;\n          *(uint *)((int)&((FDR *)local_a0)->cbLine + 4) =\n               -(uint)(local_ac < (uint)*pbVar1) -\n               *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);\n          *(int *)&((FDR *)local_a0)->cbLine = (int)local_ac - (int)bVar17;\n          ((FDR *)local_a0)->cline = (long)local_a4;\n          hdr->ilineMax = hdr->ilineMax + (int)local_a4->byte;\n          lVar25 = ((FDR *)local_a0)->cline + ((FDR *)local_a0)->ilineBase;\n          local_a4 = (page *)uVar24;\n        }\n        (peVar43->fdr).ilineBase = lVar25;\n        *(aux_t **)&(peVar43->fdr).cbLineOffset = local_ac;\n        *(undefined4 *)((int)&(peVar43->fdr).cbLineOffset + 4) = 0;\n        local_a0 = (page *)peVar43;\n        if (bVar62) {\nLAB_000238a1:\n          if (local_a8 != (proc_t *)0x0) {\n            (local_a8->pdr).lnLow = local_b4->lineno;\n            pbVar1 = &((FDR *)local_a0)->cbLineOffset;\n            bVar17 = *pbVar1;\n            iVar46 = *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);\n            *(int *)&(local_a8->pdr).cbLineOffset = (int)local_ac - (int)*pbVar1;\n            *(uint *)((int)&(local_a8->pdr).cbLineOffset + 4) =\n                 -(uint)(local_ac < (uint)bVar17) - iVar46;\n            (local_a8->pdr).iline = (long)local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }\n      goto LAB_000238d0;\n    }" { (expression_statement "uVar24 = 1;" (assignment_expression "uVar24 = 1" identifier = number_literal) ;) (labeled_statement "LAB_000237e1:\n      peVar43 = local_b4->file;" statement_identifier : (expression_statement "peVar43 = local_b4->file;" (assignment_expression "peVar43 = local_b4->file" identifier = (field_expression "local_b4->file" identifier -> field_identifier)) ;)) (expression_statement "local_a8 = local_b4->proc;" (assignment_expression "local_a8 = local_b4->proc" identifier = (field_expression "local_b4->proc" identifier -> field_identifier)) ;) (expression_statement "local_a4 = (page *)((int)local_9c + uVar24);" (assignment_expression "local_a4 = (page *)((int)local_9c + uVar24)" identifier = (cast_expression "(page *)((int)local_9c + uVar24)" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c + uVar24)" ( (binary_expression "(int)local_9c + uVar24" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (if_statement "if ((page *)peVar43 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (proc_t *)0x0) {\n            (local_98->pdr).lnHigh = local_94->lineno;\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (lineno_list_t *)0x0) &&\n           (iVar46 = local_b4->lineno - local_94->lineno, iVar46 != 0)) {\n          do {\n            iVar59 = uVar24 - 1;\n            if (iVar59 < 0x10) {\n              uVar24 = 0;\n            }\n            else {\n              uVar24 = uVar24 - 0x10;\n              iVar59 = 0xf;\n            }\n            if (iVar46 + 7U < 0xf) {\n              if (bufend <= bufptr) {\n                bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,1);\n              }\n              local_ac = (aux_t *)((int)local_ac + 1);\n              *bufptr = (char)iVar46 * '\x10' + (char)iVar59;\n              bufptr = bufptr + 1;\n              break;\n            }\n            if ((int)bufend - (int)bufptr < 3) {\n              bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,3);\n            }\n            *bufptr = (char)iVar59 + -0x80;\n            if (iVar46 < -0x8000) {\n              iVar46 = iVar46 + 0x8000;\n              cVar56 = -0x80;\n              cVar39 = '\0';\n            }\n            else {\n              if (iVar46 < 0x8000) goto code_r0x00024a60;\n              iVar46 = iVar46 + -0x7fff;\n              cVar56 = '\x7f';\n              cVar39 = -1;\n            }\n            local_ac = (aux_t *)((int)local_ac + 3);\n            pcVar22 = bufptr + 2;\n            bufptr[1] = cVar56;\n            bufptr = bufptr + 3;\n            *pcVar22 = cVar39;\n          } while( true );\n        }\n      }\n      else {\n        bVar62 = local_98 != local_a8;\n        if (local_98 != (proc_t *)0x0 && bVar62) {\n          (local_98->pdr).lnHigh = local_94->lineno;\n          bVar62 = local_98 != (proc_t *)0x0 && bVar62;\n        }\n        lVar25 = 0;\n        if (local_a0 != (page *)0x0) {\n          local_9c = (page *)0x0;\n          pbVar1 = &((FDR *)local_a0)->cbLineOffset;\n          bVar17 = *pbVar1;\n          *(uint *)((int)&((FDR *)local_a0)->cbLine + 4) =\n               -(uint)(local_ac < (uint)*pbVar1) -\n               *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);\n          *(int *)&((FDR *)local_a0)->cbLine = (int)local_ac - (int)bVar17;\n          ((FDR *)local_a0)->cline = (long)local_a4;\n          hdr->ilineMax = hdr->ilineMax + (int)local_a4->byte;\n          lVar25 = ((FDR *)local_a0)->cline + ((FDR *)local_a0)->ilineBase;\n          local_a4 = (page *)uVar24;\n        }\n        (peVar43->fdr).ilineBase = lVar25;\n        *(aux_t **)&(peVar43->fdr).cbLineOffset = local_ac;\n        *(undefined4 *)((int)&(peVar43->fdr).cbLineOffset + 4) = 0;\n        local_a0 = (page *)peVar43;\n        if (bVar62) {\nLAB_000238a1:\n          if (local_a8 != (proc_t *)0x0) {\n            (local_a8->pdr).lnLow = local_b4->lineno;\n            pbVar1 = &((FDR *)local_a0)->cbLineOffset;\n            bVar17 = *pbVar1;\n            iVar46 = *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);\n            *(int *)&(local_a8->pdr).cbLineOffset = (int)local_ac - (int)*pbVar1;\n            *(uint *)((int)&(local_a8->pdr).cbLineOffset + 4) =\n                 -(uint)(local_ac < (uint)bVar17) - iVar46;\n            (local_a8->pdr).iline = (long)local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }" if (parenthesized_expression "((page *)peVar43 == local_a0)" ( (binary_expression "(page *)peVar43 == local_a0" (cast_expression "(page *)peVar43" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == identifier) )) (compound_statement "{\n        if (local_98 != local_a8) {\n          if (local_98 != (proc_t *)0x0) {\n            (local_98->pdr).lnHigh = local_94->lineno;\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (lineno_list_t *)0x0) &&\n           (iVar46 = local_b4->lineno - local_94->lineno, iVar46 != 0)) {\n          do {\n            iVar59 = uVar24 - 1;\n            if (iVar59 < 0x10) {\n              uVar24 = 0;\n            }\n            else {\n              uVar24 = uVar24 - 0x10;\n              iVar59 = 0xf;\n            }\n            if (iVar46 + 7U < 0xf) {\n              if (bufend <= bufptr) {\n                bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,1);\n              }\n              local_ac = (aux_t *)((int)local_ac + 1);\n              *bufptr = (char)iVar46 * '\x10' + (char)iVar59;\n              bufptr = bufptr + 1;\n              break;\n            }\n            if ((int)bufend - (int)bufptr < 3) {\n              bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,3);\n            }\n            *bufptr = (char)iVar59 + -0x80;\n            if (iVar46 < -0x8000) {\n              iVar46 = iVar46 + 0x8000;\n              cVar56 = -0x80;\n              cVar39 = '\0';\n            }\n            else {\n              if (iVar46 < 0x8000) goto code_r0x00024a60;\n              iVar46 = iVar46 + -0x7fff;\n              cVar56 = '\x7f';\n              cVar39 = -1;\n            }\n            local_ac = (aux_t *)((int)local_ac + 3);\n            pcVar22 = bufptr + 2;\n            bufptr[1] = cVar56;\n            bufptr = bufptr + 3;\n            *pcVar22 = cVar39;\n          } while( true );\n        }\n      }" { (if_statement "if (local_98 != local_a8) {\n          if (local_98 != (proc_t *)0x0) {\n            (local_98->pdr).lnHigh = local_94->lineno;\n          }\n          goto LAB_000238a1;\n        }" if (parenthesized_expression "(local_98 != local_a8)" ( (binary_expression "local_98 != local_a8" identifier != identifier) )) (compound_statement "{\n          if (local_98 != (proc_t *)0x0) {\n            (local_98->pdr).lnHigh = local_94->lineno;\n          }\n          goto LAB_000238a1;\n        }" { (if_statement "if (local_98 != (proc_t *)0x0) {\n            (local_98->pdr).lnHigh = local_94->lineno;\n          }" if (parenthesized_expression "(local_98 != (proc_t *)0x0)" ( (binary_expression "local_98 != (proc_t *)0x0" identifier != (cast_expression "(proc_t *)0x0" ( (type_descriptor "proc_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            (local_98->pdr).lnHigh = local_94->lineno;\n          }" { (expression_statement "(local_98->pdr).lnHigh = local_94->lineno;" (assignment_expression "(local_98->pdr).lnHigh = local_94->lineno" (field_expression "(local_98->pdr).lnHigh" (parenthesized_expression "(local_98->pdr)" ( (field_expression "local_98->pdr" identifier -> field_identifier) )) . field_identifier) = (field_expression "local_94->lineno" identifier -> field_identifier)) ;) })) (goto_statement "goto LAB_000238a1;" goto statement_identifier ;) })) (if_statement "if ((local_94 != (lineno_list_t *)0x0) &&\n           (iVar46 = local_b4->lineno - local_94->lineno, iVar46 != 0)) {\n          do {\n            iVar59 = uVar24 - 1;\n            if (iVar59 < 0x10) {\n              uVar24 = 0;\n            }\n            else {\n              uVar24 = uVar24 - 0x10;\n              iVar59 = 0xf;\n            }\n            if (iVar46 + 7U < 0xf) {\n              if (bufend <= bufptr) {\n                bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,1);\n              }\n              local_ac = (aux_t *)((int)local_ac + 1);\n              *bufptr = (char)iVar46 * '\x10' + (char)iVar59;\n              bufptr = bufptr + 1;\n              break;\n            }\n            if ((int)bufend - (int)bufptr < 3) {\n              bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,3);\n            }\n            *bufptr = (char)iVar59 + -0x80;\n            if (iVar46 < -0x8000) {\n              iVar46 = iVar46 + 0x8000;\n              cVar56 = -0x80;\n              cVar39 = '\0';\n            }\n            else {\n              if (iVar46 < 0x8000) goto code_r0x00024a60;\n              iVar46 = iVar46 + -0x7fff;\n              cVar56 = '\x7f';\n              cVar39 = -1;\n            }\n            local_ac = (aux_t *)((int)local_ac + 3);\n            pcVar22 = bufptr + 2;\n            bufptr[1] = cVar56;\n            bufptr = bufptr + 3;\n            *pcVar22 = cVar39;\n          } while( true );\n        }" if (parenthesized_expression "((local_94 != (lineno_list_t *)0x0) &&\n           (iVar46 = local_b4->lineno - local_94->lineno, iVar46 != 0))" ( (binary_expression "(local_94 != (lineno_list_t *)0x0) &&\n           (iVar46 = local_b4->lineno - local_94->lineno, iVar46 != 0)" (parenthesized_expression "(local_94 != (lineno_list_t *)0x0)" ( (binary_expression "local_94 != (lineno_list_t *)0x0" identifier != (cast_expression "(lineno_list_t *)0x0" ( (type_descriptor "lineno_list_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar46 = local_b4->lineno - local_94->lineno, iVar46 != 0)" ( (comma_expression "iVar46 = local_b4->lineno - local_94->lineno, iVar46 != 0" (assignment_expression "iVar46 = local_b4->lineno - local_94->lineno" identifier = (binary_expression "local_b4->lineno - local_94->lineno" (field_expression "local_b4->lineno" identifier -> field_identifier) - (field_expression "local_94->lineno" identifier -> field_identifier))) , (binary_expression "iVar46 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          do {\n            iVar59 = uVar24 - 1;\n            if (iVar59 < 0x10) {\n              uVar24 = 0;\n            }\n            else {\n              uVar24 = uVar24 - 0x10;\n              iVar59 = 0xf;\n            }\n            if (iVar46 + 7U < 0xf) {\n              if (bufend <= bufptr) {\n                bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,1);\n              }\n              local_ac = (aux_t *)((int)local_ac + 1);\n              *bufptr = (char)iVar46 * '\x10' + (char)iVar59;\n              bufptr = bufptr + 1;\n              break;\n            }\n            if ((int)bufend - (int)bufptr < 3) {\n              bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,3);\n            }\n            *bufptr = (char)iVar59 + -0x80;\n            if (iVar46 < -0x8000) {\n              iVar46 = iVar46 + 0x8000;\n              cVar56 = -0x80;\n              cVar39 = '\0';\n            }\n            else {\n              if (iVar46 < 0x8000) goto code_r0x00024a60;\n              iVar46 = iVar46 + -0x7fff;\n              cVar56 = '\x7f';\n              cVar39 = -1;\n            }\n            local_ac = (aux_t *)((int)local_ac + 3);\n            pcVar22 = bufptr + 2;\n            bufptr[1] = cVar56;\n            bufptr = bufptr + 3;\n            *pcVar22 = cVar39;\n          } while( true );\n        }" { (do_statement "do {\n            iVar59 = uVar24 - 1;\n            if (iVar59 < 0x10) {\n              uVar24 = 0;\n            }\n            else {\n              uVar24 = uVar24 - 0x10;\n              iVar59 = 0xf;\n            }\n            if (iVar46 + 7U < 0xf) {\n              if (bufend <= bufptr) {\n                bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,1);\n              }\n              local_ac = (aux_t *)((int)local_ac + 1);\n              *bufptr = (char)iVar46 * '\x10' + (char)iVar59;\n              bufptr = bufptr + 1;\n              break;\n            }\n            if ((int)bufend - (int)bufptr < 3) {\n              bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,3);\n            }\n            *bufptr = (char)iVar59 + -0x80;\n            if (iVar46 < -0x8000) {\n              iVar46 = iVar46 + 0x8000;\n              cVar56 = -0x80;\n              cVar39 = '\0';\n            }\n            else {\n              if (iVar46 < 0x8000) goto code_r0x00024a60;\n              iVar46 = iVar46 + -0x7fff;\n              cVar56 = '\x7f';\n              cVar39 = -1;\n            }\n            local_ac = (aux_t *)((int)local_ac + 3);\n            pcVar22 = bufptr + 2;\n            bufptr[1] = cVar56;\n            bufptr = bufptr + 3;\n            *pcVar22 = cVar39;\n          } while( true );" do (compound_statement "{\n            iVar59 = uVar24 - 1;\n            if (iVar59 < 0x10) {\n              uVar24 = 0;\n            }\n            else {\n              uVar24 = uVar24 - 0x10;\n              iVar59 = 0xf;\n            }\n            if (iVar46 + 7U < 0xf) {\n              if (bufend <= bufptr) {\n                bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,1);\n              }\n              local_ac = (aux_t *)((int)local_ac + 1);\n              *bufptr = (char)iVar46 * '\x10' + (char)iVar59;\n              bufptr = bufptr + 1;\n              break;\n            }\n            if ((int)bufend - (int)bufptr < 3) {\n              bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,3);\n            }\n            *bufptr = (char)iVar59 + -0x80;\n            if (iVar46 < -0x8000) {\n              iVar46 = iVar46 + 0x8000;\n              cVar56 = -0x80;\n              cVar39 = '\0';\n            }\n            else {\n              if (iVar46 < 0x8000) goto code_r0x00024a60;\n              iVar46 = iVar46 + -0x7fff;\n              cVar56 = '\x7f';\n              cVar39 = -1;\n            }\n            local_ac = (aux_t *)((int)local_ac + 3);\n            pcVar22 = bufptr + 2;\n            bufptr[1] = cVar56;\n            bufptr = bufptr + 3;\n            *pcVar22 = cVar39;\n          }" { (expression_statement "iVar59 = uVar24 - 1;" (assignment_expression "iVar59 = uVar24 - 1" identifier = (binary_expression "uVar24 - 1" identifier - number_literal)) ;) (if_statement "if (iVar59 < 0x10) {\n              uVar24 = 0;\n            }\n            else {\n              uVar24 = uVar24 - 0x10;\n              iVar59 = 0xf;\n            }" if (parenthesized_expression "(iVar59 < 0x10)" ( (binary_expression "iVar59 < 0x10" identifier < number_literal) )) (compound_statement "{\n              uVar24 = 0;\n            }" { (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) }) (else_clause "else {\n              uVar24 = uVar24 - 0x10;\n              iVar59 = 0xf;\n            }" else (compound_statement "{\n              uVar24 = uVar24 - 0x10;\n              iVar59 = 0xf;\n            }" { (expression_statement "uVar24 = uVar24 - 0x10;" (assignment_expression "uVar24 = uVar24 - 0x10" identifier = (binary_expression "uVar24 - 0x10" identifier - number_literal)) ;) (expression_statement "iVar59 = 0xf;" (assignment_expression "iVar59 = 0xf" identifier = number_literal) ;) }))) (if_statement "if (iVar46 + 7U < 0xf) {\n              if (bufend <= bufptr) {\n                bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,1);\n              }\n              local_ac = (aux_t *)((int)local_ac + 1);\n              *bufptr = (char)iVar46 * '\x10' + (char)iVar59;\n              bufptr = bufptr + 1;\n              break;\n            }" if (parenthesized_expression "(iVar46 + 7U < 0xf)" ( (binary_expression "iVar46 + 7U < 0xf" (binary_expression "iVar46 + 7U" identifier + number_literal) < number_literal) )) (compound_statement "{\n              if (bufend <= bufptr) {\n                bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,1);\n              }\n              local_ac = (aux_t *)((int)local_ac + 1);\n              *bufptr = (char)iVar46 * '\x10' + (char)iVar59;\n              bufptr = bufptr + 1;\n              break;\n            }" { (if_statement "if (bufend <= bufptr) {\n                bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,1);\n              }" if (parenthesized_expression "(bufend <= bufptr)" ( (binary_expression "bufend <= bufptr" identifier <= identifier) )) (compound_statement "{\n                bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,1);\n              }" { (expression_statement "bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,1);" (assignment_expression "bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,1)" identifier = (call_expression "ecoff_add_bytes(&buf,&bufend,bufptr,1)" identifier (argument_list "(&buf,&bufend,bufptr,1)" ( (pointer_expression "&buf" & identifier) , (pointer_expression "&bufend" & identifier) , identifier , number_literal )))) ;) })) (expression_statement "local_ac = (aux_t *)((int)local_ac + 1);" (assignment_expression "local_ac = (aux_t *)((int)local_ac + 1)" identifier = (cast_expression "(aux_t *)((int)local_ac + 1)" ( (type_descriptor "aux_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_ac + 1)" ( (binary_expression "(int)local_ac + 1" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*bufptr = (char)iVar46 * '\x10' + (char)iVar59;" (assignment_expression "*bufptr = (char)iVar46 * '\x10' + (char)iVar59" (pointer_expression "*bufptr" * identifier) = (binary_expression "(char)iVar46 * '\x10' + (char)iVar59" (binary_expression "(char)iVar46 * '\x10'" (cast_expression "(char)iVar46" ( (type_descriptor "char" primitive_type) ) identifier) * (char_literal "'\x10'" ' escape_sequence ')) + (cast_expression "(char)iVar59" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "bufptr = bufptr + 1;" (assignment_expression "bufptr = bufptr + 1" identifier = (binary_expression "bufptr + 1" identifier + number_literal)) ;) (break_statement "break;" break ;) })) (if_statement "if ((int)bufend - (int)bufptr < 3) {\n              bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,3);\n            }" if (parenthesized_expression "((int)bufend - (int)bufptr < 3)" ( (binary_expression "(int)bufend - (int)bufptr < 3" (binary_expression "(int)bufend - (int)bufptr" (cast_expression "(int)bufend" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)bufptr" ( (type_descriptor "int" primitive_type) ) identifier)) < number_literal) )) (compound_statement "{\n              bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,3);\n            }" { (expression_statement "bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,3);" (assignment_expression "bufptr = ecoff_add_bytes(&buf,&bufend,bufptr,3)" identifier = (call_expression "ecoff_add_bytes(&buf,&bufend,bufptr,3)" identifier (argument_list "(&buf,&bufend,bufptr,3)" ( (pointer_expression "&buf" & identifier) , (pointer_expression "&bufend" & identifier) , identifier , number_literal )))) ;) })) (expression_statement "*bufptr = (char)iVar59 + -0x80;" (assignment_expression "*bufptr = (char)iVar59 + -0x80" (pointer_expression "*bufptr" * identifier) = (binary_expression "(char)iVar59 + -0x80" (cast_expression "(char)iVar59" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal)) ;) (if_statement "if (iVar46 < -0x8000) {\n              iVar46 = iVar46 + 0x8000;\n              cVar56 = -0x80;\n              cVar39 = '\0';\n            }\n            else {\n              if (iVar46 < 0x8000) goto code_r0x00024a60;\n              iVar46 = iVar46 + -0x7fff;\n              cVar56 = '\x7f';\n              cVar39 = -1;\n            }" if (parenthesized_expression "(iVar46 < -0x8000)" ( (binary_expression "iVar46 < -0x8000" identifier < number_literal) )) (compound_statement "{\n              iVar46 = iVar46 + 0x8000;\n              cVar56 = -0x80;\n              cVar39 = '\0';\n            }" { (expression_statement "iVar46 = iVar46 + 0x8000;" (assignment_expression "iVar46 = iVar46 + 0x8000" identifier = (binary_expression "iVar46 + 0x8000" identifier + number_literal)) ;) (expression_statement "cVar56 = -0x80;" (assignment_expression "cVar56 = -0x80" identifier = number_literal) ;) (expression_statement "cVar39 = '\0';" (assignment_expression "cVar39 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else {\n              if (iVar46 < 0x8000) goto code_r0x00024a60;\n              iVar46 = iVar46 + -0x7fff;\n              cVar56 = '\x7f';\n              cVar39 = -1;\n            }" else (compound_statement "{\n              if (iVar46 < 0x8000) goto code_r0x00024a60;\n              iVar46 = iVar46 + -0x7fff;\n              cVar56 = '\x7f';\n              cVar39 = -1;\n            }" { (if_statement "if (iVar46 < 0x8000) goto code_r0x00024a60;" if (parenthesized_expression "(iVar46 < 0x8000)" ( (binary_expression "iVar46 < 0x8000" identifier < number_literal) )) (goto_statement "goto code_r0x00024a60;" goto statement_identifier ;)) (expression_statement "iVar46 = iVar46 + -0x7fff;" (assignment_expression "iVar46 = iVar46 + -0x7fff" identifier = (binary_expression "iVar46 + -0x7fff" identifier + number_literal)) ;) (expression_statement "cVar56 = '\x7f';" (assignment_expression "cVar56 = '\x7f'" identifier = (char_literal "'\x7f'" ' escape_sequence ')) ;) (expression_statement "cVar39 = -1;" (assignment_expression "cVar39 = -1" identifier = number_literal) ;) }))) (expression_statement "local_ac = (aux_t *)((int)local_ac + 3);" (assignment_expression "local_ac = (aux_t *)((int)local_ac + 3)" identifier = (cast_expression "(aux_t *)((int)local_ac + 3)" ( (type_descriptor "aux_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_ac + 3)" ( (binary_expression "(int)local_ac + 3" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pcVar22 = bufptr + 2;" (assignment_expression "pcVar22 = bufptr + 2" identifier = (binary_expression "bufptr + 2" identifier + number_literal)) ;) (expression_statement "bufptr[1] = cVar56;" (assignment_expression "bufptr[1] = cVar56" (subscript_expression "bufptr[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bufptr = bufptr + 3;" (assignment_expression "bufptr = bufptr + 3" identifier = (binary_expression "bufptr + 3" identifier + number_literal)) ;) (expression_statement "*pcVar22 = cVar39;" (assignment_expression "*pcVar22 = cVar39" (pointer_expression "*pcVar22" * identifier) = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) }) (else_clause "else {\n        bVar62 = local_98 != local_a8;\n        if (local_98 != (proc_t *)0x0 && bVar62) {\n          (local_98->pdr).lnHigh = local_94->lineno;\n          bVar62 = local_98 != (proc_t *)0x0 && bVar62;\n        }\n        lVar25 = 0;\n        if (local_a0 != (page *)0x0) {\n          local_9c = (page *)0x0;\n          pbVar1 = &((FDR *)local_a0)->cbLineOffset;\n          bVar17 = *pbVar1;\n          *(uint *)((int)&((FDR *)local_a0)->cbLine + 4) =\n               -(uint)(local_ac < (uint)*pbVar1) -\n               *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);\n          *(int *)&((FDR *)local_a0)->cbLine = (int)local_ac - (int)bVar17;\n          ((FDR *)local_a0)->cline = (long)local_a4;\n          hdr->ilineMax = hdr->ilineMax + (int)local_a4->byte;\n          lVar25 = ((FDR *)local_a0)->cline + ((FDR *)local_a0)->ilineBase;\n          local_a4 = (page *)uVar24;\n        }\n        (peVar43->fdr).ilineBase = lVar25;\n        *(aux_t **)&(peVar43->fdr).cbLineOffset = local_ac;\n        *(undefined4 *)((int)&(peVar43->fdr).cbLineOffset + 4) = 0;\n        local_a0 = (page *)peVar43;\n        if (bVar62) {\nLAB_000238a1:\n          if (local_a8 != (proc_t *)0x0) {\n            (local_a8->pdr).lnLow = local_b4->lineno;\n            pbVar1 = &((FDR *)local_a0)->cbLineOffset;\n            bVar17 = *pbVar1;\n            iVar46 = *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);\n            *(int *)&(local_a8->pdr).cbLineOffset = (int)local_ac - (int)*pbVar1;\n            *(uint *)((int)&(local_a8->pdr).cbLineOffset + 4) =\n                 -(uint)(local_ac < (uint)bVar17) - iVar46;\n            (local_a8->pdr).iline = (long)local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }" else (compound_statement "{\n        bVar62 = local_98 != local_a8;\n        if (local_98 != (proc_t *)0x0 && bVar62) {\n          (local_98->pdr).lnHigh = local_94->lineno;\n          bVar62 = local_98 != (proc_t *)0x0 && bVar62;\n        }\n        lVar25 = 0;\n        if (local_a0 != (page *)0x0) {\n          local_9c = (page *)0x0;\n          pbVar1 = &((FDR *)local_a0)->cbLineOffset;\n          bVar17 = *pbVar1;\n          *(uint *)((int)&((FDR *)local_a0)->cbLine + 4) =\n               -(uint)(local_ac < (uint)*pbVar1) -\n               *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);\n          *(int *)&((FDR *)local_a0)->cbLine = (int)local_ac - (int)bVar17;\n          ((FDR *)local_a0)->cline = (long)local_a4;\n          hdr->ilineMax = hdr->ilineMax + (int)local_a4->byte;\n          lVar25 = ((FDR *)local_a0)->cline + ((FDR *)local_a0)->ilineBase;\n          local_a4 = (page *)uVar24;\n        }\n        (peVar43->fdr).ilineBase = lVar25;\n        *(aux_t **)&(peVar43->fdr).cbLineOffset = local_ac;\n        *(undefined4 *)((int)&(peVar43->fdr).cbLineOffset + 4) = 0;\n        local_a0 = (page *)peVar43;\n        if (bVar62) {\nLAB_000238a1:\n          if (local_a8 != (proc_t *)0x0) {\n            (local_a8->pdr).lnLow = local_b4->lineno;\n            pbVar1 = &((FDR *)local_a0)->cbLineOffset;\n            bVar17 = *pbVar1;\n            iVar46 = *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);\n            *(int *)&(local_a8->pdr).cbLineOffset = (int)local_ac - (int)*pbVar1;\n            *(uint *)((int)&(local_a8->pdr).cbLineOffset + 4) =\n                 -(uint)(local_ac < (uint)bVar17) - iVar46;\n            (local_a8->pdr).iline = (long)local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }" { (expression_statement "bVar62 = local_98 != local_a8;" (assignment_expression "bVar62 = local_98 != local_a8" identifier = (binary_expression "local_98 != local_a8" identifier != identifier)) ;) (if_statement "if (local_98 != (proc_t *)0x0 && bVar62) {\n          (local_98->pdr).lnHigh = local_94->lineno;\n          bVar62 = local_98 != (proc_t *)0x0 && bVar62;\n        }" if (parenthesized_expression "(local_98 != (proc_t *)0x0 && bVar62)" ( (binary_expression "local_98 != (proc_t *)0x0 && bVar62" (binary_expression "local_98 != (proc_t *)0x0" identifier != (cast_expression "(proc_t *)0x0" ( (type_descriptor "proc_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && identifier) )) (compound_statement "{\n          (local_98->pdr).lnHigh = local_94->lineno;\n          bVar62 = local_98 != (proc_t *)0x0 && bVar62;\n        }" { (expression_statement "(local_98->pdr).lnHigh = local_94->lineno;" (assignment_expression "(local_98->pdr).lnHigh = local_94->lineno" (field_expression "(local_98->pdr).lnHigh" (parenthesized_expression "(local_98->pdr)" ( (field_expression "local_98->pdr" identifier -> field_identifier) )) . field_identifier) = (field_expression "local_94->lineno" identifier -> field_identifier)) ;) (expression_statement "bVar62 = local_98 != (proc_t *)0x0 && bVar62;" (assignment_expression "bVar62 = local_98 != (proc_t *)0x0 && bVar62" identifier = (binary_expression "local_98 != (proc_t *)0x0 && bVar62" (binary_expression "local_98 != (proc_t *)0x0" identifier != (cast_expression "(proc_t *)0x0" ( (type_descriptor "proc_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && identifier)) ;) })) (expression_statement "lVar25 = 0;" (assignment_expression "lVar25 = 0" identifier = number_literal) ;) (if_statement "if (local_a0 != (page *)0x0) {\n          local_9c = (page *)0x0;\n          pbVar1 = &((FDR *)local_a0)->cbLineOffset;\n          bVar17 = *pbVar1;\n          *(uint *)((int)&((FDR *)local_a0)->cbLine + 4) =\n               -(uint)(local_ac < (uint)*pbVar1) -\n               *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);\n          *(int *)&((FDR *)local_a0)->cbLine = (int)local_ac - (int)bVar17;\n          ((FDR *)local_a0)->cline = (long)local_a4;\n          hdr->ilineMax = hdr->ilineMax + (int)local_a4->byte;\n          lVar25 = ((FDR *)local_a0)->cline + ((FDR *)local_a0)->ilineBase;\n          local_a4 = (page *)uVar24;\n        }" if (parenthesized_expression "(local_a0 != (page *)0x0)" ( (binary_expression "local_a0 != (page *)0x0" identifier != (cast_expression "(page *)0x0" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_9c = (page *)0x0;\n          pbVar1 = &((FDR *)local_a0)->cbLineOffset;\n          bVar17 = *pbVar1;\n          *(uint *)((int)&((FDR *)local_a0)->cbLine + 4) =\n               -(uint)(local_ac < (uint)*pbVar1) -\n               *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);\n          *(int *)&((FDR *)local_a0)->cbLine = (int)local_ac - (int)bVar17;\n          ((FDR *)local_a0)->cline = (long)local_a4;\n          hdr->ilineMax = hdr->ilineMax + (int)local_a4->byte;\n          lVar25 = ((FDR *)local_a0)->cline + ((FDR *)local_a0)->ilineBase;\n          local_a4 = (page *)uVar24;\n        }" { (expression_statement "local_9c = (page *)0x0;" (assignment_expression "local_9c = (page *)0x0" identifier = (cast_expression "(page *)0x0" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar1 = &((FDR *)local_a0)->cbLineOffset;" (assignment_expression "pbVar1 = &((FDR *)local_a0)->cbLineOffset" identifier = (pointer_expression "&((FDR *)local_a0)->cbLineOffset" & (field_expression "((FDR *)local_a0)->cbLineOffset" (parenthesized_expression "((FDR *)local_a0)" ( (cast_expression "(FDR *)local_a0" ( (type_descriptor "FDR *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))) ;) (expression_statement "bVar17 = *pbVar1;" (assignment_expression "bVar17 = *pbVar1" identifier = (pointer_expression "*pbVar1" * identifier)) ;) (expression_statement "*(uint *)((int)&((FDR *)local_a0)->cbLine + 4) =\n               -(uint)(local_ac < (uint)*pbVar1) -\n               *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);" (assignment_expression "*(uint *)((int)&((FDR *)local_a0)->cbLine + 4) =\n               -(uint)(local_ac < (uint)*pbVar1) -\n               *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4)" (pointer_expression "*(uint *)((int)&((FDR *)local_a0)->cbLine + 4)" * (cast_expression "(uint *)((int)&((FDR *)local_a0)->cbLine + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((FDR *)local_a0)->cbLine + 4)" ( (binary_expression "(int)&((FDR *)local_a0)->cbLine + 4" (cast_expression "(int)&((FDR *)local_a0)->cbLine" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((FDR *)local_a0)->cbLine" & (field_expression "((FDR *)local_a0)->cbLine" (parenthesized_expression "((FDR *)local_a0)" ( (cast_expression "(FDR *)local_a0" ( (type_descriptor "FDR *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))) + number_literal) )))) = (binary_expression "-(uint)(local_ac < (uint)*pbVar1) -\n               *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4)" (unary_expression "-(uint)(local_ac < (uint)*pbVar1)" - (call_expression "(uint)(local_ac < (uint)*pbVar1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_ac < (uint)*pbVar1)" ( (binary_expression "local_ac < (uint)*pbVar1" identifier < (binary_expression "(uint)*pbVar1" (parenthesized_expression "(uint)" ( identifier )) * identifier)) )))) - (pointer_expression "*(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4)" * (cast_expression "(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((FDR *)local_a0)->cbLineOffset + 4)" ( (binary_expression "(int)&((FDR *)local_a0)->cbLineOffset + 4" (cast_expression "(int)&((FDR *)local_a0)->cbLineOffset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((FDR *)local_a0)->cbLineOffset" & (field_expression "((FDR *)local_a0)->cbLineOffset" (parenthesized_expression "((FDR *)local_a0)" ( (cast_expression "(FDR *)local_a0" ( (type_descriptor "FDR *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))) + number_literal) )))))) ;) (expression_statement "*(int *)&((FDR *)local_a0)->cbLine = (int)local_ac - (int)bVar17;" (assignment_expression "*(int *)&((FDR *)local_a0)->cbLine = (int)local_ac - (int)bVar17" (pointer_expression "*(int *)&((FDR *)local_a0)->cbLine" * (cast_expression "(int *)&((FDR *)local_a0)->cbLine" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((FDR *)local_a0)->cbLine" & (field_expression "((FDR *)local_a0)->cbLine" (parenthesized_expression "((FDR *)local_a0)" ( (cast_expression "(FDR *)local_a0" ( (type_descriptor "FDR *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)))) = (binary_expression "(int)local_ac - (int)bVar17" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)bVar17" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "((FDR *)local_a0)->cline = (long)local_a4;" (assignment_expression "((FDR *)local_a0)->cline = (long)local_a4" (field_expression "((FDR *)local_a0)->cline" (parenthesized_expression "((FDR *)local_a0)" ( (cast_expression "(FDR *)local_a0" ( (type_descriptor "FDR *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) = (cast_expression "(long)local_a4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "hdr->ilineMax = hdr->ilineMax + (int)local_a4->byte;" (assignment_expression "hdr->ilineMax = hdr->ilineMax + (int)local_a4->byte" (field_expression "hdr->ilineMax" identifier -> field_identifier) = (binary_expression "hdr->ilineMax + (int)local_a4->byte" (field_expression "hdr->ilineMax" identifier -> field_identifier) + (cast_expression "(int)local_a4->byte" ( (type_descriptor "int" primitive_type) ) (field_expression "local_a4->byte" identifier -> field_identifier)))) ;) (expression_statement "lVar25 = ((FDR *)local_a0)->cline + ((FDR *)local_a0)->ilineBase;" (assignment_expression "lVar25 = ((FDR *)local_a0)->cline + ((FDR *)local_a0)->ilineBase" identifier = (binary_expression "((FDR *)local_a0)->cline + ((FDR *)local_a0)->ilineBase" (field_expression "((FDR *)local_a0)->cline" (parenthesized_expression "((FDR *)local_a0)" ( (cast_expression "(FDR *)local_a0" ( (type_descriptor "FDR *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) + (field_expression "((FDR *)local_a0)->ilineBase" (parenthesized_expression "((FDR *)local_a0)" ( (cast_expression "(FDR *)local_a0" ( (type_descriptor "FDR *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))) ;) (expression_statement "local_a4 = (page *)uVar24;" (assignment_expression "local_a4 = (page *)uVar24" identifier = (cast_expression "(page *)uVar24" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "(peVar43->fdr).ilineBase = lVar25;" (assignment_expression "(peVar43->fdr).ilineBase = lVar25" (field_expression "(peVar43->fdr).ilineBase" (parenthesized_expression "(peVar43->fdr)" ( (field_expression "peVar43->fdr" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "*(aux_t **)&(peVar43->fdr).cbLineOffset = local_ac;" (assignment_expression "*(aux_t **)&(peVar43->fdr).cbLineOffset = local_ac" (pointer_expression "*(aux_t **)&(peVar43->fdr).cbLineOffset" * (cast_expression "(aux_t **)&(peVar43->fdr).cbLineOffset" ( (type_descriptor "aux_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(peVar43->fdr).cbLineOffset" & (field_expression "(peVar43->fdr).cbLineOffset" (parenthesized_expression "(peVar43->fdr)" ( (field_expression "peVar43->fdr" identifier -> field_identifier) )) . field_identifier)))) = identifier) ;) (expression_statement "*(undefined4 *)((int)&(peVar43->fdr).cbLineOffset + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(peVar43->fdr).cbLineOffset + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(peVar43->fdr).cbLineOffset + 4)" * (cast_expression "(undefined4 *)((int)&(peVar43->fdr).cbLineOffset + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(peVar43->fdr).cbLineOffset + 4)" ( (binary_expression "(int)&(peVar43->fdr).cbLineOffset + 4" (cast_expression "(int)&(peVar43->fdr).cbLineOffset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(peVar43->fdr).cbLineOffset" & (field_expression "(peVar43->fdr).cbLineOffset" (parenthesized_expression "(peVar43->fdr)" ( (field_expression "peVar43->fdr" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "local_a0 = (page *)peVar43;" (assignment_expression "local_a0 = (page *)peVar43" identifier = (cast_expression "(page *)peVar43" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar62) {\nLAB_000238a1:\n          if (local_a8 != (proc_t *)0x0) {\n            (local_a8->pdr).lnLow = local_b4->lineno;\n            pbVar1 = &((FDR *)local_a0)->cbLineOffset;\n            bVar17 = *pbVar1;\n            iVar46 = *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);\n            *(int *)&(local_a8->pdr).cbLineOffset = (int)local_ac - (int)*pbVar1;\n            *(uint *)((int)&(local_a8->pdr).cbLineOffset + 4) =\n                 -(uint)(local_ac < (uint)bVar17) - iVar46;\n            (local_a8->pdr).iline = (long)local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }" if (parenthesized_expression "(bVar62)" ( identifier )) (compound_statement "{\nLAB_000238a1:\n          if (local_a8 != (proc_t *)0x0) {\n            (local_a8->pdr).lnLow = local_b4->lineno;\n            pbVar1 = &((FDR *)local_a0)->cbLineOffset;\n            bVar17 = *pbVar1;\n            iVar46 = *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);\n            *(int *)&(local_a8->pdr).cbLineOffset = (int)local_ac - (int)*pbVar1;\n            *(uint *)((int)&(local_a8->pdr).cbLineOffset + 4) =\n                 -(uint)(local_ac < (uint)bVar17) - iVar46;\n            (local_a8->pdr).iline = (long)local_9c;\n          }\n        }" { (labeled_statement "LAB_000238a1:\n          if (local_a8 != (proc_t *)0x0) {\n            (local_a8->pdr).lnLow = local_b4->lineno;\n            pbVar1 = &((FDR *)local_a0)->cbLineOffset;\n            bVar17 = *pbVar1;\n            iVar46 = *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);\n            *(int *)&(local_a8->pdr).cbLineOffset = (int)local_ac - (int)*pbVar1;\n            *(uint *)((int)&(local_a8->pdr).cbLineOffset + 4) =\n                 -(uint)(local_ac < (uint)bVar17) - iVar46;\n            (local_a8->pdr).iline = (long)local_9c;\n          }" statement_identifier : (if_statement "if (local_a8 != (proc_t *)0x0) {\n            (local_a8->pdr).lnLow = local_b4->lineno;\n            pbVar1 = &((FDR *)local_a0)->cbLineOffset;\n            bVar17 = *pbVar1;\n            iVar46 = *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);\n            *(int *)&(local_a8->pdr).cbLineOffset = (int)local_ac - (int)*pbVar1;\n            *(uint *)((int)&(local_a8->pdr).cbLineOffset + 4) =\n                 -(uint)(local_ac < (uint)bVar17) - iVar46;\n            (local_a8->pdr).iline = (long)local_9c;\n          }" if (parenthesized_expression "(local_a8 != (proc_t *)0x0)" ( (binary_expression "local_a8 != (proc_t *)0x0" identifier != (cast_expression "(proc_t *)0x0" ( (type_descriptor "proc_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            (local_a8->pdr).lnLow = local_b4->lineno;\n            pbVar1 = &((FDR *)local_a0)->cbLineOffset;\n            bVar17 = *pbVar1;\n            iVar46 = *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);\n            *(int *)&(local_a8->pdr).cbLineOffset = (int)local_ac - (int)*pbVar1;\n            *(uint *)((int)&(local_a8->pdr).cbLineOffset + 4) =\n                 -(uint)(local_ac < (uint)bVar17) - iVar46;\n            (local_a8->pdr).iline = (long)local_9c;\n          }" { (expression_statement "(local_a8->pdr).lnLow = local_b4->lineno;" (assignment_expression "(local_a8->pdr).lnLow = local_b4->lineno" (field_expression "(local_a8->pdr).lnLow" (parenthesized_expression "(local_a8->pdr)" ( (field_expression "local_a8->pdr" identifier -> field_identifier) )) . field_identifier) = (field_expression "local_b4->lineno" identifier -> field_identifier)) ;) (expression_statement "pbVar1 = &((FDR *)local_a0)->cbLineOffset;" (assignment_expression "pbVar1 = &((FDR *)local_a0)->cbLineOffset" identifier = (pointer_expression "&((FDR *)local_a0)->cbLineOffset" & (field_expression "((FDR *)local_a0)->cbLineOffset" (parenthesized_expression "((FDR *)local_a0)" ( (cast_expression "(FDR *)local_a0" ( (type_descriptor "FDR *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))) ;) (expression_statement "bVar17 = *pbVar1;" (assignment_expression "bVar17 = *pbVar1" identifier = (pointer_expression "*pbVar1" * identifier)) ;) (expression_statement "iVar46 = *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);" (assignment_expression "iVar46 = *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4)" identifier = (pointer_expression "*(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4)" * (cast_expression "(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((FDR *)local_a0)->cbLineOffset + 4)" ( (binary_expression "(int)&((FDR *)local_a0)->cbLineOffset + 4" (cast_expression "(int)&((FDR *)local_a0)->cbLineOffset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((FDR *)local_a0)->cbLineOffset" & (field_expression "((FDR *)local_a0)->cbLineOffset" (parenthesized_expression "((FDR *)local_a0)" ( (cast_expression "(FDR *)local_a0" ( (type_descriptor "FDR *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))) + number_literal) ))))) ;) (expression_statement "*(int *)&(local_a8->pdr).cbLineOffset = (int)local_ac - (int)*pbVar1;" (assignment_expression "*(int *)&(local_a8->pdr).cbLineOffset = (int)local_ac - (int)*pbVar1" (pointer_expression "*(int *)&(local_a8->pdr).cbLineOffset" * (cast_expression "(int *)&(local_a8->pdr).cbLineOffset" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(local_a8->pdr).cbLineOffset" & (field_expression "(local_a8->pdr).cbLineOffset" (parenthesized_expression "(local_a8->pdr)" ( (field_expression "local_a8->pdr" identifier -> field_identifier) )) . field_identifier)))) = (binary_expression "(int)local_ac - (int)*pbVar1" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)*pbVar1" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pbVar1" * identifier)))) ;) (expression_statement "*(uint *)((int)&(local_a8->pdr).cbLineOffset + 4) =\n                 -(uint)(local_ac < (uint)bVar17) - iVar46;" (assignment_expression "*(uint *)((int)&(local_a8->pdr).cbLineOffset + 4) =\n                 -(uint)(local_ac < (uint)bVar17) - iVar46" (pointer_expression "*(uint *)((int)&(local_a8->pdr).cbLineOffset + 4)" * (cast_expression "(uint *)((int)&(local_a8->pdr).cbLineOffset + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_a8->pdr).cbLineOffset + 4)" ( (binary_expression "(int)&(local_a8->pdr).cbLineOffset + 4" (cast_expression "(int)&(local_a8->pdr).cbLineOffset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_a8->pdr).cbLineOffset" & (field_expression "(local_a8->pdr).cbLineOffset" (parenthesized_expression "(local_a8->pdr)" ( (field_expression "local_a8->pdr" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = (binary_expression "-(uint)(local_ac < (uint)bVar17) - iVar46" (unary_expression "-(uint)(local_ac < (uint)bVar17)" - (call_expression "(uint)(local_ac < (uint)bVar17)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_ac < (uint)bVar17)" ( (binary_expression "local_ac < (uint)bVar17" identifier < (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) - identifier)) ;) (expression_statement "(local_a8->pdr).iline = (long)local_9c;" (assignment_expression "(local_a8->pdr).iline = (long)local_9c" (field_expression "(local_a8->pdr).iline" (parenthesized_expression "(local_a8->pdr)" ( (field_expression "local_a8->pdr" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(long)local_9c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) }))) }) (else_clause "else {\n          local_a8 = local_98;\n        }" else (compound_statement "{\n          local_a8 = local_98;\n        }" { (expression_statement "local_a8 = local_98;" (assignment_expression "local_a8 = local_98" identifier = identifier) ;) }))) }))) (goto_statement "goto LAB_000238d0;" goto statement_identifier ;) })) (expression_statement "pfVar5 = plVar41->frag;" (assignment_expression "pfVar5 = plVar41->frag" identifier = (field_expression "plVar41->frag" identifier -> field_identifier)) ;) (expression_statement "uVar49 = plVar41->paddr + (int)pfVar5->fr_address;" (assignment_expression "uVar49 = plVar41->paddr + (int)pfVar5->fr_address" identifier = (binary_expression "plVar41->paddr + (int)pfVar5->fr_address" (field_expression "plVar41->paddr" identifier -> field_identifier) + (cast_expression "(int)pfVar5->fr_address" ( (type_descriptor "int" primitive_type) ) (field_expression "pfVar5->fr_address" identifier -> field_identifier)))) ;) (expression_statement "uVar57 = *(int *)((int)&pfVar5->fr_address + 4) +\n             (uint)CARRY4(plVar41->paddr,(uint)pfVar5->fr_address);" (assignment_expression "uVar57 = *(int *)((int)&pfVar5->fr_address + 4) +\n             (uint)CARRY4(plVar41->paddr,(uint)pfVar5->fr_address)" identifier = (binary_expression "*(int *)((int)&pfVar5->fr_address + 4) +\n             (uint)CARRY4(plVar41->paddr,(uint)pfVar5->fr_address)" (pointer_expression "*(int *)((int)&pfVar5->fr_address + 4)" * (cast_expression "(int *)((int)&pfVar5->fr_address + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pfVar5->fr_address + 4)" ( (binary_expression "(int)&pfVar5->fr_address + 4" (cast_expression "(int)&pfVar5->fr_address" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pfVar5->fr_address" & (field_expression "pfVar5->fr_address" identifier -> field_identifier))) + number_literal) )))) + (cast_expression "(uint)CARRY4(plVar41->paddr,(uint)pfVar5->fr_address)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(plVar41->paddr,(uint)pfVar5->fr_address)" identifier (argument_list "(plVar41->paddr,(uint)pfVar5->fr_address)" ( (field_expression "plVar41->paddr" identifier -> field_identifier) , (cast_expression "(uint)pfVar5->fr_address" ( (type_descriptor "uint" type_identifier) ) (field_expression "pfVar5->fr_address" identifier -> field_identifier)) )))))) ;) (expression_statement "pfVar5 = local_b4->frag;" (assignment_expression "pfVar5 = local_b4->frag" identifier = (field_expression "local_b4->frag" identifier -> field_identifier)) ;) (expression_statement "uVar24 = local_b4->paddr + (int)pfVar5->fr_address;" (assignment_expression "uVar24 = local_b4->paddr + (int)pfVar5->fr_address" identifier = (binary_expression "local_b4->paddr + (int)pfVar5->fr_address" (field_expression "local_b4->paddr" identifier -> field_identifier) + (cast_expression "(int)pfVar5->fr_address" ( (type_descriptor "int" primitive_type) ) (field_expression "pfVar5->fr_address" identifier -> field_identifier)))) ;) (expression_statement "uVar44 = *(int *)((int)&pfVar5->fr_address + 4) +\n             (uint)CARRY4(local_b4->paddr,(uint)pfVar5->fr_address);" (assignment_expression "uVar44 = *(int *)((int)&pfVar5->fr_address + 4) +\n             (uint)CARRY4(local_b4->paddr,(uint)pfVar5->fr_address)" identifier = (binary_expression "*(int *)((int)&pfVar5->fr_address + 4) +\n             (uint)CARRY4(local_b4->paddr,(uint)pfVar5->fr_address)" (pointer_expression "*(int *)((int)&pfVar5->fr_address + 4)" * (cast_expression "(int *)((int)&pfVar5->fr_address + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pfVar5->fr_address + 4)" ( (binary_expression "(int)&pfVar5->fr_address + 4" (cast_expression "(int)&pfVar5->fr_address" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pfVar5->fr_address" & (field_expression "pfVar5->fr_address" identifier -> field_identifier))) + number_literal) )))) + (cast_expression "(uint)CARRY4(local_b4->paddr,(uint)pfVar5->fr_address)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(local_b4->paddr,(uint)pfVar5->fr_address)" identifier (argument_list "(local_b4->paddr,(uint)pfVar5->fr_address)" ( (field_expression "local_b4->paddr" identifier -> field_identifier) , (cast_expression "(uint)pfVar5->fr_address" ( (type_descriptor "uint" type_identifier) ) (field_expression "pfVar5->fr_address" identifier -> field_identifier)) )))))) ;) (if_statement "if (uVar44 < uVar57 || uVar44 - uVar57 < (uint)(uVar24 < uVar49)) {\n      uVar24 = uVar49 - uVar24 >> 2 | ((uVar57 - uVar44) - (uint)(uVar49 < uVar24)) * 0x40000000;\n      goto LAB_000237e1;\n    }" if (parenthesized_expression "(uVar44 < uVar57 || uVar44 - uVar57 < (uint)(uVar24 < uVar49))" ( (binary_expression "uVar44 < uVar57 || uVar44 - uVar57 < (uint)(uVar24 < uVar49)" (binary_expression "uVar44 < uVar57" identifier < identifier) || (binary_expression "uVar44 - uVar57 < (uint)(uVar24 < uVar49)" (binary_expression "uVar44 - uVar57" identifier - identifier) < (call_expression "(uint)(uVar24 < uVar49)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar24 < uVar49)" ( (binary_expression "uVar24 < uVar49" identifier < identifier) ))))) )) (compound_statement "{\n      uVar24 = uVar49 - uVar24 >> 2 | ((uVar57 - uVar44) - (uint)(uVar49 < uVar24)) * 0x40000000;\n      goto LAB_000237e1;\n    }" { (expression_statement "uVar24 = uVar49 - uVar24 >> 2 | ((uVar57 - uVar44) - (uint)(uVar49 < uVar24)) * 0x40000000;" (assignment_expression "uVar24 = uVar49 - uVar24 >> 2 | ((uVar57 - uVar44) - (uint)(uVar49 < uVar24)) * 0x40000000" identifier = (binary_expression "uVar49 - uVar24 >> 2 | ((uVar57 - uVar44) - (uint)(uVar49 < uVar24)) * 0x40000000" (binary_expression "uVar49 - uVar24 >> 2" (binary_expression "uVar49 - uVar24" identifier - identifier) >> number_literal) | (binary_expression "((uVar57 - uVar44) - (uint)(uVar49 < uVar24)) * 0x40000000" (parenthesized_expression "((uVar57 - uVar44) - (uint)(uVar49 < uVar24))" ( (binary_expression "(uVar57 - uVar44) - (uint)(uVar49 < uVar24)" (parenthesized_expression "(uVar57 - uVar44)" ( (binary_expression "uVar57 - uVar44" identifier - identifier) )) - (call_expression "(uint)(uVar49 < uVar24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar49 < uVar24)" ( (binary_expression "uVar49 < uVar24" identifier < identifier) )))) )) * number_literal))) ;) (goto_statement "goto LAB_000237e1;" goto statement_identifier ;) })) (goto_statement "goto LAB_000237a0;" goto statement_identifier ;) })))) (expression_statement "local_a4 = (page *)0x0;" (assignment_expression "local_a4 = (page *)0x0" identifier = (cast_expression "(page *)0x0" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_ac = (aux_t *)0x0;" (assignment_expression "local_ac = (aux_t *)0x0" identifier = (cast_expression "(aux_t *)0x0" ( (type_descriptor "aux_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00023a3f:\n  local_74 = &bufend;" statement_identifier : (expression_statement "local_74 = &bufend;" (assignment_expression "local_74 = &bufend" identifier = (pointer_expression "&bufend" & identifier)) ;)) (expression_statement "local_78 = &buf;" (assignment_expression "local_78 = &buf" identifier = (pointer_expression "&buf" & identifier)) ;) (expression_statement "hdr->ilineMax = hdr->ilineMax + (int)local_a4;" (assignment_expression "hdr->ilineMax = hdr->ilineMax + (int)local_a4" (field_expression "hdr->ilineMax" identifier -> field_identifier) = (binary_expression "hdr->ilineMax + (int)local_a4" (field_expression "hdr->ilineMax" identifier -> field_identifier) + (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_68 = ecoff_padding_adjust(backend,local_78,local_74,(ulong)local_ac,&bufptr);" (assignment_expression "local_68 = ecoff_padding_adjust(backend,local_78,local_74,(ulong)local_ac,&bufptr)" identifier = (call_expression "ecoff_padding_adjust(backend,local_78,local_74,(ulong)local_ac,&bufptr)" identifier (argument_list "(backend,local_78,local_74,(ulong)local_ac,&bufptr)" ( identifier , identifier , identifier , (cast_expression "(ulong)local_ac" ( (type_descriptor "ulong" type_identifier) ) identifier) , (pointer_expression "&bufptr" & identifier) )))) ;) (expression_statement "iVar46 = *(int *)((int)&hdr->cbLineOffset + 4);" (assignment_expression "iVar46 = *(int *)((int)&hdr->cbLineOffset + 4)" identifier = (pointer_expression "*(int *)((int)&hdr->cbLineOffset + 4)" * (cast_expression "(int *)((int)&hdr->cbLineOffset + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&hdr->cbLineOffset + 4)" ( (binary_expression "(int)&hdr->cbLineOffset + 4" (cast_expression "(int)&hdr->cbLineOffset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&hdr->cbLineOffset" & (field_expression "hdr->cbLineOffset" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "*(uint *)&hdr->cbPdOffset = local_68;" (assignment_expression "*(uint *)&hdr->cbPdOffset = local_68" (pointer_expression "*(uint *)&hdr->cbPdOffset" * (cast_expression "(uint *)&hdr->cbPdOffset" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&hdr->cbPdOffset" & (field_expression "hdr->cbPdOffset" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(uint *)&hdr->cbLine = local_68 - (int)hdr->cbLineOffset;" (assignment_expression "*(uint *)&hdr->cbLine = local_68 - (int)hdr->cbLineOffset" (pointer_expression "*(uint *)&hdr->cbLine" * (cast_expression "(uint *)&hdr->cbLine" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&hdr->cbLine" & (field_expression "hdr->cbLine" identifier -> field_identifier)))) = (binary_expression "local_68 - (int)hdr->cbLineOffset" identifier - (cast_expression "(int)hdr->cbLineOffset" ( (type_descriptor "int" primitive_type) ) (field_expression "hdr->cbLineOffset" identifier -> field_identifier)))) ;) (expression_statement "uVar48 = proc_cnt;" (assignment_expression "uVar48 = proc_cnt" identifier = identifier) ;) (expression_statement "*(uint *)((int)&hdr->cbLine + 4) = -(uint)(local_68 < (uint)hdr->cbLineOffset) - iVar46;" (assignment_expression "*(uint *)((int)&hdr->cbLine + 4) = -(uint)(local_68 < (uint)hdr->cbLineOffset) - iVar46" (pointer_expression "*(uint *)((int)&hdr->cbLine + 4)" * (cast_expression "(uint *)((int)&hdr->cbLine + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&hdr->cbLine + 4)" ( (binary_expression "(int)&hdr->cbLine + 4" (cast_expression "(int)&hdr->cbLine" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&hdr->cbLine" & (field_expression "hdr->cbLine" identifier -> field_identifier))) + number_literal) )))) = (binary_expression "-(uint)(local_68 < (uint)hdr->cbLineOffset) - iVar46" (unary_expression "-(uint)(local_68 < (uint)hdr->cbLineOffset)" - (call_expression "(uint)(local_68 < (uint)hdr->cbLineOffset)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_68 < (uint)hdr->cbLineOffset)" ( (binary_expression "local_68 < (uint)hdr->cbLineOffset" identifier < (cast_expression "(uint)hdr->cbLineOffset" ( (type_descriptor "uint" type_identifier) ) (field_expression "hdr->cbLineOffset" identifier -> field_identifier))) )))) - identifier)) ;) (expression_statement "*(undefined4 *)((int)&hdr->cbPdOffset + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&hdr->cbPdOffset + 4) = 0" (pointer_expression "*(undefined4 *)((int)&hdr->cbPdOffset + 4)" * (cast_expression "(undefined4 *)((int)&hdr->cbPdOffset + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&hdr->cbPdOffset + 4)" ( (binary_expression "(int)&hdr->cbPdOffset + 4" (cast_expression "(int)&hdr->cbPdOffset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&hdr->cbPdOffset" & (field_expression "hdr->cbPdOffset" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "hdr->idnMax = 0;" (assignment_expression "hdr->idnMax = 0" (field_expression "hdr->idnMax" identifier -> field_identifier) = number_literal) ;) (expression_statement "*(undefined4 *)&hdr->cbDnOffset = 0;" (assignment_expression "*(undefined4 *)&hdr->cbDnOffset = 0" (pointer_expression "*(undefined4 *)&hdr->cbDnOffset" * (cast_expression "(undefined4 *)&hdr->cbDnOffset" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&hdr->cbDnOffset" & (field_expression "hdr->cbDnOffset" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&hdr->cbDnOffset + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&hdr->cbDnOffset + 4) = 0" (pointer_expression "*(undefined4 *)((int)&hdr->cbDnOffset + 4)" * (cast_expression "(undefined4 *)((int)&hdr->cbDnOffset + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&hdr->cbDnOffset + 4)" ( (binary_expression "(int)&hdr->cbDnOffset + 4" (cast_expression "(int)&hdr->cbDnOffset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&hdr->cbDnOffset" & (field_expression "hdr->cbDnOffset" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "hdr->ipdMax = uVar48;" (assignment_expression "hdr->ipdMax = uVar48" (field_expression "hdr->ipdMax" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar44 = (int)bufend - (int)(buf + local_68);" (assignment_expression "uVar44 = (int)bufend - (int)(buf + local_68)" identifier = (binary_expression "(int)bufend - (int)(buf + local_68)" (cast_expression "(int)bufend" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)(buf + local_68)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(buf + local_68)" ( (binary_expression "buf + local_68" identifier + identifier) ))))) ;) (expression_statement "uVar24 = (int)uVar44 >> 0x1f;" (assignment_expression "uVar24 = (int)uVar44 >> 0x1f" identifier = (binary_expression "(int)uVar44 >> 0x1f" (cast_expression "(int)uVar44" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar49 = (int)((ulonglong)uVar54 * (ulonglong)uVar48 >> 0x20) + iVar29 * uVar48;" (assignment_expression "uVar49 = (int)((ulonglong)uVar54 * (ulonglong)uVar48 >> 0x20) + iVar29 * uVar48" identifier = (binary_expression "(int)((ulonglong)uVar54 * (ulonglong)uVar48 >> 0x20) + iVar29 * uVar48" (cast_expression "(int)((ulonglong)uVar54 * (ulonglong)uVar48 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar54 * (ulonglong)uVar48 >> 0x20)" ( (binary_expression "(ulonglong)uVar54 * (ulonglong)uVar48 >> 0x20" (binary_expression "(ulonglong)uVar54 * (ulonglong)uVar48" (cast_expression "(ulonglong)uVar54" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)uVar48" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) >> number_literal) ))) + (binary_expression "iVar29 * uVar48" identifier * identifier))) ;) (if_statement "if (uVar24 < uVar49 ||\n      uVar24 - uVar49 < (uint)(uVar44 < (uint)((ulonglong)uVar54 * (ulonglong)uVar48))) {\n    ecoff_add_bytes(local_78,local_74,buf + local_68,uVar48 * uVar54);\n    uVar48 = proc_cnt;\n  }" if (parenthesized_expression "(uVar24 < uVar49 ||\n      uVar24 - uVar49 < (uint)(uVar44 < (uint)((ulonglong)uVar54 * (ulonglong)uVar48)))" ( (binary_expression "uVar24 < uVar49 ||\n      uVar24 - uVar49 < (uint)(uVar44 < (uint)((ulonglong)uVar54 * (ulonglong)uVar48))" (binary_expression "uVar24 < uVar49" identifier < identifier) || (binary_expression "uVar24 - uVar49 < (uint)(uVar44 < (uint)((ulonglong)uVar54 * (ulonglong)uVar48))" (binary_expression "uVar24 - uVar49" identifier - identifier) < (call_expression "(uint)(uVar44 < (uint)((ulonglong)uVar54 * (ulonglong)uVar48))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar44 < (uint)((ulonglong)uVar54 * (ulonglong)uVar48))" ( (binary_expression "uVar44 < (uint)((ulonglong)uVar54 * (ulonglong)uVar48)" identifier < (call_expression "(uint)((ulonglong)uVar54 * (ulonglong)uVar48)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar54 * (ulonglong)uVar48)" ( (binary_expression "(ulonglong)uVar54 * (ulonglong)uVar48" (cast_expression "(ulonglong)uVar54" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)uVar48" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) )))) ))))) )) (compound_statement "{\n    ecoff_add_bytes(local_78,local_74,buf + local_68,uVar48 * uVar54);\n    uVar48 = proc_cnt;\n  }" { (expression_statement "ecoff_add_bytes(local_78,local_74,buf + local_68,uVar48 * uVar54);" (call_expression "ecoff_add_bytes(local_78,local_74,buf + local_68,uVar48 * uVar54)" identifier (argument_list "(local_78,local_74,buf + local_68,uVar48 * uVar54)" ( identifier , identifier , (binary_expression "buf + local_68" identifier + identifier) , (binary_expression "uVar48 * uVar54" identifier * identifier) ))) ;) (expression_statement "uVar48 = proc_cnt;" (assignment_expression "uVar48 = proc_cnt" identifier = identifier) ;) })) (expression_statement "local_68 = uVar48 * uVar54 + local_68;" (assignment_expression "local_68 = uVar48 * uVar54 + local_68" identifier = (binary_expression "uVar48 * uVar54 + local_68" (binary_expression "uVar48 * uVar54" identifier * identifier) + identifier)) ;) (expression_statement "uVar54 = (uint)backend->external_sym_size;" (assignment_expression "uVar54 = (uint)backend->external_sym_size" identifier = (cast_expression "(uint)backend->external_sym_size" ( (type_descriptor "uint" type_identifier) ) (field_expression "backend->external_sym_size" identifier -> field_identifier))) ;) (expression_statement "local_a0 = (page *)(buf + local_68);" (assignment_expression "local_a0 = (page *)(buf + local_68)" identifier = (cast_expression "(page *)(buf + local_68)" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(buf + local_68)" ( (binary_expression "buf + local_68" identifier + identifier) )))) ;) (expression_statement "*(uint *)&hdr->cbSymOffset = local_68;" (assignment_expression "*(uint *)&hdr->cbSymOffset = local_68" (pointer_expression "*(uint *)&hdr->cbSymOffset" * (cast_expression "(uint *)&hdr->cbSymOffset" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&hdr->cbSymOffset" & (field_expression "hdr->cbSymOffset" identifier -> field_identifier)))) = identifier) ;) (expression_statement "uVar24 = *(uint *)((int)&backend->external_sym_size + 4);" (assignment_expression "uVar24 = *(uint *)((int)&backend->external_sym_size + 4)" identifier = (pointer_expression "*(uint *)((int)&backend->external_sym_size + 4)" * (cast_expression "(uint *)((int)&backend->external_sym_size + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&backend->external_sym_size + 4)" ( (binary_expression "(int)&backend->external_sym_size + 4" (cast_expression "(int)&backend->external_sym_size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&backend->external_sym_size" & (field_expression "backend->external_sym_size" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)&hdr->cbSymOffset + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&hdr->cbSymOffset + 4) = 0" (pointer_expression "*(undefined4 *)((int)&hdr->cbSymOffset + 4)" * (cast_expression "(undefined4 *)((int)&hdr->cbSymOffset + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&hdr->cbSymOffset + 4)" ( (binary_expression "(int)&hdr->cbSymOffset + 4" (cast_expression "(int)&hdr->cbSymOffset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&hdr->cbSymOffset" & (field_expression "hdr->cbSymOffset" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "p_Var6 = backend->swap_sym_out;" (assignment_expression "p_Var6 = backend->swap_sym_out" identifier = (field_expression "backend->swap_sym_out" identifier -> field_identifier)) ;) (if_statement "if (file_desc.first != (vlinks_t *)0x0) {\n    local_8c = 0;\n    paVar23 = (segT)(PTR__bfd_std_section_00077fa0 + 0x180);\n    pvVar35 = file_desc.first;\nLAB_00023b80:\n    local_5c = pvVar35;\n    local_9c = local_5c->datum;\n    if (local_5c->next == (vlinks *)0x0) {\n      local_54 = (page *)(local_9c->file + file_desc.objects_last_page);\n      if (local_54 <= local_9c) {\n        local_68 = local_68 + local_8c * uVar54;\n        lVar25 = __udivdi3(local_68 - (int)hdr->cbSymOffset,\n                           -(uint)(local_68 < (uint)hdr->cbSymOffset) -\n                           *(int *)((int)&hdr->cbSymOffset + 4),(int)backend->external_sym_size,\n                           *(undefined4 *)((int)&backend->external_sym_size + 4));\n        goto LAB_0002441d;\n      }\n    }\n    else {\n      local_54 = (page *)(local_9c->file + file_desc.objects_per_page);\n      pvVar35 = local_5c->next;\n      if (local_54 <= local_9c) goto LAB_00023b80;\n    }\nLAB_00023bb7:\n    local_9c->ofile[0].isymBase = local_8c;\n    ptVar33 = local_9c->tag[4].same_block;\n    if (ptVar33 != (tag *)0x0) {\n      local_a8 = (proc_t *)local_8c;\nLAB_00023bdc:\n      local_64 = ptVar33;\n      plVar7 = (localsym *)local_64->same_name;\n      if ((tag *)local_64->hash_ptr == (tag *)0x0) {\n        local_70 = plVar7 + *(ushort *)(local_9c->byte + 0x9c);\n        if (local_70 <= plVar7) {\n          local_8c = (int)local_a8;\n          ptVar33 = (tag *)((int)local_a8 - local_9c->ofile[0].isymBase);\n          goto LAB_000243a4;\n        }\n      }\n      else {\n        local_70 = plVar7 + *(ushort *)(local_9c->byte + 0x9a);\n        ptVar33 = (tag *)local_64->hash_ptr;\n        if (local_70 <= plVar7) goto LAB_00023bdc;\n      }\n      ppVar50 = (page *)plVar7->file_ptr;\n      do {\n        if (ppVar50 != local_9c) {\n                    /* WARNING: Subroutine does not return */\n          as_abort("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }\n        psVar38 = plVar7->as_sym;\n        if (psVar38 == (symbolS *)0x0) {\n          plVar9 = plVar7->begin_ptr;\n          if (plVar9 == (localsym *)0x0) {\n            pfVar32 = plVar7->forward_ref;\njoined_r0x000242a4:\n            if (pfVar32 != (forward *)0x0) {\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              goto LAB_00023ff8;\n            }\n          }\n          else {\nLAB_00023e89:\n            iVar29 = plVar9->sym_index;\n            if (iVar29 == -1) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n            }\n            uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff | iVar29 << 0xc;\n            *(uint *)&(plVar7->ecoff_sym).asym.field_0xc = uVar44;\n            if (((ushort)uVar44 & 0x7c0) != 0x2c0) {\n              (plVar7->ecoff_sym).asym.iss = (plVar9->ecoff_sym).asym.iss;\n            }\n            bVar20 = (plVar9->ecoff_sym).asym.field_0xc;\n            if (((bVar20 & 0x3f) + 0x39 & 0x3b) == 0) {\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              *(uint *)&(plVar9->ecoff_sym).asym.field_0xc =\n                   *(uint *)&(plVar9->ecoff_sym).asym.field_0xc & 0xfff |\n                   ((int)local_a4->byte + 1) * 0x1000;\n              (*p_Var6)(stdoutput,&(plVar9->ecoff_sym).asym,buf + iVar29 * uVar54 + local_68);\n              if ((bVar20 & 0x37) == 6) goto LAB_00024180;\n              if (((bVar20 & 0x3f) == 7) &&\n                 ((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7c0) != 0x2c0)) {\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                }\n                if (plVar7->proc_ptr == (ecoff_proc *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                }\n                psVar8 = plVar7->proc_ptr->sym->as_sym;\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(psVar8);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(psVar8);\n                local_b4 = (lineno_list_t *)vVar65;\n                local_b0 = (int)(vVar65 >> 0x20);\n                pfVar32 = plVar7->forward_ref;\n                *(uint *)&(plVar7->ecoff_sym).asym.value = (int)local_b4 - (uint)vVar66;\n                *(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                     (local_b0 - (int)(vVar66 >> 0x20)) - (uint)(local_b4 < (uint)vVar66);\n              }\n              else {\n                pfVar32 = plVar7->forward_ref;\n              }\n            }\n            else {\n              if (plVar9->index_ptr == (ecoff_aux *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n              }\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              (plVar9->index_ptr->data).dnLow = (int)local_a4->byte + 1;\n              if ((bVar20 & 0x37) == 6) {\nLAB_00024180:\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n                }\n                if (plVar9->as_sym == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n                }\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(plVar9->as_sym);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(plVar9->as_sym);\n                uVar16 = vVar65 - vVar66;\n                if ((uVar16 & 1) == 0) {\n                  (plVar7->ecoff_sym).asym.value = uVar16;\n                }\n                else {\n                  (plVar7->ecoff_sym).asym.value = uVar16 + 1;\n                }\n                paVar30 = symbol_get_bfdsym(plVar9->as_sym);\n                uVar12 = *(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4);\n                *(int *)&paVar30[1].value = (int)(plVar7->ecoff_sym).asym.value;\n                *(undefined4 *)((int)&paVar30[1].value + 4) = uVar12;\n                pfVar32 = plVar7->forward_ref;\n                goto joined_r0x000242a4;\n              }\n              pfVar32 = plVar7->forward_ref;\n            }\njoined_r0x000247a5:\n            if (pfVar32 != (forward *)0x0) {\nLAB_00023ff8:\n              AVar10 = (AUXU)local_9c->file[0].file_index;\n              do {\n                paVar53 = pfVar32->index_ptr;\n                pfVar32->ifd_ptr->data = AVar10;\n                (paVar53->data).dnLow = (paVar53->data).dnLow & 0xfffU | (int)local_a4 << 0xc;\n                pfVar32 = pfVar32->next;\n              } while (pfVar32 != (forward *)0x0);\n            }\n          }\nLAB_0002402d:\n          uVar44 = (int)bufend - (int)local_a0->byte >> 0x1f;\n          if (uVar44 < uVar24 ||\n              uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)local_a0->byte) < uVar54)) {\n            local_a0 = (page *)ecoff_add_bytes(local_78,local_74,local_a0->byte,uVar54);\n          }\n          (*p_Var6)(stdoutput,&(plVar7->ecoff_sym).asym,local_a0);\n          local_a0 = (page *)((int)local_a0 + uVar54);\n          plVar7->sym_index = (long)local_a8;\n          peVar11 = plVar7->proc_ptr;\n          if ((peVar11 != (ecoff_proc *)0x0) && (peVar11->sym == plVar7)) {\n            (peVar11->pdr).isym = (int)local_a8 - local_8c;\n          }\n          local_a8 = (proc_t *)((int)local_a8 + 1);\n          if ((psVar38 != (symbolS *)0x0) &&\n             (peVar31 = symbol_get_obj(psVar38), peVar31->ecoff_symbol == plVar7)) {\n            if (((plVar7->ecoff_sym).asym.field_0xc & 0x37) == 6) {\n              *(uint *)&(plVar7->ecoff_sym).asym.field_0xc =\n                   *(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff |\n                   (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          if ((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff) == 0x47) {\n            if (plVar7->proc_ptr == (ecoff_proc *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n            }\n            psVar8 = plVar7->proc_ptr->sym->as_sym;\n            paVar27 = S_GET_SEGMENT(psVar38);\n            paVar28 = S_GET_SEGMENT(psVar8);\n            if (paVar27 != paVar28) {\n              pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n              as_warn(pcVar22);\n            }\n            vVar65 = S_GET_VALUE(psVar38);\n            vVar66 = S_GET_VALUE(psVar8);\n            (plVar7->ecoff_sym).asym.value = vVar65 - vVar66;\n          }\n          else {\n            vVar65 = S_GET_VALUE(psVar38);\n            paVar27 = S_GET_SEGMENT(psVar38);\n            ptVar33 = *(tag **)&plVar7->addend;\n            uVar44 = (int)&(*(tag **)&plVar7->addend)->free + (uint)vVar65;\n            bVar17 = paVar27->vma;\n            iVar29 = *(int *)((int)&paVar27->vma + 4);\n            *(uint *)&(plVar7->ecoff_sym).asym.value = uVar44 + (int)paVar27->vma;\n            *(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                 (int)&(*(tag **)((int)&plVar7->addend + 4))->free +\n                 (uint)CARRY4(uVar44,(uint)bVar17) +\n                 iVar29 + (uint)CARRY4((uint)vVar65,(uint)ptVar33) + (int)(vVar65 >> 0x20);\n          }\n          iVar29 = S_IS_WEAK(psVar38);\n          *(byte *)&plVar7->ecoff_sym =\n               *(byte *)&plVar7->ecoff_sym & 0xfb | ((byte)iVar29 & 1) * '\x04';\n          if ((((((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 6) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) &&\n              (iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0)) &&\n             (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) {\n            (plVar7->ecoff_sym).asym.field_0xc = (plVar7->ecoff_sym).asym.field_0xc & 0xc0 | 0xe;\n          }\n          if (((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff) == 0) &&\n             ((uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc,\n              (uVar44 & 0xfff00) != 0x8f300 || ((uVar44 & 0xfffdf) != 0x8f3c0)))) {\n            paVar27 = S_GET_SEGMENT(psVar38);\n            pbVar52 = (byte *)paVar27->name;\n            if (((*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300) ||\n               (((iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0 &&\n                 (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n                (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)))) {\n              bVar20 = (paVar27 == text_section) * '\x03' + 2;\n            }\n            else {\n              paVar30 = symbol_get_bfdsym(psVar38);\n              bVar20 = (-((paVar30->flags & 8) == 0) & 0xfbU) + 6;\n            }\n            iVar29 = S_IS_DEFINED(psVar38);\n            if (iVar29 == 0) {\n              peVar31 = symbol_get_obj(psVar38);\n              iVar29 = *(int *)((int)&peVar31->ecoff_extern_size + 4);\n              uVar49 = (uint)peVar31->ecoff_extern_size;\n              if ((iVar29 == 0 && uVar49 == 0) ||\n                 (uVar44 = bfd_get_gp_size(stdoutput),\n                 iVar29 != 0 || (uint)-iVar29 < (uint)(uVar44 < uVar49))) {\n                bVar42 = 6;\n              }\n              else {\n                *(uint *)&(plVar7->ecoff_sym).asym.value = uVar49;\n                bVar42 = 0x15;\n                *(int *)((int)&(plVar7->ecoff_sym).asym.value + 4) = iVar29;\n              }\n              paVar30 = symbol_get_bfdsym(psVar38);\n              uVar44 = (uint)bVar42;\n              *(uint *)&paVar30[1].value = uVar49;\n              *(int *)((int)&paVar30[1].value + 4) = iVar29;\n            }\n            else {\n              iVar29 = S_IS_COMMON(psVar38);\n              if (iVar29 == 0) {\n                uVar44 = 1;\n                if (paVar27 != text_section) {\n                  uVar44 = 2;\n                  bVar62 = paVar27 < data_section;\n                  bVar63 = paVar27 == data_section;\n                  if (!bVar63) {\n                    iVar29 = 7;\n                    uVar44 = 0xf;\n                    pbVar51 = pbVar52;\n                    pbVar58 = (byte *)".rdata";\n                    do {\n                      if (iVar29 == 0) break;\n                      iVar29 = iVar29 + -1;\n                      bVar62 = *pbVar51 < *pbVar58;\n                      bVar63 = *pbVar51 == *pbVar58;\n                      pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                      pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                    } while (bVar63);\n                    bVar61 = false;\n                    bVar62 = (!bVar62 && !bVar63) == bVar62;\n                    if (!bVar62) {\n                      iVar29 = 8;\n                      pbVar51 = pbVar52;\n                      pbVar58 = (byte *)".rodata";\n                      do {\n                        if (iVar29 == 0) break;\n                        iVar29 = iVar29 + -1;\n                        bVar61 = *pbVar51 < *pbVar58;\n                        bVar62 = *pbVar51 == *pbVar58;\n                        pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                        pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                      } while (bVar62);\n                      bVar63 = false;\n                      bVar62 = (!bVar61 && !bVar62) == bVar61;\n                      if (!bVar62) {\n                        iVar29 = 7;\n                        uVar44 = 0xd;\n                        pbVar51 = pbVar52;\n                        pbVar58 = (byte *)".sdata";\n                        do {\n                          if (iVar29 == 0) break;\n                          iVar29 = iVar29 + -1;\n                          bVar63 = *pbVar51 < *pbVar58;\n                          bVar62 = *pbVar51 == *pbVar58;\n                          pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                          pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                        } while (bVar62);\n                        if ((!bVar63 && !bVar62) != bVar63) {\n                          uVar44 = 3;\n                          bVar62 = paVar27 < bss_section;\n                          bVar63 = paVar27 == bss_section;\n                          if (!bVar63) {\n                            iVar29 = 6;\n                            uVar44 = 0xe;\n                            pbVar51 = (byte *)".sbss";\n                            do {\n                              if (iVar29 == 0) break;\n                              iVar29 = iVar29 + -1;\n                              bVar62 = *pbVar52 < *pbVar51;\n                              bVar63 = *pbVar52 == *pbVar51;\n                              pbVar52 = pbVar52 + (uint)bVar64 * -2 + 1;\n                              pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                            } while (bVar63);\n                            if ((!bVar62 && !bVar63) != bVar62) {\n                              uVar44 = (uint)(paVar27 == paVar23) * 3 + 2;\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                vVar65 = S_GET_VALUE(psVar38);\n                if (vVar65 != 0) {\n                  vVar65 = S_GET_VALUE(psVar38);\n                  iVar29 = (int)(vVar65 >> 0x20);\n                  uVar49 = bfd_get_gp_size(stdoutput);\n                  uVar44 = 0x12;\n                  if (iVar29 == 0 && (uint)(uVar49 < (uint)vVar65) <= (uint)-iVar29)\n                  goto LAB_00023df1;\n                }\n                uVar44 = 0x11;\n              }\n            }\nLAB_00023df1:\n            (plVar7->ecoff_sym).asym.field_0xc =\n                 (plVar7->ecoff_sym).asym.field_0xc & 0xc0 | bVar20 & 0x3f;\n            *(ushort *)&(plVar7->ecoff_sym).asym.field_0xc =\n                 *(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0xf83f | (ushort)(uVar44 << 6);\n          }\n          iVar29 = S_IS_EXTERNAL(psVar38);\n          if (((((iVar29 == 0) && (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) ||\n              ((plVar7->proc_ptr != (ecoff_proc *)0x0 ||\n               (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 0)))) ||\n             ((*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300)) {\n            iVar29 = S_IS_COMMON(psVar38);\n            if (iVar29 == 0) {\n              if (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) != 8) {\n                ptVar33 = (tag *)plVar7->name;\n                pcVar22 = strchr((char *)ptVar33,1);\n                if (pcVar22 != (char *)0x0) goto LAB_00023e7a;\n                sVar34 = add_string(&local_9c->file[0].strings,local_9c->file[0].str_hash,\n                                    (char *)ptVar33,(shash_t **)0x0);\n                (plVar7->ecoff_sym).asym.iss = sVar34;\n                plVar9 = plVar7->begin_ptr;\n                if (plVar9 != (localsym *)0x0) goto LAB_00023e89;\n                pfVar32 = plVar7->forward_ref;\n                local_a4 = (page *)((int)local_a8 - local_8c);\n                goto joined_r0x000247a5;\n              }\nLAB_00023e7a:\n              plVar9 = plVar7->begin_ptr;\n              if (plVar9 != (localsym *)0x0) goto LAB_00023e89;\n              pfVar32 = plVar7->forward_ref;\n              if (pfVar32 != (forward *)0x0) {\n                local_a4 = (page *)((int)local_a8 - local_8c);\n                goto LAB_00023ff8;\n              }\n              goto LAB_0002402d;\n            }\n          }\n          else {\n            S_IS_COMMON(psVar38);\n          }\n          if (plVar7->begin_ptr != (localsym *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (plVar7->forward_ref != (forward *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          peVar31 = symbol_get_obj(psVar38);\n          if (plVar7 == peVar31->ecoff_symbol) {\nLAB_00024347:\n            (plVar7->ecoff_sym).ifd = local_9c->file[0].file_index;\n            iVar29 = S_IS_EXTERNAL(psVar38);\n            if ((iVar29 != 0) || (iVar29 = S_IS_WEAK(psVar38), iVar29 != 0)) {\n              local_9c->ubyte[0x44] = local_9c->ubyte[0x44] & 0xdf;\n            }\n          }\n        }\n        if (local_70 <= plVar7 + 1) goto LAB_00024380;\n        ppVar50 = (page *)plVar7[1].file_ptr;\n        plVar7 = plVar7 + 1;\n      } while( true );\n    }\n    goto LAB_000243a4;\n  }" if (parenthesized_expression "(file_desc.first != (vlinks_t *)0x0)" ( (binary_expression "file_desc.first != (vlinks_t *)0x0" (field_expression "file_desc.first" identifier . field_identifier) != (cast_expression "(vlinks_t *)0x0" ( (type_descriptor "vlinks_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_8c = 0;\n    paVar23 = (segT)(PTR__bfd_std_section_00077fa0 + 0x180);\n    pvVar35 = file_desc.first;\nLAB_00023b80:\n    local_5c = pvVar35;\n    local_9c = local_5c->datum;\n    if (local_5c->next == (vlinks *)0x0) {\n      local_54 = (page *)(local_9c->file + file_desc.objects_last_page);\n      if (local_54 <= local_9c) {\n        local_68 = local_68 + local_8c * uVar54;\n        lVar25 = __udivdi3(local_68 - (int)hdr->cbSymOffset,\n                           -(uint)(local_68 < (uint)hdr->cbSymOffset) -\n                           *(int *)((int)&hdr->cbSymOffset + 4),(int)backend->external_sym_size,\n                           *(undefined4 *)((int)&backend->external_sym_size + 4));\n        goto LAB_0002441d;\n      }\n    }\n    else {\n      local_54 = (page *)(local_9c->file + file_desc.objects_per_page);\n      pvVar35 = local_5c->next;\n      if (local_54 <= local_9c) goto LAB_00023b80;\n    }\nLAB_00023bb7:\n    local_9c->ofile[0].isymBase = local_8c;\n    ptVar33 = local_9c->tag[4].same_block;\n    if (ptVar33 != (tag *)0x0) {\n      local_a8 = (proc_t *)local_8c;\nLAB_00023bdc:\n      local_64 = ptVar33;\n      plVar7 = (localsym *)local_64->same_name;\n      if ((tag *)local_64->hash_ptr == (tag *)0x0) {\n        local_70 = plVar7 + *(ushort *)(local_9c->byte + 0x9c);\n        if (local_70 <= plVar7) {\n          local_8c = (int)local_a8;\n          ptVar33 = (tag *)((int)local_a8 - local_9c->ofile[0].isymBase);\n          goto LAB_000243a4;\n        }\n      }\n      else {\n        local_70 = plVar7 + *(ushort *)(local_9c->byte + 0x9a);\n        ptVar33 = (tag *)local_64->hash_ptr;\n        if (local_70 <= plVar7) goto LAB_00023bdc;\n      }\n      ppVar50 = (page *)plVar7->file_ptr;\n      do {\n        if (ppVar50 != local_9c) {\n                    /* WARNING: Subroutine does not return */\n          as_abort("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }\n        psVar38 = plVar7->as_sym;\n        if (psVar38 == (symbolS *)0x0) {\n          plVar9 = plVar7->begin_ptr;\n          if (plVar9 == (localsym *)0x0) {\n            pfVar32 = plVar7->forward_ref;\njoined_r0x000242a4:\n            if (pfVar32 != (forward *)0x0) {\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              goto LAB_00023ff8;\n            }\n          }\n          else {\nLAB_00023e89:\n            iVar29 = plVar9->sym_index;\n            if (iVar29 == -1) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n            }\n            uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff | iVar29 << 0xc;\n            *(uint *)&(plVar7->ecoff_sym).asym.field_0xc = uVar44;\n            if (((ushort)uVar44 & 0x7c0) != 0x2c0) {\n              (plVar7->ecoff_sym).asym.iss = (plVar9->ecoff_sym).asym.iss;\n            }\n            bVar20 = (plVar9->ecoff_sym).asym.field_0xc;\n            if (((bVar20 & 0x3f) + 0x39 & 0x3b) == 0) {\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              *(uint *)&(plVar9->ecoff_sym).asym.field_0xc =\n                   *(uint *)&(plVar9->ecoff_sym).asym.field_0xc & 0xfff |\n                   ((int)local_a4->byte + 1) * 0x1000;\n              (*p_Var6)(stdoutput,&(plVar9->ecoff_sym).asym,buf + iVar29 * uVar54 + local_68);\n              if ((bVar20 & 0x37) == 6) goto LAB_00024180;\n              if (((bVar20 & 0x3f) == 7) &&\n                 ((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7c0) != 0x2c0)) {\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                }\n                if (plVar7->proc_ptr == (ecoff_proc *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                }\n                psVar8 = plVar7->proc_ptr->sym->as_sym;\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(psVar8);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(psVar8);\n                local_b4 = (lineno_list_t *)vVar65;\n                local_b0 = (int)(vVar65 >> 0x20);\n                pfVar32 = plVar7->forward_ref;\n                *(uint *)&(plVar7->ecoff_sym).asym.value = (int)local_b4 - (uint)vVar66;\n                *(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                     (local_b0 - (int)(vVar66 >> 0x20)) - (uint)(local_b4 < (uint)vVar66);\n              }\n              else {\n                pfVar32 = plVar7->forward_ref;\n              }\n            }\n            else {\n              if (plVar9->index_ptr == (ecoff_aux *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n              }\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              (plVar9->index_ptr->data).dnLow = (int)local_a4->byte + 1;\n              if ((bVar20 & 0x37) == 6) {\nLAB_00024180:\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n                }\n                if (plVar9->as_sym == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n                }\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(plVar9->as_sym);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(plVar9->as_sym);\n                uVar16 = vVar65 - vVar66;\n                if ((uVar16 & 1) == 0) {\n                  (plVar7->ecoff_sym).asym.value = uVar16;\n                }\n                else {\n                  (plVar7->ecoff_sym).asym.value = uVar16 + 1;\n                }\n                paVar30 = symbol_get_bfdsym(plVar9->as_sym);\n                uVar12 = *(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4);\n                *(int *)&paVar30[1].value = (int)(plVar7->ecoff_sym).asym.value;\n                *(undefined4 *)((int)&paVar30[1].value + 4) = uVar12;\n                pfVar32 = plVar7->forward_ref;\n                goto joined_r0x000242a4;\n              }\n              pfVar32 = plVar7->forward_ref;\n            }\njoined_r0x000247a5:\n            if (pfVar32 != (forward *)0x0) {\nLAB_00023ff8:\n              AVar10 = (AUXU)local_9c->file[0].file_index;\n              do {\n                paVar53 = pfVar32->index_ptr;\n                pfVar32->ifd_ptr->data = AVar10;\n                (paVar53->data).dnLow = (paVar53->data).dnLow & 0xfffU | (int)local_a4 << 0xc;\n                pfVar32 = pfVar32->next;\n              } while (pfVar32 != (forward *)0x0);\n            }\n          }\nLAB_0002402d:\n          uVar44 = (int)bufend - (int)local_a0->byte >> 0x1f;\n          if (uVar44 < uVar24 ||\n              uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)local_a0->byte) < uVar54)) {\n            local_a0 = (page *)ecoff_add_bytes(local_78,local_74,local_a0->byte,uVar54);\n          }\n          (*p_Var6)(stdoutput,&(plVar7->ecoff_sym).asym,local_a0);\n          local_a0 = (page *)((int)local_a0 + uVar54);\n          plVar7->sym_index = (long)local_a8;\n          peVar11 = plVar7->proc_ptr;\n          if ((peVar11 != (ecoff_proc *)0x0) && (peVar11->sym == plVar7)) {\n            (peVar11->pdr).isym = (int)local_a8 - local_8c;\n          }\n          local_a8 = (proc_t *)((int)local_a8 + 1);\n          if ((psVar38 != (symbolS *)0x0) &&\n             (peVar31 = symbol_get_obj(psVar38), peVar31->ecoff_symbol == plVar7)) {\n            if (((plVar7->ecoff_sym).asym.field_0xc & 0x37) == 6) {\n              *(uint *)&(plVar7->ecoff_sym).asym.field_0xc =\n                   *(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff |\n                   (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          if ((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff) == 0x47) {\n            if (plVar7->proc_ptr == (ecoff_proc *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n            }\n            psVar8 = plVar7->proc_ptr->sym->as_sym;\n            paVar27 = S_GET_SEGMENT(psVar38);\n            paVar28 = S_GET_SEGMENT(psVar8);\n            if (paVar27 != paVar28) {\n              pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n              as_warn(pcVar22);\n            }\n            vVar65 = S_GET_VALUE(psVar38);\n            vVar66 = S_GET_VALUE(psVar8);\n            (plVar7->ecoff_sym).asym.value = vVar65 - vVar66;\n          }\n          else {\n            vVar65 = S_GET_VALUE(psVar38);\n            paVar27 = S_GET_SEGMENT(psVar38);\n            ptVar33 = *(tag **)&plVar7->addend;\n            uVar44 = (int)&(*(tag **)&plVar7->addend)->free + (uint)vVar65;\n            bVar17 = paVar27->vma;\n            iVar29 = *(int *)((int)&paVar27->vma + 4);\n            *(uint *)&(plVar7->ecoff_sym).asym.value = uVar44 + (int)paVar27->vma;\n            *(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                 (int)&(*(tag **)((int)&plVar7->addend + 4))->free +\n                 (uint)CARRY4(uVar44,(uint)bVar17) +\n                 iVar29 + (uint)CARRY4((uint)vVar65,(uint)ptVar33) + (int)(vVar65 >> 0x20);\n          }\n          iVar29 = S_IS_WEAK(psVar38);\n          *(byte *)&plVar7->ecoff_sym =\n               *(byte *)&plVar7->ecoff_sym & 0xfb | ((byte)iVar29 & 1) * '\x04';\n          if ((((((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 6) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) &&\n              (iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0)) &&\n             (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) {\n            (plVar7->ecoff_sym).asym.field_0xc = (plVar7->ecoff_sym).asym.field_0xc & 0xc0 | 0xe;\n          }\n          if (((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff) == 0) &&\n             ((uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc,\n              (uVar44 & 0xfff00) != 0x8f300 || ((uVar44 & 0xfffdf) != 0x8f3c0)))) {\n            paVar27 = S_GET_SEGMENT(psVar38);\n            pbVar52 = (byte *)paVar27->name;\n            if (((*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300) ||\n               (((iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0 &&\n                 (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n                (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)))) {\n              bVar20 = (paVar27 == text_section) * '\x03' + 2;\n            }\n            else {\n              paVar30 = symbol_get_bfdsym(psVar38);\n              bVar20 = (-((paVar30->flags & 8) == 0) & 0xfbU) + 6;\n            }\n            iVar29 = S_IS_DEFINED(psVar38);\n            if (iVar29 == 0) {\n              peVar31 = symbol_get_obj(psVar38);\n              iVar29 = *(int *)((int)&peVar31->ecoff_extern_size + 4);\n              uVar49 = (uint)peVar31->ecoff_extern_size;\n              if ((iVar29 == 0 && uVar49 == 0) ||\n                 (uVar44 = bfd_get_gp_size(stdoutput),\n                 iVar29 != 0 || (uint)-iVar29 < (uint)(uVar44 < uVar49))) {\n                bVar42 = 6;\n              }\n              else {\n                *(uint *)&(plVar7->ecoff_sym).asym.value = uVar49;\n                bVar42 = 0x15;\n                *(int *)((int)&(plVar7->ecoff_sym).asym.value + 4) = iVar29;\n              }\n              paVar30 = symbol_get_bfdsym(psVar38);\n              uVar44 = (uint)bVar42;\n              *(uint *)&paVar30[1].value = uVar49;\n              *(int *)((int)&paVar30[1].value + 4) = iVar29;\n            }\n            else {\n              iVar29 = S_IS_COMMON(psVar38);\n              if (iVar29 == 0) {\n                uVar44 = 1;\n                if (paVar27 != text_section) {\n                  uVar44 = 2;\n                  bVar62 = paVar27 < data_section;\n                  bVar63 = paVar27 == data_section;\n                  if (!bVar63) {\n                    iVar29 = 7;\n                    uVar44 = 0xf;\n                    pbVar51 = pbVar52;\n                    pbVar58 = (byte *)".rdata";\n                    do {\n                      if (iVar29 == 0) break;\n                      iVar29 = iVar29 + -1;\n                      bVar62 = *pbVar51 < *pbVar58;\n                      bVar63 = *pbVar51 == *pbVar58;\n                      pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                      pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                    } while (bVar63);\n                    bVar61 = false;\n                    bVar62 = (!bVar62 && !bVar63) == bVar62;\n                    if (!bVar62) {\n                      iVar29 = 8;\n                      pbVar51 = pbVar52;\n                      pbVar58 = (byte *)".rodata";\n                      do {\n                        if (iVar29 == 0) break;\n                        iVar29 = iVar29 + -1;\n                        bVar61 = *pbVar51 < *pbVar58;\n                        bVar62 = *pbVar51 == *pbVar58;\n                        pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                        pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                      } while (bVar62);\n                      bVar63 = false;\n                      bVar62 = (!bVar61 && !bVar62) == bVar61;\n                      if (!bVar62) {\n                        iVar29 = 7;\n                        uVar44 = 0xd;\n                        pbVar51 = pbVar52;\n                        pbVar58 = (byte *)".sdata";\n                        do {\n                          if (iVar29 == 0) break;\n                          iVar29 = iVar29 + -1;\n                          bVar63 = *pbVar51 < *pbVar58;\n                          bVar62 = *pbVar51 == *pbVar58;\n                          pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                          pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                        } while (bVar62);\n                        if ((!bVar63 && !bVar62) != bVar63) {\n                          uVar44 = 3;\n                          bVar62 = paVar27 < bss_section;\n                          bVar63 = paVar27 == bss_section;\n                          if (!bVar63) {\n                            iVar29 = 6;\n                            uVar44 = 0xe;\n                            pbVar51 = (byte *)".sbss";\n                            do {\n                              if (iVar29 == 0) break;\n                              iVar29 = iVar29 + -1;\n                              bVar62 = *pbVar52 < *pbVar51;\n                              bVar63 = *pbVar52 == *pbVar51;\n                              pbVar52 = pbVar52 + (uint)bVar64 * -2 + 1;\n                              pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                            } while (bVar63);\n                            if ((!bVar62 && !bVar63) != bVar62) {\n                              uVar44 = (uint)(paVar27 == paVar23) * 3 + 2;\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                vVar65 = S_GET_VALUE(psVar38);\n                if (vVar65 != 0) {\n                  vVar65 = S_GET_VALUE(psVar38);\n                  iVar29 = (int)(vVar65 >> 0x20);\n                  uVar49 = bfd_get_gp_size(stdoutput);\n                  uVar44 = 0x12;\n                  if (iVar29 == 0 && (uint)(uVar49 < (uint)vVar65) <= (uint)-iVar29)\n                  goto LAB_00023df1;\n                }\n                uVar44 = 0x11;\n              }\n            }\nLAB_00023df1:\n            (plVar7->ecoff_sym).asym.field_0xc =\n                 (plVar7->ecoff_sym).asym.field_0xc & 0xc0 | bVar20 & 0x3f;\n            *(ushort *)&(plVar7->ecoff_sym).asym.field_0xc =\n                 *(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0xf83f | (ushort)(uVar44 << 6);\n          }\n          iVar29 = S_IS_EXTERNAL(psVar38);\n          if (((((iVar29 == 0) && (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) ||\n              ((plVar7->proc_ptr != (ecoff_proc *)0x0 ||\n               (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 0)))) ||\n             ((*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300)) {\n            iVar29 = S_IS_COMMON(psVar38);\n            if (iVar29 == 0) {\n              if (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) != 8) {\n                ptVar33 = (tag *)plVar7->name;\n                pcVar22 = strchr((char *)ptVar33,1);\n                if (pcVar22 != (char *)0x0) goto LAB_00023e7a;\n                sVar34 = add_string(&local_9c->file[0].strings,local_9c->file[0].str_hash,\n                                    (char *)ptVar33,(shash_t **)0x0);\n                (plVar7->ecoff_sym).asym.iss = sVar34;\n                plVar9 = plVar7->begin_ptr;\n                if (plVar9 != (localsym *)0x0) goto LAB_00023e89;\n                pfVar32 = plVar7->forward_ref;\n                local_a4 = (page *)((int)local_a8 - local_8c);\n                goto joined_r0x000247a5;\n              }\nLAB_00023e7a:\n              plVar9 = plVar7->begin_ptr;\n              if (plVar9 != (localsym *)0x0) goto LAB_00023e89;\n              pfVar32 = plVar7->forward_ref;\n              if (pfVar32 != (forward *)0x0) {\n                local_a4 = (page *)((int)local_a8 - local_8c);\n                goto LAB_00023ff8;\n              }\n              goto LAB_0002402d;\n            }\n          }\n          else {\n            S_IS_COMMON(psVar38);\n          }\n          if (plVar7->begin_ptr != (localsym *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (plVar7->forward_ref != (forward *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          peVar31 = symbol_get_obj(psVar38);\n          if (plVar7 == peVar31->ecoff_symbol) {\nLAB_00024347:\n            (plVar7->ecoff_sym).ifd = local_9c->file[0].file_index;\n            iVar29 = S_IS_EXTERNAL(psVar38);\n            if ((iVar29 != 0) || (iVar29 = S_IS_WEAK(psVar38), iVar29 != 0)) {\n              local_9c->ubyte[0x44] = local_9c->ubyte[0x44] & 0xdf;\n            }\n          }\n        }\n        if (local_70 <= plVar7 + 1) goto LAB_00024380;\n        ppVar50 = (page *)plVar7[1].file_ptr;\n        plVar7 = plVar7 + 1;\n      } while( true );\n    }\n    goto LAB_000243a4;\n  }" { (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" identifier = number_literal) ;) (expression_statement "paVar23 = (segT)(PTR__bfd_std_section_00077fa0 + 0x180);" (assignment_expression "paVar23 = (segT)(PTR__bfd_std_section_00077fa0 + 0x180)" identifier = (call_expression "(segT)(PTR__bfd_std_section_00077fa0 + 0x180)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(PTR__bfd_std_section_00077fa0 + 0x180)" ( (binary_expression "PTR__bfd_std_section_00077fa0 + 0x180" identifier + number_literal) )))) ;) (expression_statement "pvVar35 = file_desc.first;" (assignment_expression "pvVar35 = file_desc.first" identifier = (field_expression "file_desc.first" identifier . field_identifier)) ;) (labeled_statement "LAB_00023b80:\n    local_5c = pvVar35;" statement_identifier : (expression_statement "local_5c = pvVar35;" (assignment_expression "local_5c = pvVar35" identifier = identifier) ;)) (expression_statement "local_9c = local_5c->datum;" (assignment_expression "local_9c = local_5c->datum" identifier = (field_expression "local_5c->datum" identifier -> field_identifier)) ;) (if_statement "if (local_5c->next == (vlinks *)0x0) {\n      local_54 = (page *)(local_9c->file + file_desc.objects_last_page);\n      if (local_54 <= local_9c) {\n        local_68 = local_68 + local_8c * uVar54;\n        lVar25 = __udivdi3(local_68 - (int)hdr->cbSymOffset,\n                           -(uint)(local_68 < (uint)hdr->cbSymOffset) -\n                           *(int *)((int)&hdr->cbSymOffset + 4),(int)backend->external_sym_size,\n                           *(undefined4 *)((int)&backend->external_sym_size + 4));\n        goto LAB_0002441d;\n      }\n    }\n    else {\n      local_54 = (page *)(local_9c->file + file_desc.objects_per_page);\n      pvVar35 = local_5c->next;\n      if (local_54 <= local_9c) goto LAB_00023b80;\n    }" if (parenthesized_expression "(local_5c->next == (vlinks *)0x0)" ( (binary_expression "local_5c->next == (vlinks *)0x0" (field_expression "local_5c->next" identifier -> field_identifier) == (cast_expression "(vlinks *)0x0" ( (type_descriptor "vlinks *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_54 = (page *)(local_9c->file + file_desc.objects_last_page);\n      if (local_54 <= local_9c) {\n        local_68 = local_68 + local_8c * uVar54;\n        lVar25 = __udivdi3(local_68 - (int)hdr->cbSymOffset,\n                           -(uint)(local_68 < (uint)hdr->cbSymOffset) -\n                           *(int *)((int)&hdr->cbSymOffset + 4),(int)backend->external_sym_size,\n                           *(undefined4 *)((int)&backend->external_sym_size + 4));\n        goto LAB_0002441d;\n      }\n    }" { (expression_statement "local_54 = (page *)(local_9c->file + file_desc.objects_last_page);" (assignment_expression "local_54 = (page *)(local_9c->file + file_desc.objects_last_page)" identifier = (cast_expression "(page *)(local_9c->file + file_desc.objects_last_page)" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_9c->file + file_desc.objects_last_page)" ( (binary_expression "local_9c->file + file_desc.objects_last_page" (field_expression "local_9c->file" identifier -> field_identifier) + (field_expression "file_desc.objects_last_page" identifier . field_identifier)) )))) ;) (if_statement "if (local_54 <= local_9c) {\n        local_68 = local_68 + local_8c * uVar54;\n        lVar25 = __udivdi3(local_68 - (int)hdr->cbSymOffset,\n                           -(uint)(local_68 < (uint)hdr->cbSymOffset) -\n                           *(int *)((int)&hdr->cbSymOffset + 4),(int)backend->external_sym_size,\n                           *(undefined4 *)((int)&backend->external_sym_size + 4));\n        goto LAB_0002441d;\n      }" if (parenthesized_expression "(local_54 <= local_9c)" ( (binary_expression "local_54 <= local_9c" identifier <= identifier) )) (compound_statement "{\n        local_68 = local_68 + local_8c * uVar54;\n        lVar25 = __udivdi3(local_68 - (int)hdr->cbSymOffset,\n                           -(uint)(local_68 < (uint)hdr->cbSymOffset) -\n                           *(int *)((int)&hdr->cbSymOffset + 4),(int)backend->external_sym_size,\n                           *(undefined4 *)((int)&backend->external_sym_size + 4));\n        goto LAB_0002441d;\n      }" { (expression_statement "local_68 = local_68 + local_8c * uVar54;" (assignment_expression "local_68 = local_68 + local_8c * uVar54" identifier = (binary_expression "local_68 + local_8c * uVar54" identifier + (binary_expression "local_8c * uVar54" identifier * identifier))) ;) (expression_statement "lVar25 = __udivdi3(local_68 - (int)hdr->cbSymOffset,\n                           -(uint)(local_68 < (uint)hdr->cbSymOffset) -\n                           *(int *)((int)&hdr->cbSymOffset + 4),(int)backend->external_sym_size,\n                           *(undefined4 *)((int)&backend->external_sym_size + 4));" (assignment_expression "lVar25 = __udivdi3(local_68 - (int)hdr->cbSymOffset,\n                           -(uint)(local_68 < (uint)hdr->cbSymOffset) -\n                           *(int *)((int)&hdr->cbSymOffset + 4),(int)backend->external_sym_size,\n                           *(undefined4 *)((int)&backend->external_sym_size + 4))" identifier = (call_expression "__udivdi3(local_68 - (int)hdr->cbSymOffset,\n                           -(uint)(local_68 < (uint)hdr->cbSymOffset) -\n                           *(int *)((int)&hdr->cbSymOffset + 4),(int)backend->external_sym_size,\n                           *(undefined4 *)((int)&backend->external_sym_size + 4))" identifier (argument_list "(local_68 - (int)hdr->cbSymOffset,\n                           -(uint)(local_68 < (uint)hdr->cbSymOffset) -\n                           *(int *)((int)&hdr->cbSymOffset + 4),(int)backend->external_sym_size,\n                           *(undefined4 *)((int)&backend->external_sym_size + 4))" ( (binary_expression "local_68 - (int)hdr->cbSymOffset" identifier - (cast_expression "(int)hdr->cbSymOffset" ( (type_descriptor "int" primitive_type) ) (field_expression "hdr->cbSymOffset" identifier -> field_identifier))) , (binary_expression "-(uint)(local_68 < (uint)hdr->cbSymOffset) -\n                           *(int *)((int)&hdr->cbSymOffset + 4)" (unary_expression "-(uint)(local_68 < (uint)hdr->cbSymOffset)" - (call_expression "(uint)(local_68 < (uint)hdr->cbSymOffset)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_68 < (uint)hdr->cbSymOffset)" ( (binary_expression "local_68 < (uint)hdr->cbSymOffset" identifier < (cast_expression "(uint)hdr->cbSymOffset" ( (type_descriptor "uint" type_identifier) ) (field_expression "hdr->cbSymOffset" identifier -> field_identifier))) )))) - (pointer_expression "*(int *)((int)&hdr->cbSymOffset + 4)" * (cast_expression "(int *)((int)&hdr->cbSymOffset + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&hdr->cbSymOffset + 4)" ( (binary_expression "(int)&hdr->cbSymOffset + 4" (cast_expression "(int)&hdr->cbSymOffset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&hdr->cbSymOffset" & (field_expression "hdr->cbSymOffset" identifier -> field_identifier))) + number_literal) ))))) , (cast_expression "(int)backend->external_sym_size" ( (type_descriptor "int" primitive_type) ) (field_expression "backend->external_sym_size" identifier -> field_identifier)) , (pointer_expression "*(undefined4 *)((int)&backend->external_sym_size + 4)" * (cast_expression "(undefined4 *)((int)&backend->external_sym_size + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&backend->external_sym_size + 4)" ( (binary_expression "(int)&backend->external_sym_size + 4" (cast_expression "(int)&backend->external_sym_size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&backend->external_sym_size" & (field_expression "backend->external_sym_size" identifier -> field_identifier))) + number_literal) )))) )))) ;) (goto_statement "goto LAB_0002441d;" goto statement_identifier ;) })) }) (else_clause "else {\n      local_54 = (page *)(local_9c->file + file_desc.objects_per_page);\n      pvVar35 = local_5c->next;\n      if (local_54 <= local_9c) goto LAB_00023b80;\n    }" else (compound_statement "{\n      local_54 = (page *)(local_9c->file + file_desc.objects_per_page);\n      pvVar35 = local_5c->next;\n      if (local_54 <= local_9c) goto LAB_00023b80;\n    }" { (expression_statement "local_54 = (page *)(local_9c->file + file_desc.objects_per_page);" (assignment_expression "local_54 = (page *)(local_9c->file + file_desc.objects_per_page)" identifier = (cast_expression "(page *)(local_9c->file + file_desc.objects_per_page)" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_9c->file + file_desc.objects_per_page)" ( (binary_expression "local_9c->file + file_desc.objects_per_page" (field_expression "local_9c->file" identifier -> field_identifier) + (field_expression "file_desc.objects_per_page" identifier . field_identifier)) )))) ;) (expression_statement "pvVar35 = local_5c->next;" (assignment_expression "pvVar35 = local_5c->next" identifier = (field_expression "local_5c->next" identifier -> field_identifier)) ;) (if_statement "if (local_54 <= local_9c) goto LAB_00023b80;" if (parenthesized_expression "(local_54 <= local_9c)" ( (binary_expression "local_54 <= local_9c" identifier <= identifier) )) (goto_statement "goto LAB_00023b80;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00023bb7:\n    local_9c->ofile[0].isymBase = local_8c;" statement_identifier : (expression_statement "local_9c->ofile[0].isymBase = local_8c;" (assignment_expression "local_9c->ofile[0].isymBase = local_8c" (field_expression "local_9c->ofile[0].isymBase" (subscript_expression "local_9c->ofile[0]" (field_expression "local_9c->ofile" identifier -> field_identifier) [ number_literal ]) . field_identifier) = identifier) ;)) (expression_statement "ptVar33 = local_9c->tag[4].same_block;" (assignment_expression "ptVar33 = local_9c->tag[4].same_block" identifier = (field_expression "local_9c->tag[4].same_block" (subscript_expression "local_9c->tag[4]" (field_expression "local_9c->tag" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) (if_statement "if (ptVar33 != (tag *)0x0) {\n      local_a8 = (proc_t *)local_8c;\nLAB_00023bdc:\n      local_64 = ptVar33;\n      plVar7 = (localsym *)local_64->same_name;\n      if ((tag *)local_64->hash_ptr == (tag *)0x0) {\n        local_70 = plVar7 + *(ushort *)(local_9c->byte + 0x9c);\n        if (local_70 <= plVar7) {\n          local_8c = (int)local_a8;\n          ptVar33 = (tag *)((int)local_a8 - local_9c->ofile[0].isymBase);\n          goto LAB_000243a4;\n        }\n      }\n      else {\n        local_70 = plVar7 + *(ushort *)(local_9c->byte + 0x9a);\n        ptVar33 = (tag *)local_64->hash_ptr;\n        if (local_70 <= plVar7) goto LAB_00023bdc;\n      }\n      ppVar50 = (page *)plVar7->file_ptr;\n      do {\n        if (ppVar50 != local_9c) {\n                    /* WARNING: Subroutine does not return */\n          as_abort("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }\n        psVar38 = plVar7->as_sym;\n        if (psVar38 == (symbolS *)0x0) {\n          plVar9 = plVar7->begin_ptr;\n          if (plVar9 == (localsym *)0x0) {\n            pfVar32 = plVar7->forward_ref;\njoined_r0x000242a4:\n            if (pfVar32 != (forward *)0x0) {\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              goto LAB_00023ff8;\n            }\n          }\n          else {\nLAB_00023e89:\n            iVar29 = plVar9->sym_index;\n            if (iVar29 == -1) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n            }\n            uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff | iVar29 << 0xc;\n            *(uint *)&(plVar7->ecoff_sym).asym.field_0xc = uVar44;\n            if (((ushort)uVar44 & 0x7c0) != 0x2c0) {\n              (plVar7->ecoff_sym).asym.iss = (plVar9->ecoff_sym).asym.iss;\n            }\n            bVar20 = (plVar9->ecoff_sym).asym.field_0xc;\n            if (((bVar20 & 0x3f) + 0x39 & 0x3b) == 0) {\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              *(uint *)&(plVar9->ecoff_sym).asym.field_0xc =\n                   *(uint *)&(plVar9->ecoff_sym).asym.field_0xc & 0xfff |\n                   ((int)local_a4->byte + 1) * 0x1000;\n              (*p_Var6)(stdoutput,&(plVar9->ecoff_sym).asym,buf + iVar29 * uVar54 + local_68);\n              if ((bVar20 & 0x37) == 6) goto LAB_00024180;\n              if (((bVar20 & 0x3f) == 7) &&\n                 ((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7c0) != 0x2c0)) {\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                }\n                if (plVar7->proc_ptr == (ecoff_proc *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                }\n                psVar8 = plVar7->proc_ptr->sym->as_sym;\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(psVar8);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(psVar8);\n                local_b4 = (lineno_list_t *)vVar65;\n                local_b0 = (int)(vVar65 >> 0x20);\n                pfVar32 = plVar7->forward_ref;\n                *(uint *)&(plVar7->ecoff_sym).asym.value = (int)local_b4 - (uint)vVar66;\n                *(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                     (local_b0 - (int)(vVar66 >> 0x20)) - (uint)(local_b4 < (uint)vVar66);\n              }\n              else {\n                pfVar32 = plVar7->forward_ref;\n              }\n            }\n            else {\n              if (plVar9->index_ptr == (ecoff_aux *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n              }\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              (plVar9->index_ptr->data).dnLow = (int)local_a4->byte + 1;\n              if ((bVar20 & 0x37) == 6) {\nLAB_00024180:\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n                }\n                if (plVar9->as_sym == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n                }\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(plVar9->as_sym);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(plVar9->as_sym);\n                uVar16 = vVar65 - vVar66;\n                if ((uVar16 & 1) == 0) {\n                  (plVar7->ecoff_sym).asym.value = uVar16;\n                }\n                else {\n                  (plVar7->ecoff_sym).asym.value = uVar16 + 1;\n                }\n                paVar30 = symbol_get_bfdsym(plVar9->as_sym);\n                uVar12 = *(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4);\n                *(int *)&paVar30[1].value = (int)(plVar7->ecoff_sym).asym.value;\n                *(undefined4 *)((int)&paVar30[1].value + 4) = uVar12;\n                pfVar32 = plVar7->forward_ref;\n                goto joined_r0x000242a4;\n              }\n              pfVar32 = plVar7->forward_ref;\n            }\njoined_r0x000247a5:\n            if (pfVar32 != (forward *)0x0) {\nLAB_00023ff8:\n              AVar10 = (AUXU)local_9c->file[0].file_index;\n              do {\n                paVar53 = pfVar32->index_ptr;\n                pfVar32->ifd_ptr->data = AVar10;\n                (paVar53->data).dnLow = (paVar53->data).dnLow & 0xfffU | (int)local_a4 << 0xc;\n                pfVar32 = pfVar32->next;\n              } while (pfVar32 != (forward *)0x0);\n            }\n          }\nLAB_0002402d:\n          uVar44 = (int)bufend - (int)local_a0->byte >> 0x1f;\n          if (uVar44 < uVar24 ||\n              uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)local_a0->byte) < uVar54)) {\n            local_a0 = (page *)ecoff_add_bytes(local_78,local_74,local_a0->byte,uVar54);\n          }\n          (*p_Var6)(stdoutput,&(plVar7->ecoff_sym).asym,local_a0);\n          local_a0 = (page *)((int)local_a0 + uVar54);\n          plVar7->sym_index = (long)local_a8;\n          peVar11 = plVar7->proc_ptr;\n          if ((peVar11 != (ecoff_proc *)0x0) && (peVar11->sym == plVar7)) {\n            (peVar11->pdr).isym = (int)local_a8 - local_8c;\n          }\n          local_a8 = (proc_t *)((int)local_a8 + 1);\n          if ((psVar38 != (symbolS *)0x0) &&\n             (peVar31 = symbol_get_obj(psVar38), peVar31->ecoff_symbol == plVar7)) {\n            if (((plVar7->ecoff_sym).asym.field_0xc & 0x37) == 6) {\n              *(uint *)&(plVar7->ecoff_sym).asym.field_0xc =\n                   *(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff |\n                   (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          if ((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff) == 0x47) {\n            if (plVar7->proc_ptr == (ecoff_proc *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n            }\n            psVar8 = plVar7->proc_ptr->sym->as_sym;\n            paVar27 = S_GET_SEGMENT(psVar38);\n            paVar28 = S_GET_SEGMENT(psVar8);\n            if (paVar27 != paVar28) {\n              pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n              as_warn(pcVar22);\n            }\n            vVar65 = S_GET_VALUE(psVar38);\n            vVar66 = S_GET_VALUE(psVar8);\n            (plVar7->ecoff_sym).asym.value = vVar65 - vVar66;\n          }\n          else {\n            vVar65 = S_GET_VALUE(psVar38);\n            paVar27 = S_GET_SEGMENT(psVar38);\n            ptVar33 = *(tag **)&plVar7->addend;\n            uVar44 = (int)&(*(tag **)&plVar7->addend)->free + (uint)vVar65;\n            bVar17 = paVar27->vma;\n            iVar29 = *(int *)((int)&paVar27->vma + 4);\n            *(uint *)&(plVar7->ecoff_sym).asym.value = uVar44 + (int)paVar27->vma;\n            *(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                 (int)&(*(tag **)((int)&plVar7->addend + 4))->free +\n                 (uint)CARRY4(uVar44,(uint)bVar17) +\n                 iVar29 + (uint)CARRY4((uint)vVar65,(uint)ptVar33) + (int)(vVar65 >> 0x20);\n          }\n          iVar29 = S_IS_WEAK(psVar38);\n          *(byte *)&plVar7->ecoff_sym =\n               *(byte *)&plVar7->ecoff_sym & 0xfb | ((byte)iVar29 & 1) * '\x04';\n          if ((((((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 6) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) &&\n              (iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0)) &&\n             (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) {\n            (plVar7->ecoff_sym).asym.field_0xc = (plVar7->ecoff_sym).asym.field_0xc & 0xc0 | 0xe;\n          }\n          if (((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff) == 0) &&\n             ((uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc,\n              (uVar44 & 0xfff00) != 0x8f300 || ((uVar44 & 0xfffdf) != 0x8f3c0)))) {\n            paVar27 = S_GET_SEGMENT(psVar38);\n            pbVar52 = (byte *)paVar27->name;\n            if (((*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300) ||\n               (((iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0 &&\n                 (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n                (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)))) {\n              bVar20 = (paVar27 == text_section) * '\x03' + 2;\n            }\n            else {\n              paVar30 = symbol_get_bfdsym(psVar38);\n              bVar20 = (-((paVar30->flags & 8) == 0) & 0xfbU) + 6;\n            }\n            iVar29 = S_IS_DEFINED(psVar38);\n            if (iVar29 == 0) {\n              peVar31 = symbol_get_obj(psVar38);\n              iVar29 = *(int *)((int)&peVar31->ecoff_extern_size + 4);\n              uVar49 = (uint)peVar31->ecoff_extern_size;\n              if ((iVar29 == 0 && uVar49 == 0) ||\n                 (uVar44 = bfd_get_gp_size(stdoutput),\n                 iVar29 != 0 || (uint)-iVar29 < (uint)(uVar44 < uVar49))) {\n                bVar42 = 6;\n              }\n              else {\n                *(uint *)&(plVar7->ecoff_sym).asym.value = uVar49;\n                bVar42 = 0x15;\n                *(int *)((int)&(plVar7->ecoff_sym).asym.value + 4) = iVar29;\n              }\n              paVar30 = symbol_get_bfdsym(psVar38);\n              uVar44 = (uint)bVar42;\n              *(uint *)&paVar30[1].value = uVar49;\n              *(int *)((int)&paVar30[1].value + 4) = iVar29;\n            }\n            else {\n              iVar29 = S_IS_COMMON(psVar38);\n              if (iVar29 == 0) {\n                uVar44 = 1;\n                if (paVar27 != text_section) {\n                  uVar44 = 2;\n                  bVar62 = paVar27 < data_section;\n                  bVar63 = paVar27 == data_section;\n                  if (!bVar63) {\n                    iVar29 = 7;\n                    uVar44 = 0xf;\n                    pbVar51 = pbVar52;\n                    pbVar58 = (byte *)".rdata";\n                    do {\n                      if (iVar29 == 0) break;\n                      iVar29 = iVar29 + -1;\n                      bVar62 = *pbVar51 < *pbVar58;\n                      bVar63 = *pbVar51 == *pbVar58;\n                      pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                      pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                    } while (bVar63);\n                    bVar61 = false;\n                    bVar62 = (!bVar62 && !bVar63) == bVar62;\n                    if (!bVar62) {\n                      iVar29 = 8;\n                      pbVar51 = pbVar52;\n                      pbVar58 = (byte *)".rodata";\n                      do {\n                        if (iVar29 == 0) break;\n                        iVar29 = iVar29 + -1;\n                        bVar61 = *pbVar51 < *pbVar58;\n                        bVar62 = *pbVar51 == *pbVar58;\n                        pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                        pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                      } while (bVar62);\n                      bVar63 = false;\n                      bVar62 = (!bVar61 && !bVar62) == bVar61;\n                      if (!bVar62) {\n                        iVar29 = 7;\n                        uVar44 = 0xd;\n                        pbVar51 = pbVar52;\n                        pbVar58 = (byte *)".sdata";\n                        do {\n                          if (iVar29 == 0) break;\n                          iVar29 = iVar29 + -1;\n                          bVar63 = *pbVar51 < *pbVar58;\n                          bVar62 = *pbVar51 == *pbVar58;\n                          pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                          pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                        } while (bVar62);\n                        if ((!bVar63 && !bVar62) != bVar63) {\n                          uVar44 = 3;\n                          bVar62 = paVar27 < bss_section;\n                          bVar63 = paVar27 == bss_section;\n                          if (!bVar63) {\n                            iVar29 = 6;\n                            uVar44 = 0xe;\n                            pbVar51 = (byte *)".sbss";\n                            do {\n                              if (iVar29 == 0) break;\n                              iVar29 = iVar29 + -1;\n                              bVar62 = *pbVar52 < *pbVar51;\n                              bVar63 = *pbVar52 == *pbVar51;\n                              pbVar52 = pbVar52 + (uint)bVar64 * -2 + 1;\n                              pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                            } while (bVar63);\n                            if ((!bVar62 && !bVar63) != bVar62) {\n                              uVar44 = (uint)(paVar27 == paVar23) * 3 + 2;\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                vVar65 = S_GET_VALUE(psVar38);\n                if (vVar65 != 0) {\n                  vVar65 = S_GET_VALUE(psVar38);\n                  iVar29 = (int)(vVar65 >> 0x20);\n                  uVar49 = bfd_get_gp_size(stdoutput);\n                  uVar44 = 0x12;\n                  if (iVar29 == 0 && (uint)(uVar49 < (uint)vVar65) <= (uint)-iVar29)\n                  goto LAB_00023df1;\n                }\n                uVar44 = 0x11;\n              }\n            }\nLAB_00023df1:\n            (plVar7->ecoff_sym).asym.field_0xc =\n                 (plVar7->ecoff_sym).asym.field_0xc & 0xc0 | bVar20 & 0x3f;\n            *(ushort *)&(plVar7->ecoff_sym).asym.field_0xc =\n                 *(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0xf83f | (ushort)(uVar44 << 6);\n          }\n          iVar29 = S_IS_EXTERNAL(psVar38);\n          if (((((iVar29 == 0) && (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) ||\n              ((plVar7->proc_ptr != (ecoff_proc *)0x0 ||\n               (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 0)))) ||\n             ((*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300)) {\n            iVar29 = S_IS_COMMON(psVar38);\n            if (iVar29 == 0) {\n              if (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) != 8) {\n                ptVar33 = (tag *)plVar7->name;\n                pcVar22 = strchr((char *)ptVar33,1);\n                if (pcVar22 != (char *)0x0) goto LAB_00023e7a;\n                sVar34 = add_string(&local_9c->file[0].strings,local_9c->file[0].str_hash,\n                                    (char *)ptVar33,(shash_t **)0x0);\n                (plVar7->ecoff_sym).asym.iss = sVar34;\n                plVar9 = plVar7->begin_ptr;\n                if (plVar9 != (localsym *)0x0) goto LAB_00023e89;\n                pfVar32 = plVar7->forward_ref;\n                local_a4 = (page *)((int)local_a8 - local_8c);\n                goto joined_r0x000247a5;\n              }\nLAB_00023e7a:\n              plVar9 = plVar7->begin_ptr;\n              if (plVar9 != (localsym *)0x0) goto LAB_00023e89;\n              pfVar32 = plVar7->forward_ref;\n              if (pfVar32 != (forward *)0x0) {\n                local_a4 = (page *)((int)local_a8 - local_8c);\n                goto LAB_00023ff8;\n              }\n              goto LAB_0002402d;\n            }\n          }\n          else {\n            S_IS_COMMON(psVar38);\n          }\n          if (plVar7->begin_ptr != (localsym *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (plVar7->forward_ref != (forward *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          peVar31 = symbol_get_obj(psVar38);\n          if (plVar7 == peVar31->ecoff_symbol) {\nLAB_00024347:\n            (plVar7->ecoff_sym).ifd = local_9c->file[0].file_index;\n            iVar29 = S_IS_EXTERNAL(psVar38);\n            if ((iVar29 != 0) || (iVar29 = S_IS_WEAK(psVar38), iVar29 != 0)) {\n              local_9c->ubyte[0x44] = local_9c->ubyte[0x44] & 0xdf;\n            }\n          }\n        }\n        if (local_70 <= plVar7 + 1) goto LAB_00024380;\n        ppVar50 = (page *)plVar7[1].file_ptr;\n        plVar7 = plVar7 + 1;\n      } while( true );\n    }" if (parenthesized_expression "(ptVar33 != (tag *)0x0)" ( (binary_expression "ptVar33 != (tag *)0x0" identifier != (cast_expression "(tag *)0x0" ( (type_descriptor "tag *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_a8 = (proc_t *)local_8c;\nLAB_00023bdc:\n      local_64 = ptVar33;\n      plVar7 = (localsym *)local_64->same_name;\n      if ((tag *)local_64->hash_ptr == (tag *)0x0) {\n        local_70 = plVar7 + *(ushort *)(local_9c->byte + 0x9c);\n        if (local_70 <= plVar7) {\n          local_8c = (int)local_a8;\n          ptVar33 = (tag *)((int)local_a8 - local_9c->ofile[0].isymBase);\n          goto LAB_000243a4;\n        }\n      }\n      else {\n        local_70 = plVar7 + *(ushort *)(local_9c->byte + 0x9a);\n        ptVar33 = (tag *)local_64->hash_ptr;\n        if (local_70 <= plVar7) goto LAB_00023bdc;\n      }\n      ppVar50 = (page *)plVar7->file_ptr;\n      do {\n        if (ppVar50 != local_9c) {\n                    /* WARNING: Subroutine does not return */\n          as_abort("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }\n        psVar38 = plVar7->as_sym;\n        if (psVar38 == (symbolS *)0x0) {\n          plVar9 = plVar7->begin_ptr;\n          if (plVar9 == (localsym *)0x0) {\n            pfVar32 = plVar7->forward_ref;\njoined_r0x000242a4:\n            if (pfVar32 != (forward *)0x0) {\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              goto LAB_00023ff8;\n            }\n          }\n          else {\nLAB_00023e89:\n            iVar29 = plVar9->sym_index;\n            if (iVar29 == -1) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n            }\n            uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff | iVar29 << 0xc;\n            *(uint *)&(plVar7->ecoff_sym).asym.field_0xc = uVar44;\n            if (((ushort)uVar44 & 0x7c0) != 0x2c0) {\n              (plVar7->ecoff_sym).asym.iss = (plVar9->ecoff_sym).asym.iss;\n            }\n            bVar20 = (plVar9->ecoff_sym).asym.field_0xc;\n            if (((bVar20 & 0x3f) + 0x39 & 0x3b) == 0) {\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              *(uint *)&(plVar9->ecoff_sym).asym.field_0xc =\n                   *(uint *)&(plVar9->ecoff_sym).asym.field_0xc & 0xfff |\n                   ((int)local_a4->byte + 1) * 0x1000;\n              (*p_Var6)(stdoutput,&(plVar9->ecoff_sym).asym,buf + iVar29 * uVar54 + local_68);\n              if ((bVar20 & 0x37) == 6) goto LAB_00024180;\n              if (((bVar20 & 0x3f) == 7) &&\n                 ((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7c0) != 0x2c0)) {\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                }\n                if (plVar7->proc_ptr == (ecoff_proc *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                }\n                psVar8 = plVar7->proc_ptr->sym->as_sym;\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(psVar8);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(psVar8);\n                local_b4 = (lineno_list_t *)vVar65;\n                local_b0 = (int)(vVar65 >> 0x20);\n                pfVar32 = plVar7->forward_ref;\n                *(uint *)&(plVar7->ecoff_sym).asym.value = (int)local_b4 - (uint)vVar66;\n                *(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                     (local_b0 - (int)(vVar66 >> 0x20)) - (uint)(local_b4 < (uint)vVar66);\n              }\n              else {\n                pfVar32 = plVar7->forward_ref;\n              }\n            }\n            else {\n              if (plVar9->index_ptr == (ecoff_aux *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n              }\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              (plVar9->index_ptr->data).dnLow = (int)local_a4->byte + 1;\n              if ((bVar20 & 0x37) == 6) {\nLAB_00024180:\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n                }\n                if (plVar9->as_sym == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n                }\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(plVar9->as_sym);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(plVar9->as_sym);\n                uVar16 = vVar65 - vVar66;\n                if ((uVar16 & 1) == 0) {\n                  (plVar7->ecoff_sym).asym.value = uVar16;\n                }\n                else {\n                  (plVar7->ecoff_sym).asym.value = uVar16 + 1;\n                }\n                paVar30 = symbol_get_bfdsym(plVar9->as_sym);\n                uVar12 = *(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4);\n                *(int *)&paVar30[1].value = (int)(plVar7->ecoff_sym).asym.value;\n                *(undefined4 *)((int)&paVar30[1].value + 4) = uVar12;\n                pfVar32 = plVar7->forward_ref;\n                goto joined_r0x000242a4;\n              }\n              pfVar32 = plVar7->forward_ref;\n            }\njoined_r0x000247a5:\n            if (pfVar32 != (forward *)0x0) {\nLAB_00023ff8:\n              AVar10 = (AUXU)local_9c->file[0].file_index;\n              do {\n                paVar53 = pfVar32->index_ptr;\n                pfVar32->ifd_ptr->data = AVar10;\n                (paVar53->data).dnLow = (paVar53->data).dnLow & 0xfffU | (int)local_a4 << 0xc;\n                pfVar32 = pfVar32->next;\n              } while (pfVar32 != (forward *)0x0);\n            }\n          }\nLAB_0002402d:\n          uVar44 = (int)bufend - (int)local_a0->byte >> 0x1f;\n          if (uVar44 < uVar24 ||\n              uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)local_a0->byte) < uVar54)) {\n            local_a0 = (page *)ecoff_add_bytes(local_78,local_74,local_a0->byte,uVar54);\n          }\n          (*p_Var6)(stdoutput,&(plVar7->ecoff_sym).asym,local_a0);\n          local_a0 = (page *)((int)local_a0 + uVar54);\n          plVar7->sym_index = (long)local_a8;\n          peVar11 = plVar7->proc_ptr;\n          if ((peVar11 != (ecoff_proc *)0x0) && (peVar11->sym == plVar7)) {\n            (peVar11->pdr).isym = (int)local_a8 - local_8c;\n          }\n          local_a8 = (proc_t *)((int)local_a8 + 1);\n          if ((psVar38 != (symbolS *)0x0) &&\n             (peVar31 = symbol_get_obj(psVar38), peVar31->ecoff_symbol == plVar7)) {\n            if (((plVar7->ecoff_sym).asym.field_0xc & 0x37) == 6) {\n              *(uint *)&(plVar7->ecoff_sym).asym.field_0xc =\n                   *(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff |\n                   (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          if ((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff) == 0x47) {\n            if (plVar7->proc_ptr == (ecoff_proc *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n            }\n            psVar8 = plVar7->proc_ptr->sym->as_sym;\n            paVar27 = S_GET_SEGMENT(psVar38);\n            paVar28 = S_GET_SEGMENT(psVar8);\n            if (paVar27 != paVar28) {\n              pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n              as_warn(pcVar22);\n            }\n            vVar65 = S_GET_VALUE(psVar38);\n            vVar66 = S_GET_VALUE(psVar8);\n            (plVar7->ecoff_sym).asym.value = vVar65 - vVar66;\n          }\n          else {\n            vVar65 = S_GET_VALUE(psVar38);\n            paVar27 = S_GET_SEGMENT(psVar38);\n            ptVar33 = *(tag **)&plVar7->addend;\n            uVar44 = (int)&(*(tag **)&plVar7->addend)->free + (uint)vVar65;\n            bVar17 = paVar27->vma;\n            iVar29 = *(int *)((int)&paVar27->vma + 4);\n            *(uint *)&(plVar7->ecoff_sym).asym.value = uVar44 + (int)paVar27->vma;\n            *(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                 (int)&(*(tag **)((int)&plVar7->addend + 4))->free +\n                 (uint)CARRY4(uVar44,(uint)bVar17) +\n                 iVar29 + (uint)CARRY4((uint)vVar65,(uint)ptVar33) + (int)(vVar65 >> 0x20);\n          }\n          iVar29 = S_IS_WEAK(psVar38);\n          *(byte *)&plVar7->ecoff_sym =\n               *(byte *)&plVar7->ecoff_sym & 0xfb | ((byte)iVar29 & 1) * '\x04';\n          if ((((((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 6) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) &&\n              (iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0)) &&\n             (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) {\n            (plVar7->ecoff_sym).asym.field_0xc = (plVar7->ecoff_sym).asym.field_0xc & 0xc0 | 0xe;\n          }\n          if (((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff) == 0) &&\n             ((uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc,\n              (uVar44 & 0xfff00) != 0x8f300 || ((uVar44 & 0xfffdf) != 0x8f3c0)))) {\n            paVar27 = S_GET_SEGMENT(psVar38);\n            pbVar52 = (byte *)paVar27->name;\n            if (((*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300) ||\n               (((iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0 &&\n                 (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n                (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)))) {\n              bVar20 = (paVar27 == text_section) * '\x03' + 2;\n            }\n            else {\n              paVar30 = symbol_get_bfdsym(psVar38);\n              bVar20 = (-((paVar30->flags & 8) == 0) & 0xfbU) + 6;\n            }\n            iVar29 = S_IS_DEFINED(psVar38);\n            if (iVar29 == 0) {\n              peVar31 = symbol_get_obj(psVar38);\n              iVar29 = *(int *)((int)&peVar31->ecoff_extern_size + 4);\n              uVar49 = (uint)peVar31->ecoff_extern_size;\n              if ((iVar29 == 0 && uVar49 == 0) ||\n                 (uVar44 = bfd_get_gp_size(stdoutput),\n                 iVar29 != 0 || (uint)-iVar29 < (uint)(uVar44 < uVar49))) {\n                bVar42 = 6;\n              }\n              else {\n                *(uint *)&(plVar7->ecoff_sym).asym.value = uVar49;\n                bVar42 = 0x15;\n                *(int *)((int)&(plVar7->ecoff_sym).asym.value + 4) = iVar29;\n              }\n              paVar30 = symbol_get_bfdsym(psVar38);\n              uVar44 = (uint)bVar42;\n              *(uint *)&paVar30[1].value = uVar49;\n              *(int *)((int)&paVar30[1].value + 4) = iVar29;\n            }\n            else {\n              iVar29 = S_IS_COMMON(psVar38);\n              if (iVar29 == 0) {\n                uVar44 = 1;\n                if (paVar27 != text_section) {\n                  uVar44 = 2;\n                  bVar62 = paVar27 < data_section;\n                  bVar63 = paVar27 == data_section;\n                  if (!bVar63) {\n                    iVar29 = 7;\n                    uVar44 = 0xf;\n                    pbVar51 = pbVar52;\n                    pbVar58 = (byte *)".rdata";\n                    do {\n                      if (iVar29 == 0) break;\n                      iVar29 = iVar29 + -1;\n                      bVar62 = *pbVar51 < *pbVar58;\n                      bVar63 = *pbVar51 == *pbVar58;\n                      pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                      pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                    } while (bVar63);\n                    bVar61 = false;\n                    bVar62 = (!bVar62 && !bVar63) == bVar62;\n                    if (!bVar62) {\n                      iVar29 = 8;\n                      pbVar51 = pbVar52;\n                      pbVar58 = (byte *)".rodata";\n                      do {\n                        if (iVar29 == 0) break;\n                        iVar29 = iVar29 + -1;\n                        bVar61 = *pbVar51 < *pbVar58;\n                        bVar62 = *pbVar51 == *pbVar58;\n                        pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                        pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                      } while (bVar62);\n                      bVar63 = false;\n                      bVar62 = (!bVar61 && !bVar62) == bVar61;\n                      if (!bVar62) {\n                        iVar29 = 7;\n                        uVar44 = 0xd;\n                        pbVar51 = pbVar52;\n                        pbVar58 = (byte *)".sdata";\n                        do {\n                          if (iVar29 == 0) break;\n                          iVar29 = iVar29 + -1;\n                          bVar63 = *pbVar51 < *pbVar58;\n                          bVar62 = *pbVar51 == *pbVar58;\n                          pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                          pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                        } while (bVar62);\n                        if ((!bVar63 && !bVar62) != bVar63) {\n                          uVar44 = 3;\n                          bVar62 = paVar27 < bss_section;\n                          bVar63 = paVar27 == bss_section;\n                          if (!bVar63) {\n                            iVar29 = 6;\n                            uVar44 = 0xe;\n                            pbVar51 = (byte *)".sbss";\n                            do {\n                              if (iVar29 == 0) break;\n                              iVar29 = iVar29 + -1;\n                              bVar62 = *pbVar52 < *pbVar51;\n                              bVar63 = *pbVar52 == *pbVar51;\n                              pbVar52 = pbVar52 + (uint)bVar64 * -2 + 1;\n                              pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                            } while (bVar63);\n                            if ((!bVar62 && !bVar63) != bVar62) {\n                              uVar44 = (uint)(paVar27 == paVar23) * 3 + 2;\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                vVar65 = S_GET_VALUE(psVar38);\n                if (vVar65 != 0) {\n                  vVar65 = S_GET_VALUE(psVar38);\n                  iVar29 = (int)(vVar65 >> 0x20);\n                  uVar49 = bfd_get_gp_size(stdoutput);\n                  uVar44 = 0x12;\n                  if (iVar29 == 0 && (uint)(uVar49 < (uint)vVar65) <= (uint)-iVar29)\n                  goto LAB_00023df1;\n                }\n                uVar44 = 0x11;\n              }\n            }\nLAB_00023df1:\n            (plVar7->ecoff_sym).asym.field_0xc =\n                 (plVar7->ecoff_sym).asym.field_0xc & 0xc0 | bVar20 & 0x3f;\n            *(ushort *)&(plVar7->ecoff_sym).asym.field_0xc =\n                 *(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0xf83f | (ushort)(uVar44 << 6);\n          }\n          iVar29 = S_IS_EXTERNAL(psVar38);\n          if (((((iVar29 == 0) && (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) ||\n              ((plVar7->proc_ptr != (ecoff_proc *)0x0 ||\n               (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 0)))) ||\n             ((*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300)) {\n            iVar29 = S_IS_COMMON(psVar38);\n            if (iVar29 == 0) {\n              if (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) != 8) {\n                ptVar33 = (tag *)plVar7->name;\n                pcVar22 = strchr((char *)ptVar33,1);\n                if (pcVar22 != (char *)0x0) goto LAB_00023e7a;\n                sVar34 = add_string(&local_9c->file[0].strings,local_9c->file[0].str_hash,\n                                    (char *)ptVar33,(shash_t **)0x0);\n                (plVar7->ecoff_sym).asym.iss = sVar34;\n                plVar9 = plVar7->begin_ptr;\n                if (plVar9 != (localsym *)0x0) goto LAB_00023e89;\n                pfVar32 = plVar7->forward_ref;\n                local_a4 = (page *)((int)local_a8 - local_8c);\n                goto joined_r0x000247a5;\n              }\nLAB_00023e7a:\n              plVar9 = plVar7->begin_ptr;\n              if (plVar9 != (localsym *)0x0) goto LAB_00023e89;\n              pfVar32 = plVar7->forward_ref;\n              if (pfVar32 != (forward *)0x0) {\n                local_a4 = (page *)((int)local_a8 - local_8c);\n                goto LAB_00023ff8;\n              }\n              goto LAB_0002402d;\n            }\n          }\n          else {\n            S_IS_COMMON(psVar38);\n          }\n          if (plVar7->begin_ptr != (localsym *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (plVar7->forward_ref != (forward *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          peVar31 = symbol_get_obj(psVar38);\n          if (plVar7 == peVar31->ecoff_symbol) {\nLAB_00024347:\n            (plVar7->ecoff_sym).ifd = local_9c->file[0].file_index;\n            iVar29 = S_IS_EXTERNAL(psVar38);\n            if ((iVar29 != 0) || (iVar29 = S_IS_WEAK(psVar38), iVar29 != 0)) {\n              local_9c->ubyte[0x44] = local_9c->ubyte[0x44] & 0xdf;\n            }\n          }\n        }\n        if (local_70 <= plVar7 + 1) goto LAB_00024380;\n        ppVar50 = (page *)plVar7[1].file_ptr;\n        plVar7 = plVar7 + 1;\n      } while( true );\n    }" { (expression_statement "local_a8 = (proc_t *)local_8c;" (assignment_expression "local_a8 = (proc_t *)local_8c" identifier = (cast_expression "(proc_t *)local_8c" ( (type_descriptor "proc_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "LAB_00023bdc:\n      local_64 = ptVar33;" statement_identifier : (expression_statement "local_64 = ptVar33;" (assignment_expression "local_64 = ptVar33" identifier = identifier) ;)) (expression_statement "plVar7 = (localsym *)local_64->same_name;" (assignment_expression "plVar7 = (localsym *)local_64->same_name" identifier = (cast_expression "(localsym *)local_64->same_name" ( (type_descriptor "localsym *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_64->same_name" identifier -> field_identifier))) ;) (if_statement "if ((tag *)local_64->hash_ptr == (tag *)0x0) {\n        local_70 = plVar7 + *(ushort *)(local_9c->byte + 0x9c);\n        if (local_70 <= plVar7) {\n          local_8c = (int)local_a8;\n          ptVar33 = (tag *)((int)local_a8 - local_9c->ofile[0].isymBase);\n          goto LAB_000243a4;\n        }\n      }\n      else {\n        local_70 = plVar7 + *(ushort *)(local_9c->byte + 0x9a);\n        ptVar33 = (tag *)local_64->hash_ptr;\n        if (local_70 <= plVar7) goto LAB_00023bdc;\n      }" if (parenthesized_expression "((tag *)local_64->hash_ptr == (tag *)0x0)" ( (binary_expression "(tag *)local_64->hash_ptr == (tag *)0x0" (cast_expression "(tag *)local_64->hash_ptr" ( (type_descriptor "tag *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_64->hash_ptr" identifier -> field_identifier)) == (cast_expression "(tag *)0x0" ( (type_descriptor "tag *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_70 = plVar7 + *(ushort *)(local_9c->byte + 0x9c);\n        if (local_70 <= plVar7) {\n          local_8c = (int)local_a8;\n          ptVar33 = (tag *)((int)local_a8 - local_9c->ofile[0].isymBase);\n          goto LAB_000243a4;\n        }\n      }" { (expression_statement "local_70 = plVar7 + *(ushort *)(local_9c->byte + 0x9c);" (assignment_expression "local_70 = plVar7 + *(ushort *)(local_9c->byte + 0x9c)" identifier = (binary_expression "plVar7 + *(ushort *)(local_9c->byte + 0x9c)" identifier + (pointer_expression "*(ushort *)(local_9c->byte + 0x9c)" * (cast_expression "(ushort *)(local_9c->byte + 0x9c)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_9c->byte + 0x9c)" ( (binary_expression "local_9c->byte + 0x9c" (field_expression "local_9c->byte" identifier -> field_identifier) + number_literal) )))))) ;) (if_statement "if (local_70 <= plVar7) {\n          local_8c = (int)local_a8;\n          ptVar33 = (tag *)((int)local_a8 - local_9c->ofile[0].isymBase);\n          goto LAB_000243a4;\n        }" if (parenthesized_expression "(local_70 <= plVar7)" ( (binary_expression "local_70 <= plVar7" identifier <= identifier) )) (compound_statement "{\n          local_8c = (int)local_a8;\n          ptVar33 = (tag *)((int)local_a8 - local_9c->ofile[0].isymBase);\n          goto LAB_000243a4;\n        }" { (expression_statement "local_8c = (int)local_a8;" (assignment_expression "local_8c = (int)local_a8" identifier = (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "ptVar33 = (tag *)((int)local_a8 - local_9c->ofile[0].isymBase);" (assignment_expression "ptVar33 = (tag *)((int)local_a8 - local_9c->ofile[0].isymBase)" identifier = (cast_expression "(tag *)((int)local_a8 - local_9c->ofile[0].isymBase)" ( (type_descriptor "tag *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 - local_9c->ofile[0].isymBase)" ( (binary_expression "(int)local_a8 - local_9c->ofile[0].isymBase" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) - (field_expression "local_9c->ofile[0].isymBase" (subscript_expression "local_9c->ofile[0]" (field_expression "local_9c->ofile" identifier -> field_identifier) [ number_literal ]) . field_identifier)) )))) ;) (goto_statement "goto LAB_000243a4;" goto statement_identifier ;) })) }) (else_clause "else {\n        local_70 = plVar7 + *(ushort *)(local_9c->byte + 0x9a);\n        ptVar33 = (tag *)local_64->hash_ptr;\n        if (local_70 <= plVar7) goto LAB_00023bdc;\n      }" else (compound_statement "{\n        local_70 = plVar7 + *(ushort *)(local_9c->byte + 0x9a);\n        ptVar33 = (tag *)local_64->hash_ptr;\n        if (local_70 <= plVar7) goto LAB_00023bdc;\n      }" { (expression_statement "local_70 = plVar7 + *(ushort *)(local_9c->byte + 0x9a);" (assignment_expression "local_70 = plVar7 + *(ushort *)(local_9c->byte + 0x9a)" identifier = (binary_expression "plVar7 + *(ushort *)(local_9c->byte + 0x9a)" identifier + (pointer_expression "*(ushort *)(local_9c->byte + 0x9a)" * (cast_expression "(ushort *)(local_9c->byte + 0x9a)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_9c->byte + 0x9a)" ( (binary_expression "local_9c->byte + 0x9a" (field_expression "local_9c->byte" identifier -> field_identifier) + number_literal) )))))) ;) (expression_statement "ptVar33 = (tag *)local_64->hash_ptr;" (assignment_expression "ptVar33 = (tag *)local_64->hash_ptr" identifier = (cast_expression "(tag *)local_64->hash_ptr" ( (type_descriptor "tag *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_64->hash_ptr" identifier -> field_identifier))) ;) (if_statement "if (local_70 <= plVar7) goto LAB_00023bdc;" if (parenthesized_expression "(local_70 <= plVar7)" ( (binary_expression "local_70 <= plVar7" identifier <= identifier) )) (goto_statement "goto LAB_00023bdc;" goto statement_identifier ;)) }))) (expression_statement "ppVar50 = (page *)plVar7->file_ptr;" (assignment_expression "ppVar50 = (page *)plVar7->file_ptr" identifier = (cast_expression "(page *)plVar7->file_ptr" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "plVar7->file_ptr" identifier -> field_identifier))) ;) (do_statement "do {\n        if (ppVar50 != local_9c) {\n                    /* WARNING: Subroutine does not return */\n          as_abort("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }\n        psVar38 = plVar7->as_sym;\n        if (psVar38 == (symbolS *)0x0) {\n          plVar9 = plVar7->begin_ptr;\n          if (plVar9 == (localsym *)0x0) {\n            pfVar32 = plVar7->forward_ref;\njoined_r0x000242a4:\n            if (pfVar32 != (forward *)0x0) {\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              goto LAB_00023ff8;\n            }\n          }\n          else {\nLAB_00023e89:\n            iVar29 = plVar9->sym_index;\n            if (iVar29 == -1) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n            }\n            uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff | iVar29 << 0xc;\n            *(uint *)&(plVar7->ecoff_sym).asym.field_0xc = uVar44;\n            if (((ushort)uVar44 & 0x7c0) != 0x2c0) {\n              (plVar7->ecoff_sym).asym.iss = (plVar9->ecoff_sym).asym.iss;\n            }\n            bVar20 = (plVar9->ecoff_sym).asym.field_0xc;\n            if (((bVar20 & 0x3f) + 0x39 & 0x3b) == 0) {\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              *(uint *)&(plVar9->ecoff_sym).asym.field_0xc =\n                   *(uint *)&(plVar9->ecoff_sym).asym.field_0xc & 0xfff |\n                   ((int)local_a4->byte + 1) * 0x1000;\n              (*p_Var6)(stdoutput,&(plVar9->ecoff_sym).asym,buf + iVar29 * uVar54 + local_68);\n              if ((bVar20 & 0x37) == 6) goto LAB_00024180;\n              if (((bVar20 & 0x3f) == 7) &&\n                 ((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7c0) != 0x2c0)) {\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                }\n                if (plVar7->proc_ptr == (ecoff_proc *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                }\n                psVar8 = plVar7->proc_ptr->sym->as_sym;\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(psVar8);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(psVar8);\n                local_b4 = (lineno_list_t *)vVar65;\n                local_b0 = (int)(vVar65 >> 0x20);\n                pfVar32 = plVar7->forward_ref;\n                *(uint *)&(plVar7->ecoff_sym).asym.value = (int)local_b4 - (uint)vVar66;\n                *(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                     (local_b0 - (int)(vVar66 >> 0x20)) - (uint)(local_b4 < (uint)vVar66);\n              }\n              else {\n                pfVar32 = plVar7->forward_ref;\n              }\n            }\n            else {\n              if (plVar9->index_ptr == (ecoff_aux *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n              }\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              (plVar9->index_ptr->data).dnLow = (int)local_a4->byte + 1;\n              if ((bVar20 & 0x37) == 6) {\nLAB_00024180:\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n                }\n                if (plVar9->as_sym == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n                }\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(plVar9->as_sym);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(plVar9->as_sym);\n                uVar16 = vVar65 - vVar66;\n                if ((uVar16 & 1) == 0) {\n                  (plVar7->ecoff_sym).asym.value = uVar16;\n                }\n                else {\n                  (plVar7->ecoff_sym).asym.value = uVar16 + 1;\n                }\n                paVar30 = symbol_get_bfdsym(plVar9->as_sym);\n                uVar12 = *(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4);\n                *(int *)&paVar30[1].value = (int)(plVar7->ecoff_sym).asym.value;\n                *(undefined4 *)((int)&paVar30[1].value + 4) = uVar12;\n                pfVar32 = plVar7->forward_ref;\n                goto joined_r0x000242a4;\n              }\n              pfVar32 = plVar7->forward_ref;\n            }\njoined_r0x000247a5:\n            if (pfVar32 != (forward *)0x0) {\nLAB_00023ff8:\n              AVar10 = (AUXU)local_9c->file[0].file_index;\n              do {\n                paVar53 = pfVar32->index_ptr;\n                pfVar32->ifd_ptr->data = AVar10;\n                (paVar53->data).dnLow = (paVar53->data).dnLow & 0xfffU | (int)local_a4 << 0xc;\n                pfVar32 = pfVar32->next;\n              } while (pfVar32 != (forward *)0x0);\n            }\n          }\nLAB_0002402d:\n          uVar44 = (int)bufend - (int)local_a0->byte >> 0x1f;\n          if (uVar44 < uVar24 ||\n              uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)local_a0->byte) < uVar54)) {\n            local_a0 = (page *)ecoff_add_bytes(local_78,local_74,local_a0->byte,uVar54);\n          }\n          (*p_Var6)(stdoutput,&(plVar7->ecoff_sym).asym,local_a0);\n          local_a0 = (page *)((int)local_a0 + uVar54);\n          plVar7->sym_index = (long)local_a8;\n          peVar11 = plVar7->proc_ptr;\n          if ((peVar11 != (ecoff_proc *)0x0) && (peVar11->sym == plVar7)) {\n            (peVar11->pdr).isym = (int)local_a8 - local_8c;\n          }\n          local_a8 = (proc_t *)((int)local_a8 + 1);\n          if ((psVar38 != (symbolS *)0x0) &&\n             (peVar31 = symbol_get_obj(psVar38), peVar31->ecoff_symbol == plVar7)) {\n            if (((plVar7->ecoff_sym).asym.field_0xc & 0x37) == 6) {\n              *(uint *)&(plVar7->ecoff_sym).asym.field_0xc =\n                   *(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff |\n                   (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          if ((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff) == 0x47) {\n            if (plVar7->proc_ptr == (ecoff_proc *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n            }\n            psVar8 = plVar7->proc_ptr->sym->as_sym;\n            paVar27 = S_GET_SEGMENT(psVar38);\n            paVar28 = S_GET_SEGMENT(psVar8);\n            if (paVar27 != paVar28) {\n              pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n              as_warn(pcVar22);\n            }\n            vVar65 = S_GET_VALUE(psVar38);\n            vVar66 = S_GET_VALUE(psVar8);\n            (plVar7->ecoff_sym).asym.value = vVar65 - vVar66;\n          }\n          else {\n            vVar65 = S_GET_VALUE(psVar38);\n            paVar27 = S_GET_SEGMENT(psVar38);\n            ptVar33 = *(tag **)&plVar7->addend;\n            uVar44 = (int)&(*(tag **)&plVar7->addend)->free + (uint)vVar65;\n            bVar17 = paVar27->vma;\n            iVar29 = *(int *)((int)&paVar27->vma + 4);\n            *(uint *)&(plVar7->ecoff_sym).asym.value = uVar44 + (int)paVar27->vma;\n            *(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                 (int)&(*(tag **)((int)&plVar7->addend + 4))->free +\n                 (uint)CARRY4(uVar44,(uint)bVar17) +\n                 iVar29 + (uint)CARRY4((uint)vVar65,(uint)ptVar33) + (int)(vVar65 >> 0x20);\n          }\n          iVar29 = S_IS_WEAK(psVar38);\n          *(byte *)&plVar7->ecoff_sym =\n               *(byte *)&plVar7->ecoff_sym & 0xfb | ((byte)iVar29 & 1) * '\x04';\n          if ((((((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 6) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) &&\n              (iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0)) &&\n             (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) {\n            (plVar7->ecoff_sym).asym.field_0xc = (plVar7->ecoff_sym).asym.field_0xc & 0xc0 | 0xe;\n          }\n          if (((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff) == 0) &&\n             ((uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc,\n              (uVar44 & 0xfff00) != 0x8f300 || ((uVar44 & 0xfffdf) != 0x8f3c0)))) {\n            paVar27 = S_GET_SEGMENT(psVar38);\n            pbVar52 = (byte *)paVar27->name;\n            if (((*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300) ||\n               (((iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0 &&\n                 (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n                (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)))) {\n              bVar20 = (paVar27 == text_section) * '\x03' + 2;\n            }\n            else {\n              paVar30 = symbol_get_bfdsym(psVar38);\n              bVar20 = (-((paVar30->flags & 8) == 0) & 0xfbU) + 6;\n            }\n            iVar29 = S_IS_DEFINED(psVar38);\n            if (iVar29 == 0) {\n              peVar31 = symbol_get_obj(psVar38);\n              iVar29 = *(int *)((int)&peVar31->ecoff_extern_size + 4);\n              uVar49 = (uint)peVar31->ecoff_extern_size;\n              if ((iVar29 == 0 && uVar49 == 0) ||\n                 (uVar44 = bfd_get_gp_size(stdoutput),\n                 iVar29 != 0 || (uint)-iVar29 < (uint)(uVar44 < uVar49))) {\n                bVar42 = 6;\n              }\n              else {\n                *(uint *)&(plVar7->ecoff_sym).asym.value = uVar49;\n                bVar42 = 0x15;\n                *(int *)((int)&(plVar7->ecoff_sym).asym.value + 4) = iVar29;\n              }\n              paVar30 = symbol_get_bfdsym(psVar38);\n              uVar44 = (uint)bVar42;\n              *(uint *)&paVar30[1].value = uVar49;\n              *(int *)((int)&paVar30[1].value + 4) = iVar29;\n            }\n            else {\n              iVar29 = S_IS_COMMON(psVar38);\n              if (iVar29 == 0) {\n                uVar44 = 1;\n                if (paVar27 != text_section) {\n                  uVar44 = 2;\n                  bVar62 = paVar27 < data_section;\n                  bVar63 = paVar27 == data_section;\n                  if (!bVar63) {\n                    iVar29 = 7;\n                    uVar44 = 0xf;\n                    pbVar51 = pbVar52;\n                    pbVar58 = (byte *)".rdata";\n                    do {\n                      if (iVar29 == 0) break;\n                      iVar29 = iVar29 + -1;\n                      bVar62 = *pbVar51 < *pbVar58;\n                      bVar63 = *pbVar51 == *pbVar58;\n                      pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                      pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                    } while (bVar63);\n                    bVar61 = false;\n                    bVar62 = (!bVar62 && !bVar63) == bVar62;\n                    if (!bVar62) {\n                      iVar29 = 8;\n                      pbVar51 = pbVar52;\n                      pbVar58 = (byte *)".rodata";\n                      do {\n                        if (iVar29 == 0) break;\n                        iVar29 = iVar29 + -1;\n                        bVar61 = *pbVar51 < *pbVar58;\n                        bVar62 = *pbVar51 == *pbVar58;\n                        pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                        pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                      } while (bVar62);\n                      bVar63 = false;\n                      bVar62 = (!bVar61 && !bVar62) == bVar61;\n                      if (!bVar62) {\n                        iVar29 = 7;\n                        uVar44 = 0xd;\n                        pbVar51 = pbVar52;\n                        pbVar58 = (byte *)".sdata";\n                        do {\n                          if (iVar29 == 0) break;\n                          iVar29 = iVar29 + -1;\n                          bVar63 = *pbVar51 < *pbVar58;\n                          bVar62 = *pbVar51 == *pbVar58;\n                          pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                          pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                        } while (bVar62);\n                        if ((!bVar63 && !bVar62) != bVar63) {\n                          uVar44 = 3;\n                          bVar62 = paVar27 < bss_section;\n                          bVar63 = paVar27 == bss_section;\n                          if (!bVar63) {\n                            iVar29 = 6;\n                            uVar44 = 0xe;\n                            pbVar51 = (byte *)".sbss";\n                            do {\n                              if (iVar29 == 0) break;\n                              iVar29 = iVar29 + -1;\n                              bVar62 = *pbVar52 < *pbVar51;\n                              bVar63 = *pbVar52 == *pbVar51;\n                              pbVar52 = pbVar52 + (uint)bVar64 * -2 + 1;\n                              pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                            } while (bVar63);\n                            if ((!bVar62 && !bVar63) != bVar62) {\n                              uVar44 = (uint)(paVar27 == paVar23) * 3 + 2;\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                vVar65 = S_GET_VALUE(psVar38);\n                if (vVar65 != 0) {\n                  vVar65 = S_GET_VALUE(psVar38);\n                  iVar29 = (int)(vVar65 >> 0x20);\n                  uVar49 = bfd_get_gp_size(stdoutput);\n                  uVar44 = 0x12;\n                  if (iVar29 == 0 && (uint)(uVar49 < (uint)vVar65) <= (uint)-iVar29)\n                  goto LAB_00023df1;\n                }\n                uVar44 = 0x11;\n              }\n            }\nLAB_00023df1:\n            (plVar7->ecoff_sym).asym.field_0xc =\n                 (plVar7->ecoff_sym).asym.field_0xc & 0xc0 | bVar20 & 0x3f;\n            *(ushort *)&(plVar7->ecoff_sym).asym.field_0xc =\n                 *(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0xf83f | (ushort)(uVar44 << 6);\n          }\n          iVar29 = S_IS_EXTERNAL(psVar38);\n          if (((((iVar29 == 0) && (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) ||\n              ((plVar7->proc_ptr != (ecoff_proc *)0x0 ||\n               (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 0)))) ||\n             ((*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300)) {\n            iVar29 = S_IS_COMMON(psVar38);\n            if (iVar29 == 0) {\n              if (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) != 8) {\n                ptVar33 = (tag *)plVar7->name;\n                pcVar22 = strchr((char *)ptVar33,1);\n                if (pcVar22 != (char *)0x0) goto LAB_00023e7a;\n                sVar34 = add_string(&local_9c->file[0].strings,local_9c->file[0].str_hash,\n                                    (char *)ptVar33,(shash_t **)0x0);\n                (plVar7->ecoff_sym).asym.iss = sVar34;\n                plVar9 = plVar7->begin_ptr;\n                if (plVar9 != (localsym *)0x0) goto LAB_00023e89;\n                pfVar32 = plVar7->forward_ref;\n                local_a4 = (page *)((int)local_a8 - local_8c);\n                goto joined_r0x000247a5;\n              }\nLAB_00023e7a:\n              plVar9 = plVar7->begin_ptr;\n              if (plVar9 != (localsym *)0x0) goto LAB_00023e89;\n              pfVar32 = plVar7->forward_ref;\n              if (pfVar32 != (forward *)0x0) {\n                local_a4 = (page *)((int)local_a8 - local_8c);\n                goto LAB_00023ff8;\n              }\n              goto LAB_0002402d;\n            }\n          }\n          else {\n            S_IS_COMMON(psVar38);\n          }\n          if (plVar7->begin_ptr != (localsym *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (plVar7->forward_ref != (forward *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          peVar31 = symbol_get_obj(psVar38);\n          if (plVar7 == peVar31->ecoff_symbol) {\nLAB_00024347:\n            (plVar7->ecoff_sym).ifd = local_9c->file[0].file_index;\n            iVar29 = S_IS_EXTERNAL(psVar38);\n            if ((iVar29 != 0) || (iVar29 = S_IS_WEAK(psVar38), iVar29 != 0)) {\n              local_9c->ubyte[0x44] = local_9c->ubyte[0x44] & 0xdf;\n            }\n          }\n        }\n        if (local_70 <= plVar7 + 1) goto LAB_00024380;\n        ppVar50 = (page *)plVar7[1].file_ptr;\n        plVar7 = plVar7 + 1;\n      } while( true );" do (compound_statement "{\n        if (ppVar50 != local_9c) {\n                    /* WARNING: Subroutine does not return */\n          as_abort("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }\n        psVar38 = plVar7->as_sym;\n        if (psVar38 == (symbolS *)0x0) {\n          plVar9 = plVar7->begin_ptr;\n          if (plVar9 == (localsym *)0x0) {\n            pfVar32 = plVar7->forward_ref;\njoined_r0x000242a4:\n            if (pfVar32 != (forward *)0x0) {\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              goto LAB_00023ff8;\n            }\n          }\n          else {\nLAB_00023e89:\n            iVar29 = plVar9->sym_index;\n            if (iVar29 == -1) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n            }\n            uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff | iVar29 << 0xc;\n            *(uint *)&(plVar7->ecoff_sym).asym.field_0xc = uVar44;\n            if (((ushort)uVar44 & 0x7c0) != 0x2c0) {\n              (plVar7->ecoff_sym).asym.iss = (plVar9->ecoff_sym).asym.iss;\n            }\n            bVar20 = (plVar9->ecoff_sym).asym.field_0xc;\n            if (((bVar20 & 0x3f) + 0x39 & 0x3b) == 0) {\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              *(uint *)&(plVar9->ecoff_sym).asym.field_0xc =\n                   *(uint *)&(plVar9->ecoff_sym).asym.field_0xc & 0xfff |\n                   ((int)local_a4->byte + 1) * 0x1000;\n              (*p_Var6)(stdoutput,&(plVar9->ecoff_sym).asym,buf + iVar29 * uVar54 + local_68);\n              if ((bVar20 & 0x37) == 6) goto LAB_00024180;\n              if (((bVar20 & 0x3f) == 7) &&\n                 ((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7c0) != 0x2c0)) {\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                }\n                if (plVar7->proc_ptr == (ecoff_proc *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                }\n                psVar8 = plVar7->proc_ptr->sym->as_sym;\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(psVar8);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(psVar8);\n                local_b4 = (lineno_list_t *)vVar65;\n                local_b0 = (int)(vVar65 >> 0x20);\n                pfVar32 = plVar7->forward_ref;\n                *(uint *)&(plVar7->ecoff_sym).asym.value = (int)local_b4 - (uint)vVar66;\n                *(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                     (local_b0 - (int)(vVar66 >> 0x20)) - (uint)(local_b4 < (uint)vVar66);\n              }\n              else {\n                pfVar32 = plVar7->forward_ref;\n              }\n            }\n            else {\n              if (plVar9->index_ptr == (ecoff_aux *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n              }\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              (plVar9->index_ptr->data).dnLow = (int)local_a4->byte + 1;\n              if ((bVar20 & 0x37) == 6) {\nLAB_00024180:\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n                }\n                if (plVar9->as_sym == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n                }\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(plVar9->as_sym);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(plVar9->as_sym);\n                uVar16 = vVar65 - vVar66;\n                if ((uVar16 & 1) == 0) {\n                  (plVar7->ecoff_sym).asym.value = uVar16;\n                }\n                else {\n                  (plVar7->ecoff_sym).asym.value = uVar16 + 1;\n                }\n                paVar30 = symbol_get_bfdsym(plVar9->as_sym);\n                uVar12 = *(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4);\n                *(int *)&paVar30[1].value = (int)(plVar7->ecoff_sym).asym.value;\n                *(undefined4 *)((int)&paVar30[1].value + 4) = uVar12;\n                pfVar32 = plVar7->forward_ref;\n                goto joined_r0x000242a4;\n              }\n              pfVar32 = plVar7->forward_ref;\n            }\njoined_r0x000247a5:\n            if (pfVar32 != (forward *)0x0) {\nLAB_00023ff8:\n              AVar10 = (AUXU)local_9c->file[0].file_index;\n              do {\n                paVar53 = pfVar32->index_ptr;\n                pfVar32->ifd_ptr->data = AVar10;\n                (paVar53->data).dnLow = (paVar53->data).dnLow & 0xfffU | (int)local_a4 << 0xc;\n                pfVar32 = pfVar32->next;\n              } while (pfVar32 != (forward *)0x0);\n            }\n          }\nLAB_0002402d:\n          uVar44 = (int)bufend - (int)local_a0->byte >> 0x1f;\n          if (uVar44 < uVar24 ||\n              uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)local_a0->byte) < uVar54)) {\n            local_a0 = (page *)ecoff_add_bytes(local_78,local_74,local_a0->byte,uVar54);\n          }\n          (*p_Var6)(stdoutput,&(plVar7->ecoff_sym).asym,local_a0);\n          local_a0 = (page *)((int)local_a0 + uVar54);\n          plVar7->sym_index = (long)local_a8;\n          peVar11 = plVar7->proc_ptr;\n          if ((peVar11 != (ecoff_proc *)0x0) && (peVar11->sym == plVar7)) {\n            (peVar11->pdr).isym = (int)local_a8 - local_8c;\n          }\n          local_a8 = (proc_t *)((int)local_a8 + 1);\n          if ((psVar38 != (symbolS *)0x0) &&\n             (peVar31 = symbol_get_obj(psVar38), peVar31->ecoff_symbol == plVar7)) {\n            if (((plVar7->ecoff_sym).asym.field_0xc & 0x37) == 6) {\n              *(uint *)&(plVar7->ecoff_sym).asym.field_0xc =\n                   *(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff |\n                   (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          if ((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff) == 0x47) {\n            if (plVar7->proc_ptr == (ecoff_proc *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n            }\n            psVar8 = plVar7->proc_ptr->sym->as_sym;\n            paVar27 = S_GET_SEGMENT(psVar38);\n            paVar28 = S_GET_SEGMENT(psVar8);\n            if (paVar27 != paVar28) {\n              pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n              as_warn(pcVar22);\n            }\n            vVar65 = S_GET_VALUE(psVar38);\n            vVar66 = S_GET_VALUE(psVar8);\n            (plVar7->ecoff_sym).asym.value = vVar65 - vVar66;\n          }\n          else {\n            vVar65 = S_GET_VALUE(psVar38);\n            paVar27 = S_GET_SEGMENT(psVar38);\n            ptVar33 = *(tag **)&plVar7->addend;\n            uVar44 = (int)&(*(tag **)&plVar7->addend)->free + (uint)vVar65;\n            bVar17 = paVar27->vma;\n            iVar29 = *(int *)((int)&paVar27->vma + 4);\n            *(uint *)&(plVar7->ecoff_sym).asym.value = uVar44 + (int)paVar27->vma;\n            *(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                 (int)&(*(tag **)((int)&plVar7->addend + 4))->free +\n                 (uint)CARRY4(uVar44,(uint)bVar17) +\n                 iVar29 + (uint)CARRY4((uint)vVar65,(uint)ptVar33) + (int)(vVar65 >> 0x20);\n          }\n          iVar29 = S_IS_WEAK(psVar38);\n          *(byte *)&plVar7->ecoff_sym =\n               *(byte *)&plVar7->ecoff_sym & 0xfb | ((byte)iVar29 & 1) * '\x04';\n          if ((((((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 6) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) &&\n              (iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0)) &&\n             (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) {\n            (plVar7->ecoff_sym).asym.field_0xc = (plVar7->ecoff_sym).asym.field_0xc & 0xc0 | 0xe;\n          }\n          if (((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff) == 0) &&\n             ((uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc,\n              (uVar44 & 0xfff00) != 0x8f300 || ((uVar44 & 0xfffdf) != 0x8f3c0)))) {\n            paVar27 = S_GET_SEGMENT(psVar38);\n            pbVar52 = (byte *)paVar27->name;\n            if (((*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300) ||\n               (((iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0 &&\n                 (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n                (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)))) {\n              bVar20 = (paVar27 == text_section) * '\x03' + 2;\n            }\n            else {\n              paVar30 = symbol_get_bfdsym(psVar38);\n              bVar20 = (-((paVar30->flags & 8) == 0) & 0xfbU) + 6;\n            }\n            iVar29 = S_IS_DEFINED(psVar38);\n            if (iVar29 == 0) {\n              peVar31 = symbol_get_obj(psVar38);\n              iVar29 = *(int *)((int)&peVar31->ecoff_extern_size + 4);\n              uVar49 = (uint)peVar31->ecoff_extern_size;\n              if ((iVar29 == 0 && uVar49 == 0) ||\n                 (uVar44 = bfd_get_gp_size(stdoutput),\n                 iVar29 != 0 || (uint)-iVar29 < (uint)(uVar44 < uVar49))) {\n                bVar42 = 6;\n              }\n              else {\n                *(uint *)&(plVar7->ecoff_sym).asym.value = uVar49;\n                bVar42 = 0x15;\n                *(int *)((int)&(plVar7->ecoff_sym).asym.value + 4) = iVar29;\n              }\n              paVar30 = symbol_get_bfdsym(psVar38);\n              uVar44 = (uint)bVar42;\n              *(uint *)&paVar30[1].value = uVar49;\n              *(int *)((int)&paVar30[1].value + 4) = iVar29;\n            }\n            else {\n              iVar29 = S_IS_COMMON(psVar38);\n              if (iVar29 == 0) {\n                uVar44 = 1;\n                if (paVar27 != text_section) {\n                  uVar44 = 2;\n                  bVar62 = paVar27 < data_section;\n                  bVar63 = paVar27 == data_section;\n                  if (!bVar63) {\n                    iVar29 = 7;\n                    uVar44 = 0xf;\n                    pbVar51 = pbVar52;\n                    pbVar58 = (byte *)".rdata";\n                    do {\n                      if (iVar29 == 0) break;\n                      iVar29 = iVar29 + -1;\n                      bVar62 = *pbVar51 < *pbVar58;\n                      bVar63 = *pbVar51 == *pbVar58;\n                      pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                      pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                    } while (bVar63);\n                    bVar61 = false;\n                    bVar62 = (!bVar62 && !bVar63) == bVar62;\n                    if (!bVar62) {\n                      iVar29 = 8;\n                      pbVar51 = pbVar52;\n                      pbVar58 = (byte *)".rodata";\n                      do {\n                        if (iVar29 == 0) break;\n                        iVar29 = iVar29 + -1;\n                        bVar61 = *pbVar51 < *pbVar58;\n                        bVar62 = *pbVar51 == *pbVar58;\n                        pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                        pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                      } while (bVar62);\n                      bVar63 = false;\n                      bVar62 = (!bVar61 && !bVar62) == bVar61;\n                      if (!bVar62) {\n                        iVar29 = 7;\n                        uVar44 = 0xd;\n                        pbVar51 = pbVar52;\n                        pbVar58 = (byte *)".sdata";\n                        do {\n                          if (iVar29 == 0) break;\n                          iVar29 = iVar29 + -1;\n                          bVar63 = *pbVar51 < *pbVar58;\n                          bVar62 = *pbVar51 == *pbVar58;\n                          pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                          pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                        } while (bVar62);\n                        if ((!bVar63 && !bVar62) != bVar63) {\n                          uVar44 = 3;\n                          bVar62 = paVar27 < bss_section;\n                          bVar63 = paVar27 == bss_section;\n                          if (!bVar63) {\n                            iVar29 = 6;\n                            uVar44 = 0xe;\n                            pbVar51 = (byte *)".sbss";\n                            do {\n                              if (iVar29 == 0) break;\n                              iVar29 = iVar29 + -1;\n                              bVar62 = *pbVar52 < *pbVar51;\n                              bVar63 = *pbVar52 == *pbVar51;\n                              pbVar52 = pbVar52 + (uint)bVar64 * -2 + 1;\n                              pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                            } while (bVar63);\n                            if ((!bVar62 && !bVar63) != bVar62) {\n                              uVar44 = (uint)(paVar27 == paVar23) * 3 + 2;\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                vVar65 = S_GET_VALUE(psVar38);\n                if (vVar65 != 0) {\n                  vVar65 = S_GET_VALUE(psVar38);\n                  iVar29 = (int)(vVar65 >> 0x20);\n                  uVar49 = bfd_get_gp_size(stdoutput);\n                  uVar44 = 0x12;\n                  if (iVar29 == 0 && (uint)(uVar49 < (uint)vVar65) <= (uint)-iVar29)\n                  goto LAB_00023df1;\n                }\n                uVar44 = 0x11;\n              }\n            }\nLAB_00023df1:\n            (plVar7->ecoff_sym).asym.field_0xc =\n                 (plVar7->ecoff_sym).asym.field_0xc & 0xc0 | bVar20 & 0x3f;\n            *(ushort *)&(plVar7->ecoff_sym).asym.field_0xc =\n                 *(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0xf83f | (ushort)(uVar44 << 6);\n          }\n          iVar29 = S_IS_EXTERNAL(psVar38);\n          if (((((iVar29 == 0) && (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) ||\n              ((plVar7->proc_ptr != (ecoff_proc *)0x0 ||\n               (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 0)))) ||\n             ((*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300)) {\n            iVar29 = S_IS_COMMON(psVar38);\n            if (iVar29 == 0) {\n              if (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) != 8) {\n                ptVar33 = (tag *)plVar7->name;\n                pcVar22 = strchr((char *)ptVar33,1);\n                if (pcVar22 != (char *)0x0) goto LAB_00023e7a;\n                sVar34 = add_string(&local_9c->file[0].strings,local_9c->file[0].str_hash,\n                                    (char *)ptVar33,(shash_t **)0x0);\n                (plVar7->ecoff_sym).asym.iss = sVar34;\n                plVar9 = plVar7->begin_ptr;\n                if (plVar9 != (localsym *)0x0) goto LAB_00023e89;\n                pfVar32 = plVar7->forward_ref;\n                local_a4 = (page *)((int)local_a8 - local_8c);\n                goto joined_r0x000247a5;\n              }\nLAB_00023e7a:\n              plVar9 = plVar7->begin_ptr;\n              if (plVar9 != (localsym *)0x0) goto LAB_00023e89;\n              pfVar32 = plVar7->forward_ref;\n              if (pfVar32 != (forward *)0x0) {\n                local_a4 = (page *)((int)local_a8 - local_8c);\n                goto LAB_00023ff8;\n              }\n              goto LAB_0002402d;\n            }\n          }\n          else {\n            S_IS_COMMON(psVar38);\n          }\n          if (plVar7->begin_ptr != (localsym *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (plVar7->forward_ref != (forward *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          peVar31 = symbol_get_obj(psVar38);\n          if (plVar7 == peVar31->ecoff_symbol) {\nLAB_00024347:\n            (plVar7->ecoff_sym).ifd = local_9c->file[0].file_index;\n            iVar29 = S_IS_EXTERNAL(psVar38);\n            if ((iVar29 != 0) || (iVar29 = S_IS_WEAK(psVar38), iVar29 != 0)) {\n              local_9c->ubyte[0x44] = local_9c->ubyte[0x44] & 0xdf;\n            }\n          }\n        }\n        if (local_70 <= plVar7 + 1) goto LAB_00024380;\n        ppVar50 = (page *)plVar7[1].file_ptr;\n        plVar7 = plVar7 + 1;\n      }" { (if_statement "if (ppVar50 != local_9c) {\n                    /* WARNING: Subroutine does not return */\n          as_abort("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }" if (parenthesized_expression "(ppVar50 != local_9c)" ( (binary_expression "ppVar50 != local_9c" identifier != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          as_abort("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }" { comment (expression_statement "as_abort("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");" (call_expression "as_abort("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols")" identifier (argument_list "("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols")" ( (string_literal ""../../gas/ecoff.c"" " string_content ") , number_literal , (string_literal ""ecoff_build_symbols"" " string_content ") ))) ;) })) (expression_statement "psVar38 = plVar7->as_sym;" (assignment_expression "psVar38 = plVar7->as_sym" identifier = (field_expression "plVar7->as_sym" identifier -> field_identifier)) ;) (if_statement "if (psVar38 == (symbolS *)0x0) {\n          plVar9 = plVar7->begin_ptr;\n          if (plVar9 == (localsym *)0x0) {\n            pfVar32 = plVar7->forward_ref;\njoined_r0x000242a4:\n            if (pfVar32 != (forward *)0x0) {\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              goto LAB_00023ff8;\n            }\n          }\n          else {\nLAB_00023e89:\n            iVar29 = plVar9->sym_index;\n            if (iVar29 == -1) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n            }\n            uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff | iVar29 << 0xc;\n            *(uint *)&(plVar7->ecoff_sym).asym.field_0xc = uVar44;\n            if (((ushort)uVar44 & 0x7c0) != 0x2c0) {\n              (plVar7->ecoff_sym).asym.iss = (plVar9->ecoff_sym).asym.iss;\n            }\n            bVar20 = (plVar9->ecoff_sym).asym.field_0xc;\n            if (((bVar20 & 0x3f) + 0x39 & 0x3b) == 0) {\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              *(uint *)&(plVar9->ecoff_sym).asym.field_0xc =\n                   *(uint *)&(plVar9->ecoff_sym).asym.field_0xc & 0xfff |\n                   ((int)local_a4->byte + 1) * 0x1000;\n              (*p_Var6)(stdoutput,&(plVar9->ecoff_sym).asym,buf + iVar29 * uVar54 + local_68);\n              if ((bVar20 & 0x37) == 6) goto LAB_00024180;\n              if (((bVar20 & 0x3f) == 7) &&\n                 ((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7c0) != 0x2c0)) {\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                }\n                if (plVar7->proc_ptr == (ecoff_proc *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                }\n                psVar8 = plVar7->proc_ptr->sym->as_sym;\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(psVar8);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(psVar8);\n                local_b4 = (lineno_list_t *)vVar65;\n                local_b0 = (int)(vVar65 >> 0x20);\n                pfVar32 = plVar7->forward_ref;\n                *(uint *)&(plVar7->ecoff_sym).asym.value = (int)local_b4 - (uint)vVar66;\n                *(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                     (local_b0 - (int)(vVar66 >> 0x20)) - (uint)(local_b4 < (uint)vVar66);\n              }\n              else {\n                pfVar32 = plVar7->forward_ref;\n              }\n            }\n            else {\n              if (plVar9->index_ptr == (ecoff_aux *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n              }\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              (plVar9->index_ptr->data).dnLow = (int)local_a4->byte + 1;\n              if ((bVar20 & 0x37) == 6) {\nLAB_00024180:\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n                }\n                if (plVar9->as_sym == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n                }\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(plVar9->as_sym);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(plVar9->as_sym);\n                uVar16 = vVar65 - vVar66;\n                if ((uVar16 & 1) == 0) {\n                  (plVar7->ecoff_sym).asym.value = uVar16;\n                }\n                else {\n                  (plVar7->ecoff_sym).asym.value = uVar16 + 1;\n                }\n                paVar30 = symbol_get_bfdsym(plVar9->as_sym);\n                uVar12 = *(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4);\n                *(int *)&paVar30[1].value = (int)(plVar7->ecoff_sym).asym.value;\n                *(undefined4 *)((int)&paVar30[1].value + 4) = uVar12;\n                pfVar32 = plVar7->forward_ref;\n                goto joined_r0x000242a4;\n              }\n              pfVar32 = plVar7->forward_ref;\n            }\njoined_r0x000247a5:\n            if (pfVar32 != (forward *)0x0) {\nLAB_00023ff8:\n              AVar10 = (AUXU)local_9c->file[0].file_index;\n              do {\n                paVar53 = pfVar32->index_ptr;\n                pfVar32->ifd_ptr->data = AVar10;\n                (paVar53->data).dnLow = (paVar53->data).dnLow & 0xfffU | (int)local_a4 << 0xc;\n                pfVar32 = pfVar32->next;\n              } while (pfVar32 != (forward *)0x0);\n            }\n          }\nLAB_0002402d:\n          uVar44 = (int)bufend - (int)local_a0->byte >> 0x1f;\n          if (uVar44 < uVar24 ||\n              uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)local_a0->byte) < uVar54)) {\n            local_a0 = (page *)ecoff_add_bytes(local_78,local_74,local_a0->byte,uVar54);\n          }\n          (*p_Var6)(stdoutput,&(plVar7->ecoff_sym).asym,local_a0);\n          local_a0 = (page *)((int)local_a0 + uVar54);\n          plVar7->sym_index = (long)local_a8;\n          peVar11 = plVar7->proc_ptr;\n          if ((peVar11 != (ecoff_proc *)0x0) && (peVar11->sym == plVar7)) {\n            (peVar11->pdr).isym = (int)local_a8 - local_8c;\n          }\n          local_a8 = (proc_t *)((int)local_a8 + 1);\n          if ((psVar38 != (symbolS *)0x0) &&\n             (peVar31 = symbol_get_obj(psVar38), peVar31->ecoff_symbol == plVar7)) {\n            if (((plVar7->ecoff_sym).asym.field_0xc & 0x37) == 6) {\n              *(uint *)&(plVar7->ecoff_sym).asym.field_0xc =\n                   *(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff |\n                   (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          if ((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff) == 0x47) {\n            if (plVar7->proc_ptr == (ecoff_proc *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n            }\n            psVar8 = plVar7->proc_ptr->sym->as_sym;\n            paVar27 = S_GET_SEGMENT(psVar38);\n            paVar28 = S_GET_SEGMENT(psVar8);\n            if (paVar27 != paVar28) {\n              pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n              as_warn(pcVar22);\n            }\n            vVar65 = S_GET_VALUE(psVar38);\n            vVar66 = S_GET_VALUE(psVar8);\n            (plVar7->ecoff_sym).asym.value = vVar65 - vVar66;\n          }\n          else {\n            vVar65 = S_GET_VALUE(psVar38);\n            paVar27 = S_GET_SEGMENT(psVar38);\n            ptVar33 = *(tag **)&plVar7->addend;\n            uVar44 = (int)&(*(tag **)&plVar7->addend)->free + (uint)vVar65;\n            bVar17 = paVar27->vma;\n            iVar29 = *(int *)((int)&paVar27->vma + 4);\n            *(uint *)&(plVar7->ecoff_sym).asym.value = uVar44 + (int)paVar27->vma;\n            *(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                 (int)&(*(tag **)((int)&plVar7->addend + 4))->free +\n                 (uint)CARRY4(uVar44,(uint)bVar17) +\n                 iVar29 + (uint)CARRY4((uint)vVar65,(uint)ptVar33) + (int)(vVar65 >> 0x20);\n          }\n          iVar29 = S_IS_WEAK(psVar38);\n          *(byte *)&plVar7->ecoff_sym =\n               *(byte *)&plVar7->ecoff_sym & 0xfb | ((byte)iVar29 & 1) * '\x04';\n          if ((((((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 6) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) &&\n              (iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0)) &&\n             (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) {\n            (plVar7->ecoff_sym).asym.field_0xc = (plVar7->ecoff_sym).asym.field_0xc & 0xc0 | 0xe;\n          }\n          if (((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff) == 0) &&\n             ((uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc,\n              (uVar44 & 0xfff00) != 0x8f300 || ((uVar44 & 0xfffdf) != 0x8f3c0)))) {\n            paVar27 = S_GET_SEGMENT(psVar38);\n            pbVar52 = (byte *)paVar27->name;\n            if (((*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300) ||\n               (((iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0 &&\n                 (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n                (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)))) {\n              bVar20 = (paVar27 == text_section) * '\x03' + 2;\n            }\n            else {\n              paVar30 = symbol_get_bfdsym(psVar38);\n              bVar20 = (-((paVar30->flags & 8) == 0) & 0xfbU) + 6;\n            }\n            iVar29 = S_IS_DEFINED(psVar38);\n            if (iVar29 == 0) {\n              peVar31 = symbol_get_obj(psVar38);\n              iVar29 = *(int *)((int)&peVar31->ecoff_extern_size + 4);\n              uVar49 = (uint)peVar31->ecoff_extern_size;\n              if ((iVar29 == 0 && uVar49 == 0) ||\n                 (uVar44 = bfd_get_gp_size(stdoutput),\n                 iVar29 != 0 || (uint)-iVar29 < (uint)(uVar44 < uVar49))) {\n                bVar42 = 6;\n              }\n              else {\n                *(uint *)&(plVar7->ecoff_sym).asym.value = uVar49;\n                bVar42 = 0x15;\n                *(int *)((int)&(plVar7->ecoff_sym).asym.value + 4) = iVar29;\n              }\n              paVar30 = symbol_get_bfdsym(psVar38);\n              uVar44 = (uint)bVar42;\n              *(uint *)&paVar30[1].value = uVar49;\n              *(int *)((int)&paVar30[1].value + 4) = iVar29;\n            }\n            else {\n              iVar29 = S_IS_COMMON(psVar38);\n              if (iVar29 == 0) {\n                uVar44 = 1;\n                if (paVar27 != text_section) {\n                  uVar44 = 2;\n                  bVar62 = paVar27 < data_section;\n                  bVar63 = paVar27 == data_section;\n                  if (!bVar63) {\n                    iVar29 = 7;\n                    uVar44 = 0xf;\n                    pbVar51 = pbVar52;\n                    pbVar58 = (byte *)".rdata";\n                    do {\n                      if (iVar29 == 0) break;\n                      iVar29 = iVar29 + -1;\n                      bVar62 = *pbVar51 < *pbVar58;\n                      bVar63 = *pbVar51 == *pbVar58;\n                      pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                      pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                    } while (bVar63);\n                    bVar61 = false;\n                    bVar62 = (!bVar62 && !bVar63) == bVar62;\n                    if (!bVar62) {\n                      iVar29 = 8;\n                      pbVar51 = pbVar52;\n                      pbVar58 = (byte *)".rodata";\n                      do {\n                        if (iVar29 == 0) break;\n                        iVar29 = iVar29 + -1;\n                        bVar61 = *pbVar51 < *pbVar58;\n                        bVar62 = *pbVar51 == *pbVar58;\n                        pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                        pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                      } while (bVar62);\n                      bVar63 = false;\n                      bVar62 = (!bVar61 && !bVar62) == bVar61;\n                      if (!bVar62) {\n                        iVar29 = 7;\n                        uVar44 = 0xd;\n                        pbVar51 = pbVar52;\n                        pbVar58 = (byte *)".sdata";\n                        do {\n                          if (iVar29 == 0) break;\n                          iVar29 = iVar29 + -1;\n                          bVar63 = *pbVar51 < *pbVar58;\n                          bVar62 = *pbVar51 == *pbVar58;\n                          pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                          pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                        } while (bVar62);\n                        if ((!bVar63 && !bVar62) != bVar63) {\n                          uVar44 = 3;\n                          bVar62 = paVar27 < bss_section;\n                          bVar63 = paVar27 == bss_section;\n                          if (!bVar63) {\n                            iVar29 = 6;\n                            uVar44 = 0xe;\n                            pbVar51 = (byte *)".sbss";\n                            do {\n                              if (iVar29 == 0) break;\n                              iVar29 = iVar29 + -1;\n                              bVar62 = *pbVar52 < *pbVar51;\n                              bVar63 = *pbVar52 == *pbVar51;\n                              pbVar52 = pbVar52 + (uint)bVar64 * -2 + 1;\n                              pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                            } while (bVar63);\n                            if ((!bVar62 && !bVar63) != bVar62) {\n                              uVar44 = (uint)(paVar27 == paVar23) * 3 + 2;\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                vVar65 = S_GET_VALUE(psVar38);\n                if (vVar65 != 0) {\n                  vVar65 = S_GET_VALUE(psVar38);\n                  iVar29 = (int)(vVar65 >> 0x20);\n                  uVar49 = bfd_get_gp_size(stdoutput);\n                  uVar44 = 0x12;\n                  if (iVar29 == 0 && (uint)(uVar49 < (uint)vVar65) <= (uint)-iVar29)\n                  goto LAB_00023df1;\n                }\n                uVar44 = 0x11;\n              }\n            }\nLAB_00023df1:\n            (plVar7->ecoff_sym).asym.field_0xc =\n                 (plVar7->ecoff_sym).asym.field_0xc & 0xc0 | bVar20 & 0x3f;\n            *(ushort *)&(plVar7->ecoff_sym).asym.field_0xc =\n                 *(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0xf83f | (ushort)(uVar44 << 6);\n          }\n          iVar29 = S_IS_EXTERNAL(psVar38);\n          if (((((iVar29 == 0) && (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) ||\n              ((plVar7->proc_ptr != (ecoff_proc *)0x0 ||\n               (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 0)))) ||\n             ((*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300)) {\n            iVar29 = S_IS_COMMON(psVar38);\n            if (iVar29 == 0) {\n              if (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) != 8) {\n                ptVar33 = (tag *)plVar7->name;\n                pcVar22 = strchr((char *)ptVar33,1);\n                if (pcVar22 != (char *)0x0) goto LAB_00023e7a;\n                sVar34 = add_string(&local_9c->file[0].strings,local_9c->file[0].str_hash,\n                                    (char *)ptVar33,(shash_t **)0x0);\n                (plVar7->ecoff_sym).asym.iss = sVar34;\n                plVar9 = plVar7->begin_ptr;\n                if (plVar9 != (localsym *)0x0) goto LAB_00023e89;\n                pfVar32 = plVar7->forward_ref;\n                local_a4 = (page *)((int)local_a8 - local_8c);\n                goto joined_r0x000247a5;\n              }\nLAB_00023e7a:\n              plVar9 = plVar7->begin_ptr;\n              if (plVar9 != (localsym *)0x0) goto LAB_00023e89;\n              pfVar32 = plVar7->forward_ref;\n              if (pfVar32 != (forward *)0x0) {\n                local_a4 = (page *)((int)local_a8 - local_8c);\n                goto LAB_00023ff8;\n              }\n              goto LAB_0002402d;\n            }\n          }\n          else {\n            S_IS_COMMON(psVar38);\n          }\n          if (plVar7->begin_ptr != (localsym *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (plVar7->forward_ref != (forward *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          peVar31 = symbol_get_obj(psVar38);\n          if (plVar7 == peVar31->ecoff_symbol) {\nLAB_00024347:\n            (plVar7->ecoff_sym).ifd = local_9c->file[0].file_index;\n            iVar29 = S_IS_EXTERNAL(psVar38);\n            if ((iVar29 != 0) || (iVar29 = S_IS_WEAK(psVar38), iVar29 != 0)) {\n              local_9c->ubyte[0x44] = local_9c->ubyte[0x44] & 0xdf;\n            }\n          }\n        }" if (parenthesized_expression "(psVar38 == (symbolS *)0x0)" ( (binary_expression "psVar38 == (symbolS *)0x0" identifier == (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          plVar9 = plVar7->begin_ptr;\n          if (plVar9 == (localsym *)0x0) {\n            pfVar32 = plVar7->forward_ref;\njoined_r0x000242a4:\n            if (pfVar32 != (forward *)0x0) {\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              goto LAB_00023ff8;\n            }\n          }\n          else {\nLAB_00023e89:\n            iVar29 = plVar9->sym_index;\n            if (iVar29 == -1) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n            }\n            uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff | iVar29 << 0xc;\n            *(uint *)&(plVar7->ecoff_sym).asym.field_0xc = uVar44;\n            if (((ushort)uVar44 & 0x7c0) != 0x2c0) {\n              (plVar7->ecoff_sym).asym.iss = (plVar9->ecoff_sym).asym.iss;\n            }\n            bVar20 = (plVar9->ecoff_sym).asym.field_0xc;\n            if (((bVar20 & 0x3f) + 0x39 & 0x3b) == 0) {\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              *(uint *)&(plVar9->ecoff_sym).asym.field_0xc =\n                   *(uint *)&(plVar9->ecoff_sym).asym.field_0xc & 0xfff |\n                   ((int)local_a4->byte + 1) * 0x1000;\n              (*p_Var6)(stdoutput,&(plVar9->ecoff_sym).asym,buf + iVar29 * uVar54 + local_68);\n              if ((bVar20 & 0x37) == 6) goto LAB_00024180;\n              if (((bVar20 & 0x3f) == 7) &&\n                 ((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7c0) != 0x2c0)) {\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                }\n                if (plVar7->proc_ptr == (ecoff_proc *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                }\n                psVar8 = plVar7->proc_ptr->sym->as_sym;\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(psVar8);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(psVar8);\n                local_b4 = (lineno_list_t *)vVar65;\n                local_b0 = (int)(vVar65 >> 0x20);\n                pfVar32 = plVar7->forward_ref;\n                *(uint *)&(plVar7->ecoff_sym).asym.value = (int)local_b4 - (uint)vVar66;\n                *(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                     (local_b0 - (int)(vVar66 >> 0x20)) - (uint)(local_b4 < (uint)vVar66);\n              }\n              else {\n                pfVar32 = plVar7->forward_ref;\n              }\n            }\n            else {\n              if (plVar9->index_ptr == (ecoff_aux *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n              }\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              (plVar9->index_ptr->data).dnLow = (int)local_a4->byte + 1;\n              if ((bVar20 & 0x37) == 6) {\nLAB_00024180:\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n                }\n                if (plVar9->as_sym == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n                }\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(plVar9->as_sym);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(plVar9->as_sym);\n                uVar16 = vVar65 - vVar66;\n                if ((uVar16 & 1) == 0) {\n                  (plVar7->ecoff_sym).asym.value = uVar16;\n                }\n                else {\n                  (plVar7->ecoff_sym).asym.value = uVar16 + 1;\n                }\n                paVar30 = symbol_get_bfdsym(plVar9->as_sym);\n                uVar12 = *(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4);\n                *(int *)&paVar30[1].value = (int)(plVar7->ecoff_sym).asym.value;\n                *(undefined4 *)((int)&paVar30[1].value + 4) = uVar12;\n                pfVar32 = plVar7->forward_ref;\n                goto joined_r0x000242a4;\n              }\n              pfVar32 = plVar7->forward_ref;\n            }\njoined_r0x000247a5:\n            if (pfVar32 != (forward *)0x0) {\nLAB_00023ff8:\n              AVar10 = (AUXU)local_9c->file[0].file_index;\n              do {\n                paVar53 = pfVar32->index_ptr;\n                pfVar32->ifd_ptr->data = AVar10;\n                (paVar53->data).dnLow = (paVar53->data).dnLow & 0xfffU | (int)local_a4 << 0xc;\n                pfVar32 = pfVar32->next;\n              } while (pfVar32 != (forward *)0x0);\n            }\n          }\nLAB_0002402d:\n          uVar44 = (int)bufend - (int)local_a0->byte >> 0x1f;\n          if (uVar44 < uVar24 ||\n              uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)local_a0->byte) < uVar54)) {\n            local_a0 = (page *)ecoff_add_bytes(local_78,local_74,local_a0->byte,uVar54);\n          }\n          (*p_Var6)(stdoutput,&(plVar7->ecoff_sym).asym,local_a0);\n          local_a0 = (page *)((int)local_a0 + uVar54);\n          plVar7->sym_index = (long)local_a8;\n          peVar11 = plVar7->proc_ptr;\n          if ((peVar11 != (ecoff_proc *)0x0) && (peVar11->sym == plVar7)) {\n            (peVar11->pdr).isym = (int)local_a8 - local_8c;\n          }\n          local_a8 = (proc_t *)((int)local_a8 + 1);\n          if ((psVar38 != (symbolS *)0x0) &&\n             (peVar31 = symbol_get_obj(psVar38), peVar31->ecoff_symbol == plVar7)) {\n            if (((plVar7->ecoff_sym).asym.field_0xc & 0x37) == 6) {\n              *(uint *)&(plVar7->ecoff_sym).asym.field_0xc =\n                   *(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff |\n                   (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }" { (expression_statement "plVar9 = plVar7->begin_ptr;" (assignment_expression "plVar9 = plVar7->begin_ptr" identifier = (field_expression "plVar7->begin_ptr" identifier -> field_identifier)) ;) (if_statement "if (plVar9 == (localsym *)0x0) {\n            pfVar32 = plVar7->forward_ref;\njoined_r0x000242a4:\n            if (pfVar32 != (forward *)0x0) {\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              goto LAB_00023ff8;\n            }\n          }\n          else {\nLAB_00023e89:\n            iVar29 = plVar9->sym_index;\n            if (iVar29 == -1) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n            }\n            uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff | iVar29 << 0xc;\n            *(uint *)&(plVar7->ecoff_sym).asym.field_0xc = uVar44;\n            if (((ushort)uVar44 & 0x7c0) != 0x2c0) {\n              (plVar7->ecoff_sym).asym.iss = (plVar9->ecoff_sym).asym.iss;\n            }\n            bVar20 = (plVar9->ecoff_sym).asym.field_0xc;\n            if (((bVar20 & 0x3f) + 0x39 & 0x3b) == 0) {\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              *(uint *)&(plVar9->ecoff_sym).asym.field_0xc =\n                   *(uint *)&(plVar9->ecoff_sym).asym.field_0xc & 0xfff |\n                   ((int)local_a4->byte + 1) * 0x1000;\n              (*p_Var6)(stdoutput,&(plVar9->ecoff_sym).asym,buf + iVar29 * uVar54 + local_68);\n              if ((bVar20 & 0x37) == 6) goto LAB_00024180;\n              if (((bVar20 & 0x3f) == 7) &&\n                 ((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7c0) != 0x2c0)) {\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                }\n                if (plVar7->proc_ptr == (ecoff_proc *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                }\n                psVar8 = plVar7->proc_ptr->sym->as_sym;\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(psVar8);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(psVar8);\n                local_b4 = (lineno_list_t *)vVar65;\n                local_b0 = (int)(vVar65 >> 0x20);\n                pfVar32 = plVar7->forward_ref;\n                *(uint *)&(plVar7->ecoff_sym).asym.value = (int)local_b4 - (uint)vVar66;\n                *(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                     (local_b0 - (int)(vVar66 >> 0x20)) - (uint)(local_b4 < (uint)vVar66);\n              }\n              else {\n                pfVar32 = plVar7->forward_ref;\n              }\n            }\n            else {\n              if (plVar9->index_ptr == (ecoff_aux *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n              }\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              (plVar9->index_ptr->data).dnLow = (int)local_a4->byte + 1;\n              if ((bVar20 & 0x37) == 6) {\nLAB_00024180:\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n                }\n                if (plVar9->as_sym == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n                }\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(plVar9->as_sym);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(plVar9->as_sym);\n                uVar16 = vVar65 - vVar66;\n                if ((uVar16 & 1) == 0) {\n                  (plVar7->ecoff_sym).asym.value = uVar16;\n                }\n                else {\n                  (plVar7->ecoff_sym).asym.value = uVar16 + 1;\n                }\n                paVar30 = symbol_get_bfdsym(plVar9->as_sym);\n                uVar12 = *(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4);\n                *(int *)&paVar30[1].value = (int)(plVar7->ecoff_sym).asym.value;\n                *(undefined4 *)((int)&paVar30[1].value + 4) = uVar12;\n                pfVar32 = plVar7->forward_ref;\n                goto joined_r0x000242a4;\n              }\n              pfVar32 = plVar7->forward_ref;\n            }\njoined_r0x000247a5:\n            if (pfVar32 != (forward *)0x0) {\nLAB_00023ff8:\n              AVar10 = (AUXU)local_9c->file[0].file_index;\n              do {\n                paVar53 = pfVar32->index_ptr;\n                pfVar32->ifd_ptr->data = AVar10;\n                (paVar53->data).dnLow = (paVar53->data).dnLow & 0xfffU | (int)local_a4 << 0xc;\n                pfVar32 = pfVar32->next;\n              } while (pfVar32 != (forward *)0x0);\n            }\n          }" if (parenthesized_expression "(plVar9 == (localsym *)0x0)" ( (binary_expression "plVar9 == (localsym *)0x0" identifier == (cast_expression "(localsym *)0x0" ( (type_descriptor "localsym *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pfVar32 = plVar7->forward_ref;\njoined_r0x000242a4:\n            if (pfVar32 != (forward *)0x0) {\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              goto LAB_00023ff8;\n            }\n          }" { (expression_statement "pfVar32 = plVar7->forward_ref;" (assignment_expression "pfVar32 = plVar7->forward_ref" identifier = (field_expression "plVar7->forward_ref" identifier -> field_identifier)) ;) (labeled_statement "joined_r0x000242a4:\n            if (pfVar32 != (forward *)0x0) {\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              goto LAB_00023ff8;\n            }" statement_identifier : (if_statement "if (pfVar32 != (forward *)0x0) {\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              goto LAB_00023ff8;\n            }" if (parenthesized_expression "(pfVar32 != (forward *)0x0)" ( (binary_expression "pfVar32 != (forward *)0x0" identifier != (cast_expression "(forward *)0x0" ( (type_descriptor "forward *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              goto LAB_00023ff8;\n            }" { (expression_statement "local_a4 = (page *)((int)local_a8 - local_8c);" (assignment_expression "local_a4 = (page *)((int)local_a8 - local_8c)" identifier = (cast_expression "(page *)((int)local_a8 - local_8c)" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 - local_8c)" ( (binary_expression "(int)local_a8 - local_8c" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (goto_statement "goto LAB_00023ff8;" goto statement_identifier ;) }))) }) (else_clause "else {\nLAB_00023e89:\n            iVar29 = plVar9->sym_index;\n            if (iVar29 == -1) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n            }\n            uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff | iVar29 << 0xc;\n            *(uint *)&(plVar7->ecoff_sym).asym.field_0xc = uVar44;\n            if (((ushort)uVar44 & 0x7c0) != 0x2c0) {\n              (plVar7->ecoff_sym).asym.iss = (plVar9->ecoff_sym).asym.iss;\n            }\n            bVar20 = (plVar9->ecoff_sym).asym.field_0xc;\n            if (((bVar20 & 0x3f) + 0x39 & 0x3b) == 0) {\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              *(uint *)&(plVar9->ecoff_sym).asym.field_0xc =\n                   *(uint *)&(plVar9->ecoff_sym).asym.field_0xc & 0xfff |\n                   ((int)local_a4->byte + 1) * 0x1000;\n              (*p_Var6)(stdoutput,&(plVar9->ecoff_sym).asym,buf + iVar29 * uVar54 + local_68);\n              if ((bVar20 & 0x37) == 6) goto LAB_00024180;\n              if (((bVar20 & 0x3f) == 7) &&\n                 ((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7c0) != 0x2c0)) {\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                }\n                if (plVar7->proc_ptr == (ecoff_proc *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                }\n                psVar8 = plVar7->proc_ptr->sym->as_sym;\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(psVar8);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(psVar8);\n                local_b4 = (lineno_list_t *)vVar65;\n                local_b0 = (int)(vVar65 >> 0x20);\n                pfVar32 = plVar7->forward_ref;\n                *(uint *)&(plVar7->ecoff_sym).asym.value = (int)local_b4 - (uint)vVar66;\n                *(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                     (local_b0 - (int)(vVar66 >> 0x20)) - (uint)(local_b4 < (uint)vVar66);\n              }\n              else {\n                pfVar32 = plVar7->forward_ref;\n              }\n            }\n            else {\n              if (plVar9->index_ptr == (ecoff_aux *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n              }\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              (plVar9->index_ptr->data).dnLow = (int)local_a4->byte + 1;\n              if ((bVar20 & 0x37) == 6) {\nLAB_00024180:\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n                }\n                if (plVar9->as_sym == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n                }\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(plVar9->as_sym);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(plVar9->as_sym);\n                uVar16 = vVar65 - vVar66;\n                if ((uVar16 & 1) == 0) {\n                  (plVar7->ecoff_sym).asym.value = uVar16;\n                }\n                else {\n                  (plVar7->ecoff_sym).asym.value = uVar16 + 1;\n                }\n                paVar30 = symbol_get_bfdsym(plVar9->as_sym);\n                uVar12 = *(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4);\n                *(int *)&paVar30[1].value = (int)(plVar7->ecoff_sym).asym.value;\n                *(undefined4 *)((int)&paVar30[1].value + 4) = uVar12;\n                pfVar32 = plVar7->forward_ref;\n                goto joined_r0x000242a4;\n              }\n              pfVar32 = plVar7->forward_ref;\n            }\njoined_r0x000247a5:\n            if (pfVar32 != (forward *)0x0) {\nLAB_00023ff8:\n              AVar10 = (AUXU)local_9c->file[0].file_index;\n              do {\n                paVar53 = pfVar32->index_ptr;\n                pfVar32->ifd_ptr->data = AVar10;\n                (paVar53->data).dnLow = (paVar53->data).dnLow & 0xfffU | (int)local_a4 << 0xc;\n                pfVar32 = pfVar32->next;\n              } while (pfVar32 != (forward *)0x0);\n            }\n          }" else (compound_statement "{\nLAB_00023e89:\n            iVar29 = plVar9->sym_index;\n            if (iVar29 == -1) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n            }\n            uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff | iVar29 << 0xc;\n            *(uint *)&(plVar7->ecoff_sym).asym.field_0xc = uVar44;\n            if (((ushort)uVar44 & 0x7c0) != 0x2c0) {\n              (plVar7->ecoff_sym).asym.iss = (plVar9->ecoff_sym).asym.iss;\n            }\n            bVar20 = (plVar9->ecoff_sym).asym.field_0xc;\n            if (((bVar20 & 0x3f) + 0x39 & 0x3b) == 0) {\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              *(uint *)&(plVar9->ecoff_sym).asym.field_0xc =\n                   *(uint *)&(plVar9->ecoff_sym).asym.field_0xc & 0xfff |\n                   ((int)local_a4->byte + 1) * 0x1000;\n              (*p_Var6)(stdoutput,&(plVar9->ecoff_sym).asym,buf + iVar29 * uVar54 + local_68);\n              if ((bVar20 & 0x37) == 6) goto LAB_00024180;\n              if (((bVar20 & 0x3f) == 7) &&\n                 ((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7c0) != 0x2c0)) {\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                }\n                if (plVar7->proc_ptr == (ecoff_proc *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                }\n                psVar8 = plVar7->proc_ptr->sym->as_sym;\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(psVar8);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(psVar8);\n                local_b4 = (lineno_list_t *)vVar65;\n                local_b0 = (int)(vVar65 >> 0x20);\n                pfVar32 = plVar7->forward_ref;\n                *(uint *)&(plVar7->ecoff_sym).asym.value = (int)local_b4 - (uint)vVar66;\n                *(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                     (local_b0 - (int)(vVar66 >> 0x20)) - (uint)(local_b4 < (uint)vVar66);\n              }\n              else {\n                pfVar32 = plVar7->forward_ref;\n              }\n            }\n            else {\n              if (plVar9->index_ptr == (ecoff_aux *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n              }\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              (plVar9->index_ptr->data).dnLow = (int)local_a4->byte + 1;\n              if ((bVar20 & 0x37) == 6) {\nLAB_00024180:\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n                }\n                if (plVar9->as_sym == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n                }\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(plVar9->as_sym);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(plVar9->as_sym);\n                uVar16 = vVar65 - vVar66;\n                if ((uVar16 & 1) == 0) {\n                  (plVar7->ecoff_sym).asym.value = uVar16;\n                }\n                else {\n                  (plVar7->ecoff_sym).asym.value = uVar16 + 1;\n                }\n                paVar30 = symbol_get_bfdsym(plVar9->as_sym);\n                uVar12 = *(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4);\n                *(int *)&paVar30[1].value = (int)(plVar7->ecoff_sym).asym.value;\n                *(undefined4 *)((int)&paVar30[1].value + 4) = uVar12;\n                pfVar32 = plVar7->forward_ref;\n                goto joined_r0x000242a4;\n              }\n              pfVar32 = plVar7->forward_ref;\n            }\njoined_r0x000247a5:\n            if (pfVar32 != (forward *)0x0) {\nLAB_00023ff8:\n              AVar10 = (AUXU)local_9c->file[0].file_index;\n              do {\n                paVar53 = pfVar32->index_ptr;\n                pfVar32->ifd_ptr->data = AVar10;\n                (paVar53->data).dnLow = (paVar53->data).dnLow & 0xfffU | (int)local_a4 << 0xc;\n                pfVar32 = pfVar32->next;\n              } while (pfVar32 != (forward *)0x0);\n            }\n          }" { (labeled_statement "LAB_00023e89:\n            iVar29 = plVar9->sym_index;" statement_identifier : (expression_statement "iVar29 = plVar9->sym_index;" (assignment_expression "iVar29 = plVar9->sym_index" identifier = (field_expression "plVar9->sym_index" identifier -> field_identifier)) ;)) (if_statement "if (iVar29 == -1) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n            }" if (parenthesized_expression "(iVar29 == -1)" ( (binary_expression "iVar29 == -1" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n            }" { comment (expression_statement "as_abort("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");" (call_expression "as_abort("../../gas/ecoff.c",0x1020,"ecoff_build_symbols")" identifier (argument_list "("../../gas/ecoff.c",0x1020,"ecoff_build_symbols")" ( (string_literal ""../../gas/ecoff.c"" " string_content ") , number_literal , (string_literal ""ecoff_build_symbols"" " string_content ") ))) ;) })) (expression_statement "uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff | iVar29 << 0xc;" (assignment_expression "uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff | iVar29 << 0xc" identifier = (binary_expression "*(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff | iVar29 << 0xc" (binary_expression "*(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff" (pointer_expression "*(uint *)&(plVar7->ecoff_sym).asym.field_0xc" * (cast_expression "(uint *)&(plVar7->ecoff_sym).asym.field_0xc" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(plVar7->ecoff_sym).asym.field_0xc" & (field_expression "(plVar7->ecoff_sym).asym.field_0xc" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier)))) & number_literal) | (binary_expression "iVar29 << 0xc" identifier << number_literal))) ;) (expression_statement "*(uint *)&(plVar7->ecoff_sym).asym.field_0xc = uVar44;" (assignment_expression "*(uint *)&(plVar7->ecoff_sym).asym.field_0xc = uVar44" (pointer_expression "*(uint *)&(plVar7->ecoff_sym).asym.field_0xc" * (cast_expression "(uint *)&(plVar7->ecoff_sym).asym.field_0xc" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(plVar7->ecoff_sym).asym.field_0xc" & (field_expression "(plVar7->ecoff_sym).asym.field_0xc" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier)))) = identifier) ;) (if_statement "if (((ushort)uVar44 & 0x7c0) != 0x2c0) {\n              (plVar7->ecoff_sym).asym.iss = (plVar9->ecoff_sym).asym.iss;\n            }" if (parenthesized_expression "(((ushort)uVar44 & 0x7c0) != 0x2c0)" ( (binary_expression "((ushort)uVar44 & 0x7c0) != 0x2c0" (parenthesized_expression "((ushort)uVar44 & 0x7c0)" ( (binary_expression "(ushort)uVar44 & 0x7c0" (cast_expression "(ushort)uVar44" ( (type_descriptor "ushort" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n              (plVar7->ecoff_sym).asym.iss = (plVar9->ecoff_sym).asym.iss;\n            }" { (expression_statement "(plVar7->ecoff_sym).asym.iss = (plVar9->ecoff_sym).asym.iss;" (assignment_expression "(plVar7->ecoff_sym).asym.iss = (plVar9->ecoff_sym).asym.iss" (field_expression "(plVar7->ecoff_sym).asym.iss" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (field_expression "(plVar9->ecoff_sym).asym.iss" (field_expression "(plVar9->ecoff_sym).asym" (parenthesized_expression "(plVar9->ecoff_sym)" ( (field_expression "plVar9->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) })) (expression_statement "bVar20 = (plVar9->ecoff_sym).asym.field_0xc;" (assignment_expression "bVar20 = (plVar9->ecoff_sym).asym.field_0xc" identifier = (field_expression "(plVar9->ecoff_sym).asym.field_0xc" (field_expression "(plVar9->ecoff_sym).asym" (parenthesized_expression "(plVar9->ecoff_sym)" ( (field_expression "plVar9->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (((bVar20 & 0x3f) + 0x39 & 0x3b) == 0) {\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              *(uint *)&(plVar9->ecoff_sym).asym.field_0xc =\n                   *(uint *)&(plVar9->ecoff_sym).asym.field_0xc & 0xfff |\n                   ((int)local_a4->byte + 1) * 0x1000;\n              (*p_Var6)(stdoutput,&(plVar9->ecoff_sym).asym,buf + iVar29 * uVar54 + local_68);\n              if ((bVar20 & 0x37) == 6) goto LAB_00024180;\n              if (((bVar20 & 0x3f) == 7) &&\n                 ((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7c0) != 0x2c0)) {\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                }\n                if (plVar7->proc_ptr == (ecoff_proc *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                }\n                psVar8 = plVar7->proc_ptr->sym->as_sym;\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(psVar8);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(psVar8);\n                local_b4 = (lineno_list_t *)vVar65;\n                local_b0 = (int)(vVar65 >> 0x20);\n                pfVar32 = plVar7->forward_ref;\n                *(uint *)&(plVar7->ecoff_sym).asym.value = (int)local_b4 - (uint)vVar66;\n                *(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                     (local_b0 - (int)(vVar66 >> 0x20)) - (uint)(local_b4 < (uint)vVar66);\n              }\n              else {\n                pfVar32 = plVar7->forward_ref;\n              }\n            }\n            else {\n              if (plVar9->index_ptr == (ecoff_aux *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n              }\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              (plVar9->index_ptr->data).dnLow = (int)local_a4->byte + 1;\n              if ((bVar20 & 0x37) == 6) {\nLAB_00024180:\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n                }\n                if (plVar9->as_sym == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n                }\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(plVar9->as_sym);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(plVar9->as_sym);\n                uVar16 = vVar65 - vVar66;\n                if ((uVar16 & 1) == 0) {\n                  (plVar7->ecoff_sym).asym.value = uVar16;\n                }\n                else {\n                  (plVar7->ecoff_sym).asym.value = uVar16 + 1;\n                }\n                paVar30 = symbol_get_bfdsym(plVar9->as_sym);\n                uVar12 = *(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4);\n                *(int *)&paVar30[1].value = (int)(plVar7->ecoff_sym).asym.value;\n                *(undefined4 *)((int)&paVar30[1].value + 4) = uVar12;\n                pfVar32 = plVar7->forward_ref;\n                goto joined_r0x000242a4;\n              }\n              pfVar32 = plVar7->forward_ref;\n            }" if (parenthesized_expression "(((bVar20 & 0x3f) + 0x39 & 0x3b) == 0)" ( (binary_expression "((bVar20 & 0x3f) + 0x39 & 0x3b) == 0" (parenthesized_expression "((bVar20 & 0x3f) + 0x39 & 0x3b)" ( (binary_expression "(bVar20 & 0x3f) + 0x39 & 0x3b" (binary_expression "(bVar20 & 0x3f) + 0x39" (parenthesized_expression "(bVar20 & 0x3f)" ( (binary_expression "bVar20 & 0x3f" identifier & number_literal) )) + number_literal) & number_literal) )) == number_literal) )) (compound_statement "{\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              *(uint *)&(plVar9->ecoff_sym).asym.field_0xc =\n                   *(uint *)&(plVar9->ecoff_sym).asym.field_0xc & 0xfff |\n                   ((int)local_a4->byte + 1) * 0x1000;\n              (*p_Var6)(stdoutput,&(plVar9->ecoff_sym).asym,buf + iVar29 * uVar54 + local_68);\n              if ((bVar20 & 0x37) == 6) goto LAB_00024180;\n              if (((bVar20 & 0x3f) == 7) &&\n                 ((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7c0) != 0x2c0)) {\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                }\n                if (plVar7->proc_ptr == (ecoff_proc *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                }\n                psVar8 = plVar7->proc_ptr->sym->as_sym;\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(psVar8);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(psVar8);\n                local_b4 = (lineno_list_t *)vVar65;\n                local_b0 = (int)(vVar65 >> 0x20);\n                pfVar32 = plVar7->forward_ref;\n                *(uint *)&(plVar7->ecoff_sym).asym.value = (int)local_b4 - (uint)vVar66;\n                *(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                     (local_b0 - (int)(vVar66 >> 0x20)) - (uint)(local_b4 < (uint)vVar66);\n              }\n              else {\n                pfVar32 = plVar7->forward_ref;\n              }\n            }" { (expression_statement "local_a4 = (page *)((int)local_a8 - local_8c);" (assignment_expression "local_a4 = (page *)((int)local_a8 - local_8c)" identifier = (cast_expression "(page *)((int)local_a8 - local_8c)" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 - local_8c)" ( (binary_expression "(int)local_a8 - local_8c" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "*(uint *)&(plVar9->ecoff_sym).asym.field_0xc =\n                   *(uint *)&(plVar9->ecoff_sym).asym.field_0xc & 0xfff |\n                   ((int)local_a4->byte + 1) * 0x1000;" (assignment_expression "*(uint *)&(plVar9->ecoff_sym).asym.field_0xc =\n                   *(uint *)&(plVar9->ecoff_sym).asym.field_0xc & 0xfff |\n                   ((int)local_a4->byte + 1) * 0x1000" (pointer_expression "*(uint *)&(plVar9->ecoff_sym).asym.field_0xc" * (cast_expression "(uint *)&(plVar9->ecoff_sym).asym.field_0xc" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(plVar9->ecoff_sym).asym.field_0xc" & (field_expression "(plVar9->ecoff_sym).asym.field_0xc" (field_expression "(plVar9->ecoff_sym).asym" (parenthesized_expression "(plVar9->ecoff_sym)" ( (field_expression "plVar9->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier)))) = (binary_expression "*(uint *)&(plVar9->ecoff_sym).asym.field_0xc & 0xfff |\n                   ((int)local_a4->byte + 1) * 0x1000" (binary_expression "*(uint *)&(plVar9->ecoff_sym).asym.field_0xc & 0xfff" (pointer_expression "*(uint *)&(plVar9->ecoff_sym).asym.field_0xc" * (cast_expression "(uint *)&(plVar9->ecoff_sym).asym.field_0xc" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(plVar9->ecoff_sym).asym.field_0xc" & (field_expression "(plVar9->ecoff_sym).asym.field_0xc" (field_expression "(plVar9->ecoff_sym).asym" (parenthesized_expression "(plVar9->ecoff_sym)" ( (field_expression "plVar9->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier)))) & number_literal) | (binary_expression "((int)local_a4->byte + 1) * 0x1000" (parenthesized_expression "((int)local_a4->byte + 1)" ( (binary_expression "(int)local_a4->byte + 1" (cast_expression "(int)local_a4->byte" ( (type_descriptor "int" primitive_type) ) (field_expression "local_a4->byte" identifier -> field_identifier)) + number_literal) )) * number_literal))) ;) (expression_statement "(*p_Var6)(stdoutput,&(plVar9->ecoff_sym).asym,buf + iVar29 * uVar54 + local_68);" (call_expression "(*p_Var6)(stdoutput,&(plVar9->ecoff_sym).asym,buf + iVar29 * uVar54 + local_68)" (parenthesized_expression "(*p_Var6)" ( (pointer_expression "*p_Var6" * identifier) )) (argument_list "(stdoutput,&(plVar9->ecoff_sym).asym,buf + iVar29 * uVar54 + local_68)" ( identifier , (pointer_expression "&(plVar9->ecoff_sym).asym" & (field_expression "(plVar9->ecoff_sym).asym" (parenthesized_expression "(plVar9->ecoff_sym)" ( (field_expression "plVar9->ecoff_sym" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "buf + iVar29 * uVar54 + local_68" (binary_expression "buf + iVar29 * uVar54" identifier + (binary_expression "iVar29 * uVar54" identifier * identifier)) + identifier) ))) ;) (if_statement "if ((bVar20 & 0x37) == 6) goto LAB_00024180;" if (parenthesized_expression "((bVar20 & 0x37) == 6)" ( (binary_expression "(bVar20 & 0x37) == 6" (parenthesized_expression "(bVar20 & 0x37)" ( (binary_expression "bVar20 & 0x37" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00024180;" goto statement_identifier ;)) (if_statement "if (((bVar20 & 0x3f) == 7) &&\n                 ((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7c0) != 0x2c0)) {\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                }\n                if (plVar7->proc_ptr == (ecoff_proc *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                }\n                psVar8 = plVar7->proc_ptr->sym->as_sym;\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(psVar8);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(psVar8);\n                local_b4 = (lineno_list_t *)vVar65;\n                local_b0 = (int)(vVar65 >> 0x20);\n                pfVar32 = plVar7->forward_ref;\n                *(uint *)&(plVar7->ecoff_sym).asym.value = (int)local_b4 - (uint)vVar66;\n                *(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                     (local_b0 - (int)(vVar66 >> 0x20)) - (uint)(local_b4 < (uint)vVar66);\n              }\n              else {\n                pfVar32 = plVar7->forward_ref;\n              }" if (parenthesized_expression "(((bVar20 & 0x3f) == 7) &&\n                 ((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7c0) != 0x2c0))" ( (binary_expression "((bVar20 & 0x3f) == 7) &&\n                 ((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7c0) != 0x2c0)" (parenthesized_expression "((bVar20 & 0x3f) == 7)" ( (binary_expression "(bVar20 & 0x3f) == 7" (parenthesized_expression "(bVar20 & 0x3f)" ( (binary_expression "bVar20 & 0x3f" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7c0) != 0x2c0)" ( (binary_expression "(*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7c0) != 0x2c0" (parenthesized_expression "(*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7c0)" ( (binary_expression "*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7c0" (pointer_expression "*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc" * (cast_expression "(ushort *)&(plVar7->ecoff_sym).asym.field_0xc" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(plVar7->ecoff_sym).asym.field_0xc" & (field_expression "(plVar7->ecoff_sym).asym.field_0xc" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier)))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                }\n                if (plVar7->proc_ptr == (ecoff_proc *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                }\n                psVar8 = plVar7->proc_ptr->sym->as_sym;\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(psVar8);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(psVar8);\n                local_b4 = (lineno_list_t *)vVar65;\n                local_b0 = (int)(vVar65 >> 0x20);\n                pfVar32 = plVar7->forward_ref;\n                *(uint *)&(plVar7->ecoff_sym).asym.value = (int)local_b4 - (uint)vVar66;\n                *(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                     (local_b0 - (int)(vVar66 >> 0x20)) - (uint)(local_b4 < (uint)vVar66);\n              }" { (if_statement "if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                }" if (parenthesized_expression "(psVar38 == (symbolS *)0x0)" ( (binary_expression "psVar38 == (symbolS *)0x0" identifier == (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                }" { comment (expression_statement "as_abort("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");" (call_expression "as_abort("../../gas/ecoff.c",0x105a,"ecoff_build_symbols")" identifier (argument_list "("../../gas/ecoff.c",0x105a,"ecoff_build_symbols")" ( (string_literal ""../../gas/ecoff.c"" " string_content ") , number_literal , (string_literal ""ecoff_build_symbols"" " string_content ") ))) ;) })) (if_statement "if (plVar7->proc_ptr == (ecoff_proc *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                }" if (parenthesized_expression "(plVar7->proc_ptr == (ecoff_proc *)0x0)" ( (binary_expression "plVar7->proc_ptr == (ecoff_proc *)0x0" (field_expression "plVar7->proc_ptr" identifier -> field_identifier) == (cast_expression "(ecoff_proc *)0x0" ( (type_descriptor "ecoff_proc *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                }" { comment (expression_statement "as_abort("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");" (call_expression "as_abort("../../gas/ecoff.c",0x105b,"ecoff_build_symbols")" identifier (argument_list "("../../gas/ecoff.c",0x105b,"ecoff_build_symbols")" ( (string_literal ""../../gas/ecoff.c"" " string_content ") , number_literal , (string_literal ""ecoff_build_symbols"" " string_content ") ))) ;) })) (expression_statement "psVar8 = plVar7->proc_ptr->sym->as_sym;" (assignment_expression "psVar8 = plVar7->proc_ptr->sym->as_sym" identifier = (field_expression "plVar7->proc_ptr->sym->as_sym" (field_expression "plVar7->proc_ptr->sym" (field_expression "plVar7->proc_ptr" identifier -> field_identifier) -> field_identifier) -> field_identifier)) ;) (expression_statement "paVar27 = S_GET_SEGMENT(psVar38);" (assignment_expression "paVar27 = S_GET_SEGMENT(psVar38)" identifier = (call_expression "S_GET_SEGMENT(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) ;) (expression_statement "paVar28 = S_GET_SEGMENT(psVar8);" (assignment_expression "paVar28 = S_GET_SEGMENT(psVar8)" identifier = (call_expression "S_GET_SEGMENT(psVar8)" identifier (argument_list "(psVar8)" ( identifier )))) ;) (if_statement "if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }" if (parenthesized_expression "(paVar27 != paVar28)" ( (binary_expression "paVar27 != paVar28" identifier != identifier) )) (compound_statement "{\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }" { (expression_statement "pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);" (assignment_expression "pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5)" identifier = (cast_expression "(char *)dcgettext(0,".begin/.bend in different segments",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,".begin/.bend in different segments",5)" identifier (argument_list "(0,".begin/.bend in different segments",5)" ( number_literal , (string_literal "".begin/.bend in different segments"" " string_content ") , number_literal ))))) ;) (expression_statement "as_warn(pcVar22);" (call_expression "as_warn(pcVar22)" identifier (argument_list "(pcVar22)" ( identifier ))) ;) })) (expression_statement "vVar65 = S_GET_VALUE(psVar38);" (assignment_expression "vVar65 = S_GET_VALUE(psVar38)" identifier = (call_expression "S_GET_VALUE(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) ;) (expression_statement "vVar66 = S_GET_VALUE(psVar8);" (assignment_expression "vVar66 = S_GET_VALUE(psVar8)" identifier = (call_expression "S_GET_VALUE(psVar8)" identifier (argument_list "(psVar8)" ( identifier )))) ;) (expression_statement "local_b4 = (lineno_list_t *)vVar65;" (assignment_expression "local_b4 = (lineno_list_t *)vVar65" identifier = (cast_expression "(lineno_list_t *)vVar65" ( (type_descriptor "lineno_list_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_b0 = (int)(vVar65 >> 0x20);" (assignment_expression "local_b0 = (int)(vVar65 >> 0x20)" identifier = (cast_expression "(int)(vVar65 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(vVar65 >> 0x20)" ( (binary_expression "vVar65 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "pfVar32 = plVar7->forward_ref;" (assignment_expression "pfVar32 = plVar7->forward_ref" identifier = (field_expression "plVar7->forward_ref" identifier -> field_identifier)) ;) (expression_statement "*(uint *)&(plVar7->ecoff_sym).asym.value = (int)local_b4 - (uint)vVar66;" (assignment_expression "*(uint *)&(plVar7->ecoff_sym).asym.value = (int)local_b4 - (uint)vVar66" (pointer_expression "*(uint *)&(plVar7->ecoff_sym).asym.value" * (cast_expression "(uint *)&(plVar7->ecoff_sym).asym.value" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(plVar7->ecoff_sym).asym.value" & (field_expression "(plVar7->ecoff_sym).asym.value" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier)))) = (binary_expression "(int)local_b4 - (uint)vVar66" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(uint)vVar66" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "*(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                     (local_b0 - (int)(vVar66 >> 0x20)) - (uint)(local_b4 < (uint)vVar66);" (assignment_expression "*(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                     (local_b0 - (int)(vVar66 >> 0x20)) - (uint)(local_b4 < (uint)vVar66)" (pointer_expression "*(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4)" * (cast_expression "(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(plVar7->ecoff_sym).asym.value + 4)" ( (binary_expression "(int)&(plVar7->ecoff_sym).asym.value + 4" (cast_expression "(int)&(plVar7->ecoff_sym).asym.value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(plVar7->ecoff_sym).asym.value" & (field_expression "(plVar7->ecoff_sym).asym.value" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) )))) = (binary_expression "(local_b0 - (int)(vVar66 >> 0x20)) - (uint)(local_b4 < (uint)vVar66)" (parenthesized_expression "(local_b0 - (int)(vVar66 >> 0x20))" ( (binary_expression "local_b0 - (int)(vVar66 >> 0x20)" identifier - (cast_expression "(int)(vVar66 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(vVar66 >> 0x20)" ( (binary_expression "vVar66 >> 0x20" identifier >> number_literal) )))) )) - (call_expression "(uint)(local_b4 < (uint)vVar66)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_b4 < (uint)vVar66)" ( (binary_expression "local_b4 < (uint)vVar66" identifier < (cast_expression "(uint)vVar66" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) ;) }) (else_clause "else {\n                pfVar32 = plVar7->forward_ref;\n              }" else (compound_statement "{\n                pfVar32 = plVar7->forward_ref;\n              }" { (expression_statement "pfVar32 = plVar7->forward_ref;" (assignment_expression "pfVar32 = plVar7->forward_ref" identifier = (field_expression "plVar7->forward_ref" identifier -> field_identifier)) ;) }))) }) (else_clause "else {\n              if (plVar9->index_ptr == (ecoff_aux *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n              }\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              (plVar9->index_ptr->data).dnLow = (int)local_a4->byte + 1;\n              if ((bVar20 & 0x37) == 6) {\nLAB_00024180:\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n                }\n                if (plVar9->as_sym == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n                }\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(plVar9->as_sym);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(plVar9->as_sym);\n                uVar16 = vVar65 - vVar66;\n                if ((uVar16 & 1) == 0) {\n                  (plVar7->ecoff_sym).asym.value = uVar16;\n                }\n                else {\n                  (plVar7->ecoff_sym).asym.value = uVar16 + 1;\n                }\n                paVar30 = symbol_get_bfdsym(plVar9->as_sym);\n                uVar12 = *(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4);\n                *(int *)&paVar30[1].value = (int)(plVar7->ecoff_sym).asym.value;\n                *(undefined4 *)((int)&paVar30[1].value + 4) = uVar12;\n                pfVar32 = plVar7->forward_ref;\n                goto joined_r0x000242a4;\n              }\n              pfVar32 = plVar7->forward_ref;\n            }" else (compound_statement "{\n              if (plVar9->index_ptr == (ecoff_aux *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n              }\n              local_a4 = (page *)((int)local_a8 - local_8c);\n              (plVar9->index_ptr->data).dnLow = (int)local_a4->byte + 1;\n              if ((bVar20 & 0x37) == 6) {\nLAB_00024180:\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n                }\n                if (plVar9->as_sym == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n                }\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(plVar9->as_sym);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(plVar9->as_sym);\n                uVar16 = vVar65 - vVar66;\n                if ((uVar16 & 1) == 0) {\n                  (plVar7->ecoff_sym).asym.value = uVar16;\n                }\n                else {\n                  (plVar7->ecoff_sym).asym.value = uVar16 + 1;\n                }\n                paVar30 = symbol_get_bfdsym(plVar9->as_sym);\n                uVar12 = *(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4);\n                *(int *)&paVar30[1].value = (int)(plVar7->ecoff_sym).asym.value;\n                *(undefined4 *)((int)&paVar30[1].value + 4) = uVar12;\n                pfVar32 = plVar7->forward_ref;\n                goto joined_r0x000242a4;\n              }\n              pfVar32 = plVar7->forward_ref;\n            }" { (if_statement "if (plVar9->index_ptr == (ecoff_aux *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n              }" if (parenthesized_expression "(plVar9->index_ptr == (ecoff_aux *)0x0)" ( (binary_expression "plVar9->index_ptr == (ecoff_aux *)0x0" (field_expression "plVar9->index_ptr" identifier -> field_identifier) == (cast_expression "(ecoff_aux *)0x0" ( (type_descriptor "ecoff_aux *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n              }" { comment (expression_statement "as_abort("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");" (call_expression "as_abort("../../gas/ecoff.c",0x1035,"ecoff_build_symbols")" identifier (argument_list "("../../gas/ecoff.c",0x1035,"ecoff_build_symbols")" ( (string_literal ""../../gas/ecoff.c"" " string_content ") , number_literal , (string_literal ""ecoff_build_symbols"" " string_content ") ))) ;) })) (expression_statement "local_a4 = (page *)((int)local_a8 - local_8c);" (assignment_expression "local_a4 = (page *)((int)local_a8 - local_8c)" identifier = (cast_expression "(page *)((int)local_a8 - local_8c)" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 - local_8c)" ( (binary_expression "(int)local_a8 - local_8c" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "(plVar9->index_ptr->data).dnLow = (int)local_a4->byte + 1;" (assignment_expression "(plVar9->index_ptr->data).dnLow = (int)local_a4->byte + 1" (field_expression "(plVar9->index_ptr->data).dnLow" (parenthesized_expression "(plVar9->index_ptr->data)" ( (field_expression "plVar9->index_ptr->data" (field_expression "plVar9->index_ptr" identifier -> field_identifier) -> field_identifier) )) . field_identifier) = (binary_expression "(int)local_a4->byte + 1" (cast_expression "(int)local_a4->byte" ( (type_descriptor "int" primitive_type) ) (field_expression "local_a4->byte" identifier -> field_identifier)) + number_literal)) ;) (if_statement "if ((bVar20 & 0x37) == 6) {\nLAB_00024180:\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n                }\n                if (plVar9->as_sym == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n                }\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(plVar9->as_sym);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(plVar9->as_sym);\n                uVar16 = vVar65 - vVar66;\n                if ((uVar16 & 1) == 0) {\n                  (plVar7->ecoff_sym).asym.value = uVar16;\n                }\n                else {\n                  (plVar7->ecoff_sym).asym.value = uVar16 + 1;\n                }\n                paVar30 = symbol_get_bfdsym(plVar9->as_sym);\n                uVar12 = *(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4);\n                *(int *)&paVar30[1].value = (int)(plVar7->ecoff_sym).asym.value;\n                *(undefined4 *)((int)&paVar30[1].value + 4) = uVar12;\n                pfVar32 = plVar7->forward_ref;\n                goto joined_r0x000242a4;\n              }" if (parenthesized_expression "((bVar20 & 0x37) == 6)" ( (binary_expression "(bVar20 & 0x37) == 6" (parenthesized_expression "(bVar20 & 0x37)" ( (binary_expression "bVar20 & 0x37" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00024180:\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n                }\n                if (plVar9->as_sym == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n                }\n                paVar27 = S_GET_SEGMENT(psVar38);\n                paVar28 = S_GET_SEGMENT(plVar9->as_sym);\n                if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }\n                vVar65 = S_GET_VALUE(psVar38);\n                vVar66 = S_GET_VALUE(plVar9->as_sym);\n                uVar16 = vVar65 - vVar66;\n                if ((uVar16 & 1) == 0) {\n                  (plVar7->ecoff_sym).asym.value = uVar16;\n                }\n                else {\n                  (plVar7->ecoff_sym).asym.value = uVar16 + 1;\n                }\n                paVar30 = symbol_get_bfdsym(plVar9->as_sym);\n                uVar12 = *(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4);\n                *(int *)&paVar30[1].value = (int)(plVar7->ecoff_sym).asym.value;\n                *(undefined4 *)((int)&paVar30[1].value + 4) = uVar12;\n                pfVar32 = plVar7->forward_ref;\n                goto joined_r0x000242a4;\n              }" { (labeled_statement "LAB_00024180:\n                if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n                }" statement_identifier : (if_statement "if (psVar38 == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n                }" if (parenthesized_expression "(psVar38 == (symbolS *)0x0)" ( (binary_expression "psVar38 == (symbolS *)0x0" identifier == (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n                }" { comment (expression_statement "as_abort("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");" (call_expression "as_abort("../../gas/ecoff.c",0x1042,"ecoff_build_symbols")" identifier (argument_list "("../../gas/ecoff.c",0x1042,"ecoff_build_symbols")" ( (string_literal ""../../gas/ecoff.c"" " string_content ") , number_literal , (string_literal ""ecoff_build_symbols"" " string_content ") ))) ;) }))) (if_statement "if (plVar9->as_sym == (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n                }" if (parenthesized_expression "(plVar9->as_sym == (symbolS *)0x0)" ( (binary_expression "plVar9->as_sym == (symbolS *)0x0" (field_expression "plVar9->as_sym" identifier -> field_identifier) == (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n                }" { comment (expression_statement "as_abort("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");" (call_expression "as_abort("../../gas/ecoff.c",0x1043,"ecoff_build_symbols")" identifier (argument_list "("../../gas/ecoff.c",0x1043,"ecoff_build_symbols")" ( (string_literal ""../../gas/ecoff.c"" " string_content ") , number_literal , (string_literal ""ecoff_build_symbols"" " string_content ") ))) ;) })) (expression_statement "paVar27 = S_GET_SEGMENT(psVar38);" (assignment_expression "paVar27 = S_GET_SEGMENT(psVar38)" identifier = (call_expression "S_GET_SEGMENT(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) ;) (expression_statement "paVar28 = S_GET_SEGMENT(plVar9->as_sym);" (assignment_expression "paVar28 = S_GET_SEGMENT(plVar9->as_sym)" identifier = (call_expression "S_GET_SEGMENT(plVar9->as_sym)" identifier (argument_list "(plVar9->as_sym)" ( (field_expression "plVar9->as_sym" identifier -> field_identifier) )))) ;) (if_statement "if (paVar27 != paVar28) {\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }" if (parenthesized_expression "(paVar27 != paVar28)" ( (binary_expression "paVar27 != paVar28" identifier != identifier) )) (compound_statement "{\n                  pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n                  as_warn(pcVar22);\n                }" { (expression_statement "pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);" (assignment_expression "pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5)" identifier = (cast_expression "(char *)dcgettext(0,".begin/.bend in different segments",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,".begin/.bend in different segments",5)" identifier (argument_list "(0,".begin/.bend in different segments",5)" ( number_literal , (string_literal "".begin/.bend in different segments"" " string_content ") , number_literal ))))) ;) (expression_statement "as_warn(pcVar22);" (call_expression "as_warn(pcVar22)" identifier (argument_list "(pcVar22)" ( identifier ))) ;) })) (expression_statement "vVar65 = S_GET_VALUE(psVar38);" (assignment_expression "vVar65 = S_GET_VALUE(psVar38)" identifier = (call_expression "S_GET_VALUE(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) ;) (expression_statement "vVar66 = S_GET_VALUE(plVar9->as_sym);" (assignment_expression "vVar66 = S_GET_VALUE(plVar9->as_sym)" identifier = (call_expression "S_GET_VALUE(plVar9->as_sym)" identifier (argument_list "(plVar9->as_sym)" ( (field_expression "plVar9->as_sym" identifier -> field_identifier) )))) ;) (expression_statement "uVar16 = vVar65 - vVar66;" (assignment_expression "uVar16 = vVar65 - vVar66" identifier = (binary_expression "vVar65 - vVar66" identifier - identifier)) ;) (if_statement "if ((uVar16 & 1) == 0) {\n                  (plVar7->ecoff_sym).asym.value = uVar16;\n                }\n                else {\n                  (plVar7->ecoff_sym).asym.value = uVar16 + 1;\n                }" if (parenthesized_expression "((uVar16 & 1) == 0)" ( (binary_expression "(uVar16 & 1) == 0" (parenthesized_expression "(uVar16 & 1)" ( (binary_expression "uVar16 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  (plVar7->ecoff_sym).asym.value = uVar16;\n                }" { (expression_statement "(plVar7->ecoff_sym).asym.value = uVar16;" (assignment_expression "(plVar7->ecoff_sym).asym.value = uVar16" (field_expression "(plVar7->ecoff_sym).asym.value" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) }) (else_clause "else {\n                  (plVar7->ecoff_sym).asym.value = uVar16 + 1;\n                }" else (compound_statement "{\n                  (plVar7->ecoff_sym).asym.value = uVar16 + 1;\n                }" { (expression_statement "(plVar7->ecoff_sym).asym.value = uVar16 + 1;" (assignment_expression "(plVar7->ecoff_sym).asym.value = uVar16 + 1" (field_expression "(plVar7->ecoff_sym).asym.value" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) }))) (expression_statement "paVar30 = symbol_get_bfdsym(plVar9->as_sym);" (assignment_expression "paVar30 = symbol_get_bfdsym(plVar9->as_sym)" identifier = (call_expression "symbol_get_bfdsym(plVar9->as_sym)" identifier (argument_list "(plVar9->as_sym)" ( (field_expression "plVar9->as_sym" identifier -> field_identifier) )))) ;) (expression_statement "uVar12 = *(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4);" (assignment_expression "uVar12 = *(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4)" * (cast_expression "(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(plVar7->ecoff_sym).asym.value + 4)" ( (binary_expression "(int)&(plVar7->ecoff_sym).asym.value + 4" (cast_expression "(int)&(plVar7->ecoff_sym).asym.value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(plVar7->ecoff_sym).asym.value" & (field_expression "(plVar7->ecoff_sym).asym.value" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (expression_statement "*(int *)&paVar30[1].value = (int)(plVar7->ecoff_sym).asym.value;" (assignment_expression "*(int *)&paVar30[1].value = (int)(plVar7->ecoff_sym).asym.value" (pointer_expression "*(int *)&paVar30[1].value" * (cast_expression "(int *)&paVar30[1].value" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&paVar30[1].value" & (field_expression "paVar30[1].value" (subscript_expression "paVar30[1]" identifier [ number_literal ]) . field_identifier)))) = (cast_expression "(int)(plVar7->ecoff_sym).asym.value" ( (type_descriptor "int" primitive_type) ) (field_expression "(plVar7->ecoff_sym).asym.value" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (expression_statement "*(undefined4 *)((int)&paVar30[1].value + 4) = uVar12;" (assignment_expression "*(undefined4 *)((int)&paVar30[1].value + 4) = uVar12" (pointer_expression "*(undefined4 *)((int)&paVar30[1].value + 4)" * (cast_expression "(undefined4 *)((int)&paVar30[1].value + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar30[1].value + 4)" ( (binary_expression "(int)&paVar30[1].value + 4" (cast_expression "(int)&paVar30[1].value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar30[1].value" & (field_expression "paVar30[1].value" (subscript_expression "paVar30[1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "pfVar32 = plVar7->forward_ref;" (assignment_expression "pfVar32 = plVar7->forward_ref" identifier = (field_expression "plVar7->forward_ref" identifier -> field_identifier)) ;) (goto_statement "goto joined_r0x000242a4;" goto statement_identifier ;) })) (expression_statement "pfVar32 = plVar7->forward_ref;" (assignment_expression "pfVar32 = plVar7->forward_ref" identifier = (field_expression "plVar7->forward_ref" identifier -> field_identifier)) ;) }))) (labeled_statement "joined_r0x000247a5:\n            if (pfVar32 != (forward *)0x0) {\nLAB_00023ff8:\n              AVar10 = (AUXU)local_9c->file[0].file_index;\n              do {\n                paVar53 = pfVar32->index_ptr;\n                pfVar32->ifd_ptr->data = AVar10;\n                (paVar53->data).dnLow = (paVar53->data).dnLow & 0xfffU | (int)local_a4 << 0xc;\n                pfVar32 = pfVar32->next;\n              } while (pfVar32 != (forward *)0x0);\n            }" statement_identifier : (if_statement "if (pfVar32 != (forward *)0x0) {\nLAB_00023ff8:\n              AVar10 = (AUXU)local_9c->file[0].file_index;\n              do {\n                paVar53 = pfVar32->index_ptr;\n                pfVar32->ifd_ptr->data = AVar10;\n                (paVar53->data).dnLow = (paVar53->data).dnLow & 0xfffU | (int)local_a4 << 0xc;\n                pfVar32 = pfVar32->next;\n              } while (pfVar32 != (forward *)0x0);\n            }" if (parenthesized_expression "(pfVar32 != (forward *)0x0)" ( (binary_expression "pfVar32 != (forward *)0x0" identifier != (cast_expression "(forward *)0x0" ( (type_descriptor "forward *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00023ff8:\n              AVar10 = (AUXU)local_9c->file[0].file_index;\n              do {\n                paVar53 = pfVar32->index_ptr;\n                pfVar32->ifd_ptr->data = AVar10;\n                (paVar53->data).dnLow = (paVar53->data).dnLow & 0xfffU | (int)local_a4 << 0xc;\n                pfVar32 = pfVar32->next;\n              } while (pfVar32 != (forward *)0x0);\n            }" { (labeled_statement "LAB_00023ff8:\n              AVar10 = (AUXU)local_9c->file[0].file_index;" statement_identifier : (expression_statement "AVar10 = (AUXU)local_9c->file[0].file_index;" (assignment_expression "AVar10 = (AUXU)local_9c->file[0].file_index" identifier = (cast_expression "(AUXU)local_9c->file[0].file_index" ( (type_descriptor "AUXU" type_identifier) ) (field_expression "local_9c->file[0].file_index" (subscript_expression "local_9c->file[0]" (field_expression "local_9c->file" identifier -> field_identifier) [ number_literal ]) . field_identifier))) ;)) (do_statement "do {\n                paVar53 = pfVar32->index_ptr;\n                pfVar32->ifd_ptr->data = AVar10;\n                (paVar53->data).dnLow = (paVar53->data).dnLow & 0xfffU | (int)local_a4 << 0xc;\n                pfVar32 = pfVar32->next;\n              } while (pfVar32 != (forward *)0x0);" do (compound_statement "{\n                paVar53 = pfVar32->index_ptr;\n                pfVar32->ifd_ptr->data = AVar10;\n                (paVar53->data).dnLow = (paVar53->data).dnLow & 0xfffU | (int)local_a4 << 0xc;\n                pfVar32 = pfVar32->next;\n              }" { (expression_statement "paVar53 = pfVar32->index_ptr;" (assignment_expression "paVar53 = pfVar32->index_ptr" identifier = (field_expression "pfVar32->index_ptr" identifier -> field_identifier)) ;) (expression_statement "pfVar32->ifd_ptr->data = AVar10;" (assignment_expression "pfVar32->ifd_ptr->data = AVar10" (field_expression "pfVar32->ifd_ptr->data" (field_expression "pfVar32->ifd_ptr" identifier -> field_identifier) -> field_identifier) = identifier) ;) (expression_statement "(paVar53->data).dnLow = (paVar53->data).dnLow & 0xfffU | (int)local_a4 << 0xc;" (assignment_expression "(paVar53->data).dnLow = (paVar53->data).dnLow & 0xfffU | (int)local_a4 << 0xc" (field_expression "(paVar53->data).dnLow" (parenthesized_expression "(paVar53->data)" ( (field_expression "paVar53->data" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(paVar53->data).dnLow & 0xfffU | (int)local_a4 << 0xc" (binary_expression "(paVar53->data).dnLow & 0xfffU" (field_expression "(paVar53->data).dnLow" (parenthesized_expression "(paVar53->data)" ( (field_expression "paVar53->data" identifier -> field_identifier) )) . field_identifier) & number_literal) | (binary_expression "(int)local_a4 << 0xc" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal))) ;) (expression_statement "pfVar32 = pfVar32->next;" (assignment_expression "pfVar32 = pfVar32->next" identifier = (field_expression "pfVar32->next" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(pfVar32 != (forward *)0x0)" ( (binary_expression "pfVar32 != (forward *)0x0" identifier != (cast_expression "(forward *)0x0" ( (type_descriptor "forward *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) }))) }))) (labeled_statement "LAB_0002402d:\n          uVar44 = (int)bufend - (int)local_a0->byte >> 0x1f;" statement_identifier : (expression_statement "uVar44 = (int)bufend - (int)local_a0->byte >> 0x1f;" (assignment_expression "uVar44 = (int)bufend - (int)local_a0->byte >> 0x1f" identifier = (binary_expression "(int)bufend - (int)local_a0->byte >> 0x1f" (binary_expression "(int)bufend - (int)local_a0->byte" (cast_expression "(int)bufend" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_a0->byte" ( (type_descriptor "int" primitive_type) ) (field_expression "local_a0->byte" identifier -> field_identifier))) >> number_literal)) ;)) (if_statement "if (uVar44 < uVar24 ||\n              uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)local_a0->byte) < uVar54)) {\n            local_a0 = (page *)ecoff_add_bytes(local_78,local_74,local_a0->byte,uVar54);\n          }" if (parenthesized_expression "(uVar44 < uVar24 ||\n              uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)local_a0->byte) < uVar54))" ( (binary_expression "uVar44 < uVar24 ||\n              uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)local_a0->byte) < uVar54)" (binary_expression "uVar44 < uVar24" identifier < identifier) || (binary_expression "uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)local_a0->byte) < uVar54)" (binary_expression "uVar44 - uVar24" identifier - identifier) < (call_expression "(uint)((uint)((int)bufend - (int)local_a0->byte) < uVar54)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)((int)bufend - (int)local_a0->byte) < uVar54)" ( (binary_expression "(uint)((int)bufend - (int)local_a0->byte) < uVar54" (call_expression "(uint)((int)bufend - (int)local_a0->byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)bufend - (int)local_a0->byte)" ( (binary_expression "(int)bufend - (int)local_a0->byte" (cast_expression "(int)bufend" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_a0->byte" ( (type_descriptor "int" primitive_type) ) (field_expression "local_a0->byte" identifier -> field_identifier))) ))) < identifier) ))))) )) (compound_statement "{\n            local_a0 = (page *)ecoff_add_bytes(local_78,local_74,local_a0->byte,uVar54);\n          }" { (expression_statement "local_a0 = (page *)ecoff_add_bytes(local_78,local_74,local_a0->byte,uVar54);" (assignment_expression "local_a0 = (page *)ecoff_add_bytes(local_78,local_74,local_a0->byte,uVar54)" identifier = (cast_expression "(page *)ecoff_add_bytes(local_78,local_74,local_a0->byte,uVar54)" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "ecoff_add_bytes(local_78,local_74,local_a0->byte,uVar54)" identifier (argument_list "(local_78,local_74,local_a0->byte,uVar54)" ( identifier , identifier , (field_expression "local_a0->byte" identifier -> field_identifier) , identifier ))))) ;) })) (expression_statement "(*p_Var6)(stdoutput,&(plVar7->ecoff_sym).asym,local_a0);" (call_expression "(*p_Var6)(stdoutput,&(plVar7->ecoff_sym).asym,local_a0)" (parenthesized_expression "(*p_Var6)" ( (pointer_expression "*p_Var6" * identifier) )) (argument_list "(stdoutput,&(plVar7->ecoff_sym).asym,local_a0)" ( identifier , (pointer_expression "&(plVar7->ecoff_sym).asym" & (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier)) , identifier ))) ;) (expression_statement "local_a0 = (page *)((int)local_a0 + uVar54);" (assignment_expression "local_a0 = (page *)((int)local_a0 + uVar54)" identifier = (cast_expression "(page *)((int)local_a0 + uVar54)" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a0 + uVar54)" ( (binary_expression "(int)local_a0 + uVar54" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "plVar7->sym_index = (long)local_a8;" (assignment_expression "plVar7->sym_index = (long)local_a8" (field_expression "plVar7->sym_index" identifier -> field_identifier) = (cast_expression "(long)local_a8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "peVar11 = plVar7->proc_ptr;" (assignment_expression "peVar11 = plVar7->proc_ptr" identifier = (field_expression "plVar7->proc_ptr" identifier -> field_identifier)) ;) (if_statement "if ((peVar11 != (ecoff_proc *)0x0) && (peVar11->sym == plVar7)) {\n            (peVar11->pdr).isym = (int)local_a8 - local_8c;\n          }" if (parenthesized_expression "((peVar11 != (ecoff_proc *)0x0) && (peVar11->sym == plVar7))" ( (binary_expression "(peVar11 != (ecoff_proc *)0x0) && (peVar11->sym == plVar7)" (parenthesized_expression "(peVar11 != (ecoff_proc *)0x0)" ( (binary_expression "peVar11 != (ecoff_proc *)0x0" identifier != (cast_expression "(ecoff_proc *)0x0" ( (type_descriptor "ecoff_proc *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(peVar11->sym == plVar7)" ( (binary_expression "peVar11->sym == plVar7" (field_expression "peVar11->sym" identifier -> field_identifier) == identifier) ))) )) (compound_statement "{\n            (peVar11->pdr).isym = (int)local_a8 - local_8c;\n          }" { (expression_statement "(peVar11->pdr).isym = (int)local_a8 - local_8c;" (assignment_expression "(peVar11->pdr).isym = (int)local_a8 - local_8c" (field_expression "(peVar11->pdr).isym" (parenthesized_expression "(peVar11->pdr)" ( (field_expression "peVar11->pdr" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(int)local_a8 - local_8c" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;) })) (expression_statement "local_a8 = (proc_t *)((int)local_a8 + 1);" (assignment_expression "local_a8 = (proc_t *)((int)local_a8 + 1)" identifier = (cast_expression "(proc_t *)((int)local_a8 + 1)" ( (type_descriptor "proc_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + 1)" ( (binary_expression "(int)local_a8 + 1" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((psVar38 != (symbolS *)0x0) &&\n             (peVar31 = symbol_get_obj(psVar38), peVar31->ecoff_symbol == plVar7)) {\n            if (((plVar7->ecoff_sym).asym.field_0xc & 0x37) == 6) {\n              *(uint *)&(plVar7->ecoff_sym).asym.field_0xc =\n                   *(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff |\n                   (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }" if (parenthesized_expression "((psVar38 != (symbolS *)0x0) &&\n             (peVar31 = symbol_get_obj(psVar38), peVar31->ecoff_symbol == plVar7))" ( (binary_expression "(psVar38 != (symbolS *)0x0) &&\n             (peVar31 = symbol_get_obj(psVar38), peVar31->ecoff_symbol == plVar7)" (parenthesized_expression "(psVar38 != (symbolS *)0x0)" ( (binary_expression "psVar38 != (symbolS *)0x0" identifier != (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(peVar31 = symbol_get_obj(psVar38), peVar31->ecoff_symbol == plVar7)" ( (comma_expression "peVar31 = symbol_get_obj(psVar38), peVar31->ecoff_symbol == plVar7" (assignment_expression "peVar31 = symbol_get_obj(psVar38)" identifier = (call_expression "symbol_get_obj(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) , (binary_expression "peVar31->ecoff_symbol == plVar7" (field_expression "peVar31->ecoff_symbol" identifier -> field_identifier) == identifier)) ))) )) (compound_statement "{\n            if (((plVar7->ecoff_sym).asym.field_0xc & 0x37) == 6) {\n              *(uint *)&(plVar7->ecoff_sym).asym.field_0xc =\n                   *(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff |\n                   (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }" { (if_statement "if (((plVar7->ecoff_sym).asym.field_0xc & 0x37) == 6) {\n              *(uint *)&(plVar7->ecoff_sym).asym.field_0xc =\n                   *(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff |\n                   (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }" if (parenthesized_expression "(((plVar7->ecoff_sym).asym.field_0xc & 0x37) == 6)" ( (binary_expression "((plVar7->ecoff_sym).asym.field_0xc & 0x37) == 6" (parenthesized_expression "((plVar7->ecoff_sym).asym.field_0xc & 0x37)" ( (binary_expression "(plVar7->ecoff_sym).asym.field_0xc & 0x37" (field_expression "(plVar7->ecoff_sym).asym.field_0xc" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n              *(uint *)&(plVar7->ecoff_sym).asym.field_0xc =\n                   *(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff |\n                   (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }" { (expression_statement "*(uint *)&(plVar7->ecoff_sym).asym.field_0xc =\n                   *(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff |\n                   (((int)local_a8 - local_8c) + -1) * 0x1000;" (assignment_expression "*(uint *)&(plVar7->ecoff_sym).asym.field_0xc =\n                   *(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff |\n                   (((int)local_a8 - local_8c) + -1) * 0x1000" (pointer_expression "*(uint *)&(plVar7->ecoff_sym).asym.field_0xc" * (cast_expression "(uint *)&(plVar7->ecoff_sym).asym.field_0xc" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(plVar7->ecoff_sym).asym.field_0xc" & (field_expression "(plVar7->ecoff_sym).asym.field_0xc" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier)))) = (binary_expression "*(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff |\n                   (((int)local_a8 - local_8c) + -1) * 0x1000" (binary_expression "*(uint *)&(plVar7->ecoff_sym).asym.field_0xc & 0xfff" (pointer_expression "*(uint *)&(plVar7->ecoff_sym).asym.field_0xc" * (cast_expression "(uint *)&(plVar7->ecoff_sym).asym.field_0xc" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(plVar7->ecoff_sym).asym.field_0xc" & (field_expression "(plVar7->ecoff_sym).asym.field_0xc" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier)))) & number_literal) | (binary_expression "(((int)local_a8 - local_8c) + -1) * 0x1000" (parenthesized_expression "(((int)local_a8 - local_8c) + -1)" ( (binary_expression "((int)local_a8 - local_8c) + -1" (parenthesized_expression "((int)local_a8 - local_8c)" ( (binary_expression "(int)local_a8 - local_8c" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )) + number_literal) )) * number_literal))) ;) })) (goto_statement "goto LAB_00024347;" goto statement_identifier ;) })) }) (else_clause "else {\n          if ((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff) == 0x47) {\n            if (plVar7->proc_ptr == (ecoff_proc *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n            }\n            psVar8 = plVar7->proc_ptr->sym->as_sym;\n            paVar27 = S_GET_SEGMENT(psVar38);\n            paVar28 = S_GET_SEGMENT(psVar8);\n            if (paVar27 != paVar28) {\n              pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n              as_warn(pcVar22);\n            }\n            vVar65 = S_GET_VALUE(psVar38);\n            vVar66 = S_GET_VALUE(psVar8);\n            (plVar7->ecoff_sym).asym.value = vVar65 - vVar66;\n          }\n          else {\n            vVar65 = S_GET_VALUE(psVar38);\n            paVar27 = S_GET_SEGMENT(psVar38);\n            ptVar33 = *(tag **)&plVar7->addend;\n            uVar44 = (int)&(*(tag **)&plVar7->addend)->free + (uint)vVar65;\n            bVar17 = paVar27->vma;\n            iVar29 = *(int *)((int)&paVar27->vma + 4);\n            *(uint *)&(plVar7->ecoff_sym).asym.value = uVar44 + (int)paVar27->vma;\n            *(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                 (int)&(*(tag **)((int)&plVar7->addend + 4))->free +\n                 (uint)CARRY4(uVar44,(uint)bVar17) +\n                 iVar29 + (uint)CARRY4((uint)vVar65,(uint)ptVar33) + (int)(vVar65 >> 0x20);\n          }\n          iVar29 = S_IS_WEAK(psVar38);\n          *(byte *)&plVar7->ecoff_sym =\n               *(byte *)&plVar7->ecoff_sym & 0xfb | ((byte)iVar29 & 1) * '\x04';\n          if ((((((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 6) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) &&\n              (iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0)) &&\n             (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) {\n            (plVar7->ecoff_sym).asym.field_0xc = (plVar7->ecoff_sym).asym.field_0xc & 0xc0 | 0xe;\n          }\n          if (((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff) == 0) &&\n             ((uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc,\n              (uVar44 & 0xfff00) != 0x8f300 || ((uVar44 & 0xfffdf) != 0x8f3c0)))) {\n            paVar27 = S_GET_SEGMENT(psVar38);\n            pbVar52 = (byte *)paVar27->name;\n            if (((*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300) ||\n               (((iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0 &&\n                 (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n                (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)))) {\n              bVar20 = (paVar27 == text_section) * '\x03' + 2;\n            }\n            else {\n              paVar30 = symbol_get_bfdsym(psVar38);\n              bVar20 = (-((paVar30->flags & 8) == 0) & 0xfbU) + 6;\n            }\n            iVar29 = S_IS_DEFINED(psVar38);\n            if (iVar29 == 0) {\n              peVar31 = symbol_get_obj(psVar38);\n              iVar29 = *(int *)((int)&peVar31->ecoff_extern_size + 4);\n              uVar49 = (uint)peVar31->ecoff_extern_size;\n              if ((iVar29 == 0 && uVar49 == 0) ||\n                 (uVar44 = bfd_get_gp_size(stdoutput),\n                 iVar29 != 0 || (uint)-iVar29 < (uint)(uVar44 < uVar49))) {\n                bVar42 = 6;\n              }\n              else {\n                *(uint *)&(plVar7->ecoff_sym).asym.value = uVar49;\n                bVar42 = 0x15;\n                *(int *)((int)&(plVar7->ecoff_sym).asym.value + 4) = iVar29;\n              }\n              paVar30 = symbol_get_bfdsym(psVar38);\n              uVar44 = (uint)bVar42;\n              *(uint *)&paVar30[1].value = uVar49;\n              *(int *)((int)&paVar30[1].value + 4) = iVar29;\n            }\n            else {\n              iVar29 = S_IS_COMMON(psVar38);\n              if (iVar29 == 0) {\n                uVar44 = 1;\n                if (paVar27 != text_section) {\n                  uVar44 = 2;\n                  bVar62 = paVar27 < data_section;\n                  bVar63 = paVar27 == data_section;\n                  if (!bVar63) {\n                    iVar29 = 7;\n                    uVar44 = 0xf;\n                    pbVar51 = pbVar52;\n                    pbVar58 = (byte *)".rdata";\n                    do {\n                      if (iVar29 == 0) break;\n                      iVar29 = iVar29 + -1;\n                      bVar62 = *pbVar51 < *pbVar58;\n                      bVar63 = *pbVar51 == *pbVar58;\n                      pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                      pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                    } while (bVar63);\n                    bVar61 = false;\n                    bVar62 = (!bVar62 && !bVar63) == bVar62;\n                    if (!bVar62) {\n                      iVar29 = 8;\n                      pbVar51 = pbVar52;\n                      pbVar58 = (byte *)".rodata";\n                      do {\n                        if (iVar29 == 0) break;\n                        iVar29 = iVar29 + -1;\n                        bVar61 = *pbVar51 < *pbVar58;\n                        bVar62 = *pbVar51 == *pbVar58;\n                        pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                        pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                      } while (bVar62);\n                      bVar63 = false;\n                      bVar62 = (!bVar61 && !bVar62) == bVar61;\n                      if (!bVar62) {\n                        iVar29 = 7;\n                        uVar44 = 0xd;\n                        pbVar51 = pbVar52;\n                        pbVar58 = (byte *)".sdata";\n                        do {\n                          if (iVar29 == 0) break;\n                          iVar29 = iVar29 + -1;\n                          bVar63 = *pbVar51 < *pbVar58;\n                          bVar62 = *pbVar51 == *pbVar58;\n                          pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                          pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                        } while (bVar62);\n                        if ((!bVar63 && !bVar62) != bVar63) {\n                          uVar44 = 3;\n                          bVar62 = paVar27 < bss_section;\n                          bVar63 = paVar27 == bss_section;\n                          if (!bVar63) {\n                            iVar29 = 6;\n                            uVar44 = 0xe;\n                            pbVar51 = (byte *)".sbss";\n                            do {\n                              if (iVar29 == 0) break;\n                              iVar29 = iVar29 + -1;\n                              bVar62 = *pbVar52 < *pbVar51;\n                              bVar63 = *pbVar52 == *pbVar51;\n                              pbVar52 = pbVar52 + (uint)bVar64 * -2 + 1;\n                              pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                            } while (bVar63);\n                            if ((!bVar62 && !bVar63) != bVar62) {\n                              uVar44 = (uint)(paVar27 == paVar23) * 3 + 2;\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                vVar65 = S_GET_VALUE(psVar38);\n                if (vVar65 != 0) {\n                  vVar65 = S_GET_VALUE(psVar38);\n                  iVar29 = (int)(vVar65 >> 0x20);\n                  uVar49 = bfd_get_gp_size(stdoutput);\n                  uVar44 = 0x12;\n                  if (iVar29 == 0 && (uint)(uVar49 < (uint)vVar65) <= (uint)-iVar29)\n                  goto LAB_00023df1;\n                }\n                uVar44 = 0x11;\n              }\n            }\nLAB_00023df1:\n            (plVar7->ecoff_sym).asym.field_0xc =\n                 (plVar7->ecoff_sym).asym.field_0xc & 0xc0 | bVar20 & 0x3f;\n            *(ushort *)&(plVar7->ecoff_sym).asym.field_0xc =\n                 *(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0xf83f | (ushort)(uVar44 << 6);\n          }\n          iVar29 = S_IS_EXTERNAL(psVar38);\n          if (((((iVar29 == 0) && (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) ||\n              ((plVar7->proc_ptr != (ecoff_proc *)0x0 ||\n               (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 0)))) ||\n             ((*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300)) {\n            iVar29 = S_IS_COMMON(psVar38);\n            if (iVar29 == 0) {\n              if (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) != 8) {\n                ptVar33 = (tag *)plVar7->name;\n                pcVar22 = strchr((char *)ptVar33,1);\n                if (pcVar22 != (char *)0x0) goto LAB_00023e7a;\n                sVar34 = add_string(&local_9c->file[0].strings,local_9c->file[0].str_hash,\n                                    (char *)ptVar33,(shash_t **)0x0);\n                (plVar7->ecoff_sym).asym.iss = sVar34;\n                plVar9 = plVar7->begin_ptr;\n                if (plVar9 != (localsym *)0x0) goto LAB_00023e89;\n                pfVar32 = plVar7->forward_ref;\n                local_a4 = (page *)((int)local_a8 - local_8c);\n                goto joined_r0x000247a5;\n              }\nLAB_00023e7a:\n              plVar9 = plVar7->begin_ptr;\n              if (plVar9 != (localsym *)0x0) goto LAB_00023e89;\n              pfVar32 = plVar7->forward_ref;\n              if (pfVar32 != (forward *)0x0) {\n                local_a4 = (page *)((int)local_a8 - local_8c);\n                goto LAB_00023ff8;\n              }\n              goto LAB_0002402d;\n            }\n          }\n          else {\n            S_IS_COMMON(psVar38);\n          }\n          if (plVar7->begin_ptr != (localsym *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (plVar7->forward_ref != (forward *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          peVar31 = symbol_get_obj(psVar38);\n          if (plVar7 == peVar31->ecoff_symbol) {\nLAB_00024347:\n            (plVar7->ecoff_sym).ifd = local_9c->file[0].file_index;\n            iVar29 = S_IS_EXTERNAL(psVar38);\n            if ((iVar29 != 0) || (iVar29 = S_IS_WEAK(psVar38), iVar29 != 0)) {\n              local_9c->ubyte[0x44] = local_9c->ubyte[0x44] & 0xdf;\n            }\n          }\n        }" else (compound_statement "{\n          if ((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff) == 0x47) {\n            if (plVar7->proc_ptr == (ecoff_proc *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n            }\n            psVar8 = plVar7->proc_ptr->sym->as_sym;\n            paVar27 = S_GET_SEGMENT(psVar38);\n            paVar28 = S_GET_SEGMENT(psVar8);\n            if (paVar27 != paVar28) {\n              pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n              as_warn(pcVar22);\n            }\n            vVar65 = S_GET_VALUE(psVar38);\n            vVar66 = S_GET_VALUE(psVar8);\n            (plVar7->ecoff_sym).asym.value = vVar65 - vVar66;\n          }\n          else {\n            vVar65 = S_GET_VALUE(psVar38);\n            paVar27 = S_GET_SEGMENT(psVar38);\n            ptVar33 = *(tag **)&plVar7->addend;\n            uVar44 = (int)&(*(tag **)&plVar7->addend)->free + (uint)vVar65;\n            bVar17 = paVar27->vma;\n            iVar29 = *(int *)((int)&paVar27->vma + 4);\n            *(uint *)&(plVar7->ecoff_sym).asym.value = uVar44 + (int)paVar27->vma;\n            *(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                 (int)&(*(tag **)((int)&plVar7->addend + 4))->free +\n                 (uint)CARRY4(uVar44,(uint)bVar17) +\n                 iVar29 + (uint)CARRY4((uint)vVar65,(uint)ptVar33) + (int)(vVar65 >> 0x20);\n          }\n          iVar29 = S_IS_WEAK(psVar38);\n          *(byte *)&plVar7->ecoff_sym =\n               *(byte *)&plVar7->ecoff_sym & 0xfb | ((byte)iVar29 & 1) * '\x04';\n          if ((((((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 6) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) &&\n              (iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0)) &&\n             (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) {\n            (plVar7->ecoff_sym).asym.field_0xc = (plVar7->ecoff_sym).asym.field_0xc & 0xc0 | 0xe;\n          }\n          if (((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff) == 0) &&\n             ((uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc,\n              (uVar44 & 0xfff00) != 0x8f300 || ((uVar44 & 0xfffdf) != 0x8f3c0)))) {\n            paVar27 = S_GET_SEGMENT(psVar38);\n            pbVar52 = (byte *)paVar27->name;\n            if (((*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300) ||\n               (((iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0 &&\n                 (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n                (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)))) {\n              bVar20 = (paVar27 == text_section) * '\x03' + 2;\n            }\n            else {\n              paVar30 = symbol_get_bfdsym(psVar38);\n              bVar20 = (-((paVar30->flags & 8) == 0) & 0xfbU) + 6;\n            }\n            iVar29 = S_IS_DEFINED(psVar38);\n            if (iVar29 == 0) {\n              peVar31 = symbol_get_obj(psVar38);\n              iVar29 = *(int *)((int)&peVar31->ecoff_extern_size + 4);\n              uVar49 = (uint)peVar31->ecoff_extern_size;\n              if ((iVar29 == 0 && uVar49 == 0) ||\n                 (uVar44 = bfd_get_gp_size(stdoutput),\n                 iVar29 != 0 || (uint)-iVar29 < (uint)(uVar44 < uVar49))) {\n                bVar42 = 6;\n              }\n              else {\n                *(uint *)&(plVar7->ecoff_sym).asym.value = uVar49;\n                bVar42 = 0x15;\n                *(int *)((int)&(plVar7->ecoff_sym).asym.value + 4) = iVar29;\n              }\n              paVar30 = symbol_get_bfdsym(psVar38);\n              uVar44 = (uint)bVar42;\n              *(uint *)&paVar30[1].value = uVar49;\n              *(int *)((int)&paVar30[1].value + 4) = iVar29;\n            }\n            else {\n              iVar29 = S_IS_COMMON(psVar38);\n              if (iVar29 == 0) {\n                uVar44 = 1;\n                if (paVar27 != text_section) {\n                  uVar44 = 2;\n                  bVar62 = paVar27 < data_section;\n                  bVar63 = paVar27 == data_section;\n                  if (!bVar63) {\n                    iVar29 = 7;\n                    uVar44 = 0xf;\n                    pbVar51 = pbVar52;\n                    pbVar58 = (byte *)".rdata";\n                    do {\n                      if (iVar29 == 0) break;\n                      iVar29 = iVar29 + -1;\n                      bVar62 = *pbVar51 < *pbVar58;\n                      bVar63 = *pbVar51 == *pbVar58;\n                      pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                      pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                    } while (bVar63);\n                    bVar61 = false;\n                    bVar62 = (!bVar62 && !bVar63) == bVar62;\n                    if (!bVar62) {\n                      iVar29 = 8;\n                      pbVar51 = pbVar52;\n                      pbVar58 = (byte *)".rodata";\n                      do {\n                        if (iVar29 == 0) break;\n                        iVar29 = iVar29 + -1;\n                        bVar61 = *pbVar51 < *pbVar58;\n                        bVar62 = *pbVar51 == *pbVar58;\n                        pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                        pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                      } while (bVar62);\n                      bVar63 = false;\n                      bVar62 = (!bVar61 && !bVar62) == bVar61;\n                      if (!bVar62) {\n                        iVar29 = 7;\n                        uVar44 = 0xd;\n                        pbVar51 = pbVar52;\n                        pbVar58 = (byte *)".sdata";\n                        do {\n                          if (iVar29 == 0) break;\n                          iVar29 = iVar29 + -1;\n                          bVar63 = *pbVar51 < *pbVar58;\n                          bVar62 = *pbVar51 == *pbVar58;\n                          pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                          pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                        } while (bVar62);\n                        if ((!bVar63 && !bVar62) != bVar63) {\n                          uVar44 = 3;\n                          bVar62 = paVar27 < bss_section;\n                          bVar63 = paVar27 == bss_section;\n                          if (!bVar63) {\n                            iVar29 = 6;\n                            uVar44 = 0xe;\n                            pbVar51 = (byte *)".sbss";\n                            do {\n                              if (iVar29 == 0) break;\n                              iVar29 = iVar29 + -1;\n                              bVar62 = *pbVar52 < *pbVar51;\n                              bVar63 = *pbVar52 == *pbVar51;\n                              pbVar52 = pbVar52 + (uint)bVar64 * -2 + 1;\n                              pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                            } while (bVar63);\n                            if ((!bVar62 && !bVar63) != bVar62) {\n                              uVar44 = (uint)(paVar27 == paVar23) * 3 + 2;\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                vVar65 = S_GET_VALUE(psVar38);\n                if (vVar65 != 0) {\n                  vVar65 = S_GET_VALUE(psVar38);\n                  iVar29 = (int)(vVar65 >> 0x20);\n                  uVar49 = bfd_get_gp_size(stdoutput);\n                  uVar44 = 0x12;\n                  if (iVar29 == 0 && (uint)(uVar49 < (uint)vVar65) <= (uint)-iVar29)\n                  goto LAB_00023df1;\n                }\n                uVar44 = 0x11;\n              }\n            }\nLAB_00023df1:\n            (plVar7->ecoff_sym).asym.field_0xc =\n                 (plVar7->ecoff_sym).asym.field_0xc & 0xc0 | bVar20 & 0x3f;\n            *(ushort *)&(plVar7->ecoff_sym).asym.field_0xc =\n                 *(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0xf83f | (ushort)(uVar44 << 6);\n          }\n          iVar29 = S_IS_EXTERNAL(psVar38);\n          if (((((iVar29 == 0) && (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) ||\n              ((plVar7->proc_ptr != (ecoff_proc *)0x0 ||\n               (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 0)))) ||\n             ((*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300)) {\n            iVar29 = S_IS_COMMON(psVar38);\n            if (iVar29 == 0) {\n              if (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) != 8) {\n                ptVar33 = (tag *)plVar7->name;\n                pcVar22 = strchr((char *)ptVar33,1);\n                if (pcVar22 != (char *)0x0) goto LAB_00023e7a;\n                sVar34 = add_string(&local_9c->file[0].strings,local_9c->file[0].str_hash,\n                                    (char *)ptVar33,(shash_t **)0x0);\n                (plVar7->ecoff_sym).asym.iss = sVar34;\n                plVar9 = plVar7->begin_ptr;\n                if (plVar9 != (localsym *)0x0) goto LAB_00023e89;\n                pfVar32 = plVar7->forward_ref;\n                local_a4 = (page *)((int)local_a8 - local_8c);\n                goto joined_r0x000247a5;\n              }\nLAB_00023e7a:\n              plVar9 = plVar7->begin_ptr;\n              if (plVar9 != (localsym *)0x0) goto LAB_00023e89;\n              pfVar32 = plVar7->forward_ref;\n              if (pfVar32 != (forward *)0x0) {\n                local_a4 = (page *)((int)local_a8 - local_8c);\n                goto LAB_00023ff8;\n              }\n              goto LAB_0002402d;\n            }\n          }\n          else {\n            S_IS_COMMON(psVar38);\n          }\n          if (plVar7->begin_ptr != (localsym *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (plVar7->forward_ref != (forward *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          peVar31 = symbol_get_obj(psVar38);\n          if (plVar7 == peVar31->ecoff_symbol) {\nLAB_00024347:\n            (plVar7->ecoff_sym).ifd = local_9c->file[0].file_index;\n            iVar29 = S_IS_EXTERNAL(psVar38);\n            if ((iVar29 != 0) || (iVar29 = S_IS_WEAK(psVar38), iVar29 != 0)) {\n              local_9c->ubyte[0x44] = local_9c->ubyte[0x44] & 0xdf;\n            }\n          }\n        }" { (if_statement "if ((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff) == 0x47) {\n            if (plVar7->proc_ptr == (ecoff_proc *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n            }\n            psVar8 = plVar7->proc_ptr->sym->as_sym;\n            paVar27 = S_GET_SEGMENT(psVar38);\n            paVar28 = S_GET_SEGMENT(psVar8);\n            if (paVar27 != paVar28) {\n              pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n              as_warn(pcVar22);\n            }\n            vVar65 = S_GET_VALUE(psVar38);\n            vVar66 = S_GET_VALUE(psVar8);\n            (plVar7->ecoff_sym).asym.value = vVar65 - vVar66;\n          }\n          else {\n            vVar65 = S_GET_VALUE(psVar38);\n            paVar27 = S_GET_SEGMENT(psVar38);\n            ptVar33 = *(tag **)&plVar7->addend;\n            uVar44 = (int)&(*(tag **)&plVar7->addend)->free + (uint)vVar65;\n            bVar17 = paVar27->vma;\n            iVar29 = *(int *)((int)&paVar27->vma + 4);\n            *(uint *)&(plVar7->ecoff_sym).asym.value = uVar44 + (int)paVar27->vma;\n            *(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                 (int)&(*(tag **)((int)&plVar7->addend + 4))->free +\n                 (uint)CARRY4(uVar44,(uint)bVar17) +\n                 iVar29 + (uint)CARRY4((uint)vVar65,(uint)ptVar33) + (int)(vVar65 >> 0x20);\n          }" if (parenthesized_expression "((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff) == 0x47)" ( (binary_expression "(*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff) == 0x47" (parenthesized_expression "(*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff)" ( (binary_expression "*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff" (pointer_expression "*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc" * (cast_expression "(ushort *)&(plVar7->ecoff_sym).asym.field_0xc" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(plVar7->ecoff_sym).asym.field_0xc" & (field_expression "(plVar7->ecoff_sym).asym.field_0xc" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier)))) & number_literal) )) == number_literal) )) (compound_statement "{\n            if (plVar7->proc_ptr == (ecoff_proc *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n            }\n            psVar8 = plVar7->proc_ptr->sym->as_sym;\n            paVar27 = S_GET_SEGMENT(psVar38);\n            paVar28 = S_GET_SEGMENT(psVar8);\n            if (paVar27 != paVar28) {\n              pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n              as_warn(pcVar22);\n            }\n            vVar65 = S_GET_VALUE(psVar38);\n            vVar66 = S_GET_VALUE(psVar8);\n            (plVar7->ecoff_sym).asym.value = vVar65 - vVar66;\n          }" { (if_statement "if (plVar7->proc_ptr == (ecoff_proc *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n            }" if (parenthesized_expression "(plVar7->proc_ptr == (ecoff_proc *)0x0)" ( (binary_expression "plVar7->proc_ptr == (ecoff_proc *)0x0" (field_expression "plVar7->proc_ptr" identifier -> field_identifier) == (cast_expression "(ecoff_proc *)0x0" ( (type_descriptor "ecoff_proc *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n            }" { comment (expression_statement "as_abort("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");" (call_expression "as_abort("../../gas/ecoff.c",0xf85,"ecoff_build_symbols")" identifier (argument_list "("../../gas/ecoff.c",0xf85,"ecoff_build_symbols")" ( (string_literal ""../../gas/ecoff.c"" " string_content ") , number_literal , (string_literal ""ecoff_build_symbols"" " string_content ") ))) ;) })) (expression_statement "psVar8 = plVar7->proc_ptr->sym->as_sym;" (assignment_expression "psVar8 = plVar7->proc_ptr->sym->as_sym" identifier = (field_expression "plVar7->proc_ptr->sym->as_sym" (field_expression "plVar7->proc_ptr->sym" (field_expression "plVar7->proc_ptr" identifier -> field_identifier) -> field_identifier) -> field_identifier)) ;) (expression_statement "paVar27 = S_GET_SEGMENT(psVar38);" (assignment_expression "paVar27 = S_GET_SEGMENT(psVar38)" identifier = (call_expression "S_GET_SEGMENT(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) ;) (expression_statement "paVar28 = S_GET_SEGMENT(psVar8);" (assignment_expression "paVar28 = S_GET_SEGMENT(psVar8)" identifier = (call_expression "S_GET_SEGMENT(psVar8)" identifier (argument_list "(psVar8)" ( identifier )))) ;) (if_statement "if (paVar27 != paVar28) {\n              pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n              as_warn(pcVar22);\n            }" if (parenthesized_expression "(paVar27 != paVar28)" ( (binary_expression "paVar27 != paVar28" identifier != identifier) )) (compound_statement "{\n              pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);\n              as_warn(pcVar22);\n            }" { (expression_statement "pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5);" (assignment_expression "pcVar22 = (char *)dcgettext(0,".begin/.bend in different segments",5)" identifier = (cast_expression "(char *)dcgettext(0,".begin/.bend in different segments",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,".begin/.bend in different segments",5)" identifier (argument_list "(0,".begin/.bend in different segments",5)" ( number_literal , (string_literal "".begin/.bend in different segments"" " string_content ") , number_literal ))))) ;) (expression_statement "as_warn(pcVar22);" (call_expression "as_warn(pcVar22)" identifier (argument_list "(pcVar22)" ( identifier ))) ;) })) (expression_statement "vVar65 = S_GET_VALUE(psVar38);" (assignment_expression "vVar65 = S_GET_VALUE(psVar38)" identifier = (call_expression "S_GET_VALUE(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) ;) (expression_statement "vVar66 = S_GET_VALUE(psVar8);" (assignment_expression "vVar66 = S_GET_VALUE(psVar8)" identifier = (call_expression "S_GET_VALUE(psVar8)" identifier (argument_list "(psVar8)" ( identifier )))) ;) (expression_statement "(plVar7->ecoff_sym).asym.value = vVar65 - vVar66;" (assignment_expression "(plVar7->ecoff_sym).asym.value = vVar65 - vVar66" (field_expression "(plVar7->ecoff_sym).asym.value" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (binary_expression "vVar65 - vVar66" identifier - identifier)) ;) }) (else_clause "else {\n            vVar65 = S_GET_VALUE(psVar38);\n            paVar27 = S_GET_SEGMENT(psVar38);\n            ptVar33 = *(tag **)&plVar7->addend;\n            uVar44 = (int)&(*(tag **)&plVar7->addend)->free + (uint)vVar65;\n            bVar17 = paVar27->vma;\n            iVar29 = *(int *)((int)&paVar27->vma + 4);\n            *(uint *)&(plVar7->ecoff_sym).asym.value = uVar44 + (int)paVar27->vma;\n            *(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                 (int)&(*(tag **)((int)&plVar7->addend + 4))->free +\n                 (uint)CARRY4(uVar44,(uint)bVar17) +\n                 iVar29 + (uint)CARRY4((uint)vVar65,(uint)ptVar33) + (int)(vVar65 >> 0x20);\n          }" else (compound_statement "{\n            vVar65 = S_GET_VALUE(psVar38);\n            paVar27 = S_GET_SEGMENT(psVar38);\n            ptVar33 = *(tag **)&plVar7->addend;\n            uVar44 = (int)&(*(tag **)&plVar7->addend)->free + (uint)vVar65;\n            bVar17 = paVar27->vma;\n            iVar29 = *(int *)((int)&paVar27->vma + 4);\n            *(uint *)&(plVar7->ecoff_sym).asym.value = uVar44 + (int)paVar27->vma;\n            *(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                 (int)&(*(tag **)((int)&plVar7->addend + 4))->free +\n                 (uint)CARRY4(uVar44,(uint)bVar17) +\n                 iVar29 + (uint)CARRY4((uint)vVar65,(uint)ptVar33) + (int)(vVar65 >> 0x20);\n          }" { (expression_statement "vVar65 = S_GET_VALUE(psVar38);" (assignment_expression "vVar65 = S_GET_VALUE(psVar38)" identifier = (call_expression "S_GET_VALUE(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) ;) (expression_statement "paVar27 = S_GET_SEGMENT(psVar38);" (assignment_expression "paVar27 = S_GET_SEGMENT(psVar38)" identifier = (call_expression "S_GET_SEGMENT(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) ;) (expression_statement "ptVar33 = *(tag **)&plVar7->addend;" (assignment_expression "ptVar33 = *(tag **)&plVar7->addend" identifier = (pointer_expression "*(tag **)&plVar7->addend" * (cast_expression "(tag **)&plVar7->addend" ( (type_descriptor "tag **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&plVar7->addend" & (field_expression "plVar7->addend" identifier -> field_identifier))))) ;) (expression_statement "uVar44 = (int)&(*(tag **)&plVar7->addend)->free + (uint)vVar65;" (assignment_expression "uVar44 = (int)&(*(tag **)&plVar7->addend)->free + (uint)vVar65" identifier = (binary_expression "(int)&(*(tag **)&plVar7->addend)->free + (uint)vVar65" (cast_expression "(int)&(*(tag **)&plVar7->addend)->free" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(*(tag **)&plVar7->addend)->free" & (field_expression "(*(tag **)&plVar7->addend)->free" (parenthesized_expression "(*(tag **)&plVar7->addend)" ( (pointer_expression "*(tag **)&plVar7->addend" * (cast_expression "(tag **)&plVar7->addend" ( (type_descriptor "tag **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&plVar7->addend" & (field_expression "plVar7->addend" identifier -> field_identifier)))) )) -> field_identifier))) + (cast_expression "(uint)vVar65" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "bVar17 = paVar27->vma;" (assignment_expression "bVar17 = paVar27->vma" identifier = (field_expression "paVar27->vma" identifier -> field_identifier)) ;) (expression_statement "iVar29 = *(int *)((int)&paVar27->vma + 4);" (assignment_expression "iVar29 = *(int *)((int)&paVar27->vma + 4)" identifier = (pointer_expression "*(int *)((int)&paVar27->vma + 4)" * (cast_expression "(int *)((int)&paVar27->vma + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar27->vma + 4)" ( (binary_expression "(int)&paVar27->vma + 4" (cast_expression "(int)&paVar27->vma" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar27->vma" & (field_expression "paVar27->vma" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "*(uint *)&(plVar7->ecoff_sym).asym.value = uVar44 + (int)paVar27->vma;" (assignment_expression "*(uint *)&(plVar7->ecoff_sym).asym.value = uVar44 + (int)paVar27->vma" (pointer_expression "*(uint *)&(plVar7->ecoff_sym).asym.value" * (cast_expression "(uint *)&(plVar7->ecoff_sym).asym.value" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(plVar7->ecoff_sym).asym.value" & (field_expression "(plVar7->ecoff_sym).asym.value" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier)))) = (binary_expression "uVar44 + (int)paVar27->vma" identifier + (cast_expression "(int)paVar27->vma" ( (type_descriptor "int" primitive_type) ) (field_expression "paVar27->vma" identifier -> field_identifier)))) ;) (expression_statement "*(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                 (int)&(*(tag **)((int)&plVar7->addend + 4))->free +\n                 (uint)CARRY4(uVar44,(uint)bVar17) +\n                 iVar29 + (uint)CARRY4((uint)vVar65,(uint)ptVar33) + (int)(vVar65 >> 0x20);" (assignment_expression "*(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4) =\n                 (int)&(*(tag **)((int)&plVar7->addend + 4))->free +\n                 (uint)CARRY4(uVar44,(uint)bVar17) +\n                 iVar29 + (uint)CARRY4((uint)vVar65,(uint)ptVar33) + (int)(vVar65 >> 0x20)" (pointer_expression "*(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4)" * (cast_expression "(uint *)((int)&(plVar7->ecoff_sym).asym.value + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(plVar7->ecoff_sym).asym.value + 4)" ( (binary_expression "(int)&(plVar7->ecoff_sym).asym.value + 4" (cast_expression "(int)&(plVar7->ecoff_sym).asym.value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(plVar7->ecoff_sym).asym.value" & (field_expression "(plVar7->ecoff_sym).asym.value" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) )))) = (binary_expression "(int)&(*(tag **)((int)&plVar7->addend + 4))->free +\n                 (uint)CARRY4(uVar44,(uint)bVar17) +\n                 iVar29 + (uint)CARRY4((uint)vVar65,(uint)ptVar33) + (int)(vVar65 >> 0x20)" (binary_expression "(int)&(*(tag **)((int)&plVar7->addend + 4))->free +\n                 (uint)CARRY4(uVar44,(uint)bVar17) +\n                 iVar29 + (uint)CARRY4((uint)vVar65,(uint)ptVar33)" (binary_expression "(int)&(*(tag **)((int)&plVar7->addend + 4))->free +\n                 (uint)CARRY4(uVar44,(uint)bVar17) +\n                 iVar29" (binary_expression "(int)&(*(tag **)((int)&plVar7->addend + 4))->free +\n                 (uint)CARRY4(uVar44,(uint)bVar17)" (cast_expression "(int)&(*(tag **)((int)&plVar7->addend + 4))->free" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(*(tag **)((int)&plVar7->addend + 4))->free" & (field_expression "(*(tag **)((int)&plVar7->addend + 4))->free" (parenthesized_expression "(*(tag **)((int)&plVar7->addend + 4))" ( (pointer_expression "*(tag **)((int)&plVar7->addend + 4)" * (cast_expression "(tag **)((int)&plVar7->addend + 4)" ( (type_descriptor "tag **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&plVar7->addend + 4)" ( (binary_expression "(int)&plVar7->addend + 4" (cast_expression "(int)&plVar7->addend" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&plVar7->addend" & (field_expression "plVar7->addend" identifier -> field_identifier))) + number_literal) )))) )) -> field_identifier))) + (cast_expression "(uint)CARRY4(uVar44,(uint)bVar17)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar44,(uint)bVar17)" identifier (argument_list "(uVar44,(uint)bVar17)" ( identifier , (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) ))))) + identifier) + (cast_expression "(uint)CARRY4((uint)vVar65,(uint)ptVar33)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)vVar65,(uint)ptVar33)" identifier (argument_list "((uint)vVar65,(uint)ptVar33)" ( (cast_expression "(uint)vVar65" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(uint)ptVar33" ( (type_descriptor "uint" type_identifier) ) identifier) ))))) + (cast_expression "(int)(vVar65 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(vVar65 >> 0x20)" ( (binary_expression "vVar65 >> 0x20" identifier >> number_literal) ))))) ;) }))) (expression_statement "iVar29 = S_IS_WEAK(psVar38);" (assignment_expression "iVar29 = S_IS_WEAK(psVar38)" identifier = (call_expression "S_IS_WEAK(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) ;) (expression_statement "*(byte *)&plVar7->ecoff_sym =\n               *(byte *)&plVar7->ecoff_sym & 0xfb | ((byte)iVar29 & 1) * '\x04';" (assignment_expression "*(byte *)&plVar7->ecoff_sym =\n               *(byte *)&plVar7->ecoff_sym & 0xfb | ((byte)iVar29 & 1) * '\x04'" (pointer_expression "*(byte *)&plVar7->ecoff_sym" * (cast_expression "(byte *)&plVar7->ecoff_sym" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&plVar7->ecoff_sym" & (field_expression "plVar7->ecoff_sym" identifier -> field_identifier)))) = (binary_expression "*(byte *)&plVar7->ecoff_sym & 0xfb | ((byte)iVar29 & 1) * '\x04'" (binary_expression "*(byte *)&plVar7->ecoff_sym & 0xfb" (pointer_expression "*(byte *)&plVar7->ecoff_sym" * (cast_expression "(byte *)&plVar7->ecoff_sym" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&plVar7->ecoff_sym" & (field_expression "plVar7->ecoff_sym" identifier -> field_identifier)))) & number_literal) | (binary_expression "((byte)iVar29 & 1) * '\x04'" (parenthesized_expression "((byte)iVar29 & 1)" ( (binary_expression "(byte)iVar29 & 1" (cast_expression "(byte)iVar29" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) * (char_literal "'\x04'" ' escape_sequence ')))) ;) (if_statement "if ((((((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 6) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) &&\n              (iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0)) &&\n             (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) {\n            (plVar7->ecoff_sym).asym.field_0xc = (plVar7->ecoff_sym).asym.field_0xc & 0xc0 | 0xe;\n          }" if (parenthesized_expression "((((((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 6) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) &&\n              (iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0)) &&\n             (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0))" ( (binary_expression "(((((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 6) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) &&\n              (iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0)) &&\n             (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)" (parenthesized_expression "(((((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 6) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) &&\n              (iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0))" ( (binary_expression "((((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 6) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) &&\n              (iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0)" (parenthesized_expression "((((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 6) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0))" ( (binary_expression "(((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 6) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)" (parenthesized_expression "(((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 6)" ( (binary_expression "((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 6" (parenthesized_expression "((plVar7->ecoff_sym).asym.field_0xc & 0x3f)" ( (binary_expression "(plVar7->ecoff_sym).asym.field_0xc & 0x3f" (field_expression "(plVar7->ecoff_sym).asym.field_0xc" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "(iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)" ( (comma_expression "iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0" (assignment_expression "iVar29 = S_IS_DEFINED(psVar38)" identifier = (call_expression "S_IS_DEFINED(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) , (binary_expression "iVar29 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0)" ( (comma_expression "iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0" (assignment_expression "iVar29 = S_IS_EXTERNAL(psVar38)" identifier = (call_expression "S_IS_EXTERNAL(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) , (binary_expression "iVar29 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)" ( (comma_expression "iVar29 = S_IS_WEAK(psVar38), iVar29 == 0" (assignment_expression "iVar29 = S_IS_WEAK(psVar38)" identifier = (call_expression "S_IS_WEAK(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) , (binary_expression "iVar29 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n            (plVar7->ecoff_sym).asym.field_0xc = (plVar7->ecoff_sym).asym.field_0xc & 0xc0 | 0xe;\n          }" { (expression_statement "(plVar7->ecoff_sym).asym.field_0xc = (plVar7->ecoff_sym).asym.field_0xc & 0xc0 | 0xe;" (assignment_expression "(plVar7->ecoff_sym).asym.field_0xc = (plVar7->ecoff_sym).asym.field_0xc & 0xc0 | 0xe" (field_expression "(plVar7->ecoff_sym).asym.field_0xc" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (binary_expression "(plVar7->ecoff_sym).asym.field_0xc & 0xc0 | 0xe" (binary_expression "(plVar7->ecoff_sym).asym.field_0xc & 0xc0" (field_expression "(plVar7->ecoff_sym).asym.field_0xc" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier) & number_literal) | number_literal)) ;) })) (if_statement "if (((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff) == 0) &&\n             ((uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc,\n              (uVar44 & 0xfff00) != 0x8f300 || ((uVar44 & 0xfffdf) != 0x8f3c0)))) {\n            paVar27 = S_GET_SEGMENT(psVar38);\n            pbVar52 = (byte *)paVar27->name;\n            if (((*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300) ||\n               (((iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0 &&\n                 (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n                (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)))) {\n              bVar20 = (paVar27 == text_section) * '\x03' + 2;\n            }\n            else {\n              paVar30 = symbol_get_bfdsym(psVar38);\n              bVar20 = (-((paVar30->flags & 8) == 0) & 0xfbU) + 6;\n            }\n            iVar29 = S_IS_DEFINED(psVar38);\n            if (iVar29 == 0) {\n              peVar31 = symbol_get_obj(psVar38);\n              iVar29 = *(int *)((int)&peVar31->ecoff_extern_size + 4);\n              uVar49 = (uint)peVar31->ecoff_extern_size;\n              if ((iVar29 == 0 && uVar49 == 0) ||\n                 (uVar44 = bfd_get_gp_size(stdoutput),\n                 iVar29 != 0 || (uint)-iVar29 < (uint)(uVar44 < uVar49))) {\n                bVar42 = 6;\n              }\n              else {\n                *(uint *)&(plVar7->ecoff_sym).asym.value = uVar49;\n                bVar42 = 0x15;\n                *(int *)((int)&(plVar7->ecoff_sym).asym.value + 4) = iVar29;\n              }\n              paVar30 = symbol_get_bfdsym(psVar38);\n              uVar44 = (uint)bVar42;\n              *(uint *)&paVar30[1].value = uVar49;\n              *(int *)((int)&paVar30[1].value + 4) = iVar29;\n            }\n            else {\n              iVar29 = S_IS_COMMON(psVar38);\n              if (iVar29 == 0) {\n                uVar44 = 1;\n                if (paVar27 != text_section) {\n                  uVar44 = 2;\n                  bVar62 = paVar27 < data_section;\n                  bVar63 = paVar27 == data_section;\n                  if (!bVar63) {\n                    iVar29 = 7;\n                    uVar44 = 0xf;\n                    pbVar51 = pbVar52;\n                    pbVar58 = (byte *)".rdata";\n                    do {\n                      if (iVar29 == 0) break;\n                      iVar29 = iVar29 + -1;\n                      bVar62 = *pbVar51 < *pbVar58;\n                      bVar63 = *pbVar51 == *pbVar58;\n                      pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                      pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                    } while (bVar63);\n                    bVar61 = false;\n                    bVar62 = (!bVar62 && !bVar63) == bVar62;\n                    if (!bVar62) {\n                      iVar29 = 8;\n                      pbVar51 = pbVar52;\n                      pbVar58 = (byte *)".rodata";\n                      do {\n                        if (iVar29 == 0) break;\n                        iVar29 = iVar29 + -1;\n                        bVar61 = *pbVar51 < *pbVar58;\n                        bVar62 = *pbVar51 == *pbVar58;\n                        pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                        pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                      } while (bVar62);\n                      bVar63 = false;\n                      bVar62 = (!bVar61 && !bVar62) == bVar61;\n                      if (!bVar62) {\n                        iVar29 = 7;\n                        uVar44 = 0xd;\n                        pbVar51 = pbVar52;\n                        pbVar58 = (byte *)".sdata";\n                        do {\n                          if (iVar29 == 0) break;\n                          iVar29 = iVar29 + -1;\n                          bVar63 = *pbVar51 < *pbVar58;\n                          bVar62 = *pbVar51 == *pbVar58;\n                          pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                          pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                        } while (bVar62);\n                        if ((!bVar63 && !bVar62) != bVar63) {\n                          uVar44 = 3;\n                          bVar62 = paVar27 < bss_section;\n                          bVar63 = paVar27 == bss_section;\n                          if (!bVar63) {\n                            iVar29 = 6;\n                            uVar44 = 0xe;\n                            pbVar51 = (byte *)".sbss";\n                            do {\n                              if (iVar29 == 0) break;\n                              iVar29 = iVar29 + -1;\n                              bVar62 = *pbVar52 < *pbVar51;\n                              bVar63 = *pbVar52 == *pbVar51;\n                              pbVar52 = pbVar52 + (uint)bVar64 * -2 + 1;\n                              pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                            } while (bVar63);\n                            if ((!bVar62 && !bVar63) != bVar62) {\n                              uVar44 = (uint)(paVar27 == paVar23) * 3 + 2;\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                vVar65 = S_GET_VALUE(psVar38);\n                if (vVar65 != 0) {\n                  vVar65 = S_GET_VALUE(psVar38);\n                  iVar29 = (int)(vVar65 >> 0x20);\n                  uVar49 = bfd_get_gp_size(stdoutput);\n                  uVar44 = 0x12;\n                  if (iVar29 == 0 && (uint)(uVar49 < (uint)vVar65) <= (uint)-iVar29)\n                  goto LAB_00023df1;\n                }\n                uVar44 = 0x11;\n              }\n            }\nLAB_00023df1:\n            (plVar7->ecoff_sym).asym.field_0xc =\n                 (plVar7->ecoff_sym).asym.field_0xc & 0xc0 | bVar20 & 0x3f;\n            *(ushort *)&(plVar7->ecoff_sym).asym.field_0xc =\n                 *(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0xf83f | (ushort)(uVar44 << 6);\n          }" if (parenthesized_expression "(((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff) == 0) &&\n             ((uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc,\n              (uVar44 & 0xfff00) != 0x8f300 || ((uVar44 & 0xfffdf) != 0x8f3c0))))" ( (binary_expression "((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff) == 0) &&\n             ((uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc,\n              (uVar44 & 0xfff00) != 0x8f300 || ((uVar44 & 0xfffdf) != 0x8f3c0)))" (parenthesized_expression "((*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff) == 0)" ( (binary_expression "(*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff) == 0" (parenthesized_expression "(*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff)" ( (binary_expression "*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0x7ff" (pointer_expression "*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc" * (cast_expression "(ushort *)&(plVar7->ecoff_sym).asym.field_0xc" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(plVar7->ecoff_sym).asym.field_0xc" & (field_expression "(plVar7->ecoff_sym).asym.field_0xc" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier)))) & number_literal) )) == number_literal) )) && (parenthesized_expression "((uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc,\n              (uVar44 & 0xfff00) != 0x8f300 || ((uVar44 & 0xfffdf) != 0x8f3c0)))" ( (parenthesized_expression "(uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc,\n              (uVar44 & 0xfff00) != 0x8f300 || ((uVar44 & 0xfffdf) != 0x8f3c0))" ( (comma_expression "uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc,\n              (uVar44 & 0xfff00) != 0x8f300 || ((uVar44 & 0xfffdf) != 0x8f3c0)" (assignment_expression "uVar44 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc" identifier = (binary_expression "*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc" (pointer_expression "*(uint *)&(plVar7->ecoff_sym).asym.field_0xc" * (cast_expression "(uint *)&(plVar7->ecoff_sym).asym.field_0xc" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(plVar7->ecoff_sym).asym.field_0xc" & (field_expression "(plVar7->ecoff_sym).asym.field_0xc" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier)))) >> number_literal)) , (binary_expression "(uVar44 & 0xfff00) != 0x8f300 || ((uVar44 & 0xfffdf) != 0x8f3c0)" (binary_expression "(uVar44 & 0xfff00) != 0x8f300" (parenthesized_expression "(uVar44 & 0xfff00)" ( (binary_expression "uVar44 & 0xfff00" identifier & number_literal) )) != number_literal) || (parenthesized_expression "((uVar44 & 0xfffdf) != 0x8f3c0)" ( (binary_expression "(uVar44 & 0xfffdf) != 0x8f3c0" (parenthesized_expression "(uVar44 & 0xfffdf)" ( (binary_expression "uVar44 & 0xfffdf" identifier & number_literal) )) != number_literal) )))) )) ))) )) (compound_statement "{\n            paVar27 = S_GET_SEGMENT(psVar38);\n            pbVar52 = (byte *)paVar27->name;\n            if (((*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300) ||\n               (((iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0 &&\n                 (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n                (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)))) {\n              bVar20 = (paVar27 == text_section) * '\x03' + 2;\n            }\n            else {\n              paVar30 = symbol_get_bfdsym(psVar38);\n              bVar20 = (-((paVar30->flags & 8) == 0) & 0xfbU) + 6;\n            }\n            iVar29 = S_IS_DEFINED(psVar38);\n            if (iVar29 == 0) {\n              peVar31 = symbol_get_obj(psVar38);\n              iVar29 = *(int *)((int)&peVar31->ecoff_extern_size + 4);\n              uVar49 = (uint)peVar31->ecoff_extern_size;\n              if ((iVar29 == 0 && uVar49 == 0) ||\n                 (uVar44 = bfd_get_gp_size(stdoutput),\n                 iVar29 != 0 || (uint)-iVar29 < (uint)(uVar44 < uVar49))) {\n                bVar42 = 6;\n              }\n              else {\n                *(uint *)&(plVar7->ecoff_sym).asym.value = uVar49;\n                bVar42 = 0x15;\n                *(int *)((int)&(plVar7->ecoff_sym).asym.value + 4) = iVar29;\n              }\n              paVar30 = symbol_get_bfdsym(psVar38);\n              uVar44 = (uint)bVar42;\n              *(uint *)&paVar30[1].value = uVar49;\n              *(int *)((int)&paVar30[1].value + 4) = iVar29;\n            }\n            else {\n              iVar29 = S_IS_COMMON(psVar38);\n              if (iVar29 == 0) {\n                uVar44 = 1;\n                if (paVar27 != text_section) {\n                  uVar44 = 2;\n                  bVar62 = paVar27 < data_section;\n                  bVar63 = paVar27 == data_section;\n                  if (!bVar63) {\n                    iVar29 = 7;\n                    uVar44 = 0xf;\n                    pbVar51 = pbVar52;\n                    pbVar58 = (byte *)".rdata";\n                    do {\n                      if (iVar29 == 0) break;\n                      iVar29 = iVar29 + -1;\n                      bVar62 = *pbVar51 < *pbVar58;\n                      bVar63 = *pbVar51 == *pbVar58;\n                      pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                      pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                    } while (bVar63);\n                    bVar61 = false;\n                    bVar62 = (!bVar62 && !bVar63) == bVar62;\n                    if (!bVar62) {\n                      iVar29 = 8;\n                      pbVar51 = pbVar52;\n                      pbVar58 = (byte *)".rodata";\n                      do {\n                        if (iVar29 == 0) break;\n                        iVar29 = iVar29 + -1;\n                        bVar61 = *pbVar51 < *pbVar58;\n                        bVar62 = *pbVar51 == *pbVar58;\n                        pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                        pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                      } while (bVar62);\n                      bVar63 = false;\n                      bVar62 = (!bVar61 && !bVar62) == bVar61;\n                      if (!bVar62) {\n                        iVar29 = 7;\n                        uVar44 = 0xd;\n                        pbVar51 = pbVar52;\n                        pbVar58 = (byte *)".sdata";\n                        do {\n                          if (iVar29 == 0) break;\n                          iVar29 = iVar29 + -1;\n                          bVar63 = *pbVar51 < *pbVar58;\n                          bVar62 = *pbVar51 == *pbVar58;\n                          pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                          pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                        } while (bVar62);\n                        if ((!bVar63 && !bVar62) != bVar63) {\n                          uVar44 = 3;\n                          bVar62 = paVar27 < bss_section;\n                          bVar63 = paVar27 == bss_section;\n                          if (!bVar63) {\n                            iVar29 = 6;\n                            uVar44 = 0xe;\n                            pbVar51 = (byte *)".sbss";\n                            do {\n                              if (iVar29 == 0) break;\n                              iVar29 = iVar29 + -1;\n                              bVar62 = *pbVar52 < *pbVar51;\n                              bVar63 = *pbVar52 == *pbVar51;\n                              pbVar52 = pbVar52 + (uint)bVar64 * -2 + 1;\n                              pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                            } while (bVar63);\n                            if ((!bVar62 && !bVar63) != bVar62) {\n                              uVar44 = (uint)(paVar27 == paVar23) * 3 + 2;\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                vVar65 = S_GET_VALUE(psVar38);\n                if (vVar65 != 0) {\n                  vVar65 = S_GET_VALUE(psVar38);\n                  iVar29 = (int)(vVar65 >> 0x20);\n                  uVar49 = bfd_get_gp_size(stdoutput);\n                  uVar44 = 0x12;\n                  if (iVar29 == 0 && (uint)(uVar49 < (uint)vVar65) <= (uint)-iVar29)\n                  goto LAB_00023df1;\n                }\n                uVar44 = 0x11;\n              }\n            }\nLAB_00023df1:\n            (plVar7->ecoff_sym).asym.field_0xc =\n                 (plVar7->ecoff_sym).asym.field_0xc & 0xc0 | bVar20 & 0x3f;\n            *(ushort *)&(plVar7->ecoff_sym).asym.field_0xc =\n                 *(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0xf83f | (ushort)(uVar44 << 6);\n          }" { (expression_statement "paVar27 = S_GET_SEGMENT(psVar38);" (assignment_expression "paVar27 = S_GET_SEGMENT(psVar38)" identifier = (call_expression "S_GET_SEGMENT(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) ;) (expression_statement "pbVar52 = (byte *)paVar27->name;" (assignment_expression "pbVar52 = (byte *)paVar27->name" identifier = (cast_expression "(byte *)paVar27->name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "paVar27->name" identifier -> field_identifier))) ;) (if_statement "if (((*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300) ||\n               (((iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0 &&\n                 (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n                (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)))) {\n              bVar20 = (paVar27 == text_section) * '\x03' + 2;\n            }\n            else {\n              paVar30 = symbol_get_bfdsym(psVar38);\n              bVar20 = (-((paVar30->flags & 8) == 0) & 0xfbU) + 6;\n            }" if (parenthesized_expression "(((*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300) ||\n               (((iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0 &&\n                 (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n                (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0))))" ( (binary_expression "((*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300) ||\n               (((iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0 &&\n                 (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n                (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)))" (parenthesized_expression "((*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300)" ( (binary_expression "(*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300" (parenthesized_expression "(*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00)" ( (binary_expression "*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00" (binary_expression "*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc" (pointer_expression "*(uint *)&(plVar7->ecoff_sym).asym.field_0xc" * (cast_expression "(uint *)&(plVar7->ecoff_sym).asym.field_0xc" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(plVar7->ecoff_sym).asym.field_0xc" & (field_expression "(plVar7->ecoff_sym).asym.field_0xc" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier)))) >> number_literal) & number_literal) )) == number_literal) )) || (parenthesized_expression "(((iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0 &&\n                 (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n                (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)))" ( (parenthesized_expression "((iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0 &&\n                 (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n                (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0))" ( (binary_expression "(iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0 &&\n                 (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n                (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)" (parenthesized_expression "(iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0 &&\n                 (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0))" ( (comma_expression "iVar29 = S_IS_EXTERNAL(psVar38), iVar29 == 0 &&\n                 (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)" (assignment_expression "iVar29 = S_IS_EXTERNAL(psVar38)" identifier = (call_expression "S_IS_EXTERNAL(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) , (binary_expression "iVar29 == 0 &&\n                 (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)" (binary_expression "iVar29 == 0" identifier == number_literal) && (parenthesized_expression "(iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)" ( (comma_expression "iVar29 = S_IS_WEAK(psVar38), iVar29 == 0" (assignment_expression "iVar29 = S_IS_WEAK(psVar38)" identifier = (call_expression "S_IS_WEAK(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) , (binary_expression "iVar29 == 0" identifier == number_literal)) )))) )) && (parenthesized_expression "(iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)" ( (comma_expression "iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0" (assignment_expression "iVar29 = S_IS_DEFINED(psVar38)" identifier = (call_expression "S_IS_DEFINED(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) , (binary_expression "iVar29 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n              bVar20 = (paVar27 == text_section) * '\x03' + 2;\n            }" { (expression_statement "bVar20 = (paVar27 == text_section) * '\x03' + 2;" (assignment_expression "bVar20 = (paVar27 == text_section) * '\x03' + 2" identifier = (binary_expression "(paVar27 == text_section) * '\x03' + 2" (binary_expression "(paVar27 == text_section) * '\x03'" (parenthesized_expression "(paVar27 == text_section)" ( (binary_expression "paVar27 == text_section" identifier == identifier) )) * (char_literal "'\x03'" ' escape_sequence ')) + number_literal)) ;) }) (else_clause "else {\n              paVar30 = symbol_get_bfdsym(psVar38);\n              bVar20 = (-((paVar30->flags & 8) == 0) & 0xfbU) + 6;\n            }" else (compound_statement "{\n              paVar30 = symbol_get_bfdsym(psVar38);\n              bVar20 = (-((paVar30->flags & 8) == 0) & 0xfbU) + 6;\n            }" { (expression_statement "paVar30 = symbol_get_bfdsym(psVar38);" (assignment_expression "paVar30 = symbol_get_bfdsym(psVar38)" identifier = (call_expression "symbol_get_bfdsym(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) ;) (expression_statement "bVar20 = (-((paVar30->flags & 8) == 0) & 0xfbU) + 6;" (assignment_expression "bVar20 = (-((paVar30->flags & 8) == 0) & 0xfbU) + 6" identifier = (binary_expression "(-((paVar30->flags & 8) == 0) & 0xfbU) + 6" (parenthesized_expression "(-((paVar30->flags & 8) == 0) & 0xfbU)" ( (binary_expression "-((paVar30->flags & 8) == 0) & 0xfbU" (unary_expression "-((paVar30->flags & 8) == 0)" - (parenthesized_expression "((paVar30->flags & 8) == 0)" ( (binary_expression "(paVar30->flags & 8) == 0" (parenthesized_expression "(paVar30->flags & 8)" ( (binary_expression "paVar30->flags & 8" (field_expression "paVar30->flags" identifier -> field_identifier) & number_literal) )) == number_literal) ))) & number_literal) )) + number_literal)) ;) }))) (expression_statement "iVar29 = S_IS_DEFINED(psVar38);" (assignment_expression "iVar29 = S_IS_DEFINED(psVar38)" identifier = (call_expression "S_IS_DEFINED(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) ;) (if_statement "if (iVar29 == 0) {\n              peVar31 = symbol_get_obj(psVar38);\n              iVar29 = *(int *)((int)&peVar31->ecoff_extern_size + 4);\n              uVar49 = (uint)peVar31->ecoff_extern_size;\n              if ((iVar29 == 0 && uVar49 == 0) ||\n                 (uVar44 = bfd_get_gp_size(stdoutput),\n                 iVar29 != 0 || (uint)-iVar29 < (uint)(uVar44 < uVar49))) {\n                bVar42 = 6;\n              }\n              else {\n                *(uint *)&(plVar7->ecoff_sym).asym.value = uVar49;\n                bVar42 = 0x15;\n                *(int *)((int)&(plVar7->ecoff_sym).asym.value + 4) = iVar29;\n              }\n              paVar30 = symbol_get_bfdsym(psVar38);\n              uVar44 = (uint)bVar42;\n              *(uint *)&paVar30[1].value = uVar49;\n              *(int *)((int)&paVar30[1].value + 4) = iVar29;\n            }\n            else {\n              iVar29 = S_IS_COMMON(psVar38);\n              if (iVar29 == 0) {\n                uVar44 = 1;\n                if (paVar27 != text_section) {\n                  uVar44 = 2;\n                  bVar62 = paVar27 < data_section;\n                  bVar63 = paVar27 == data_section;\n                  if (!bVar63) {\n                    iVar29 = 7;\n                    uVar44 = 0xf;\n                    pbVar51 = pbVar52;\n                    pbVar58 = (byte *)".rdata";\n                    do {\n                      if (iVar29 == 0) break;\n                      iVar29 = iVar29 + -1;\n                      bVar62 = *pbVar51 < *pbVar58;\n                      bVar63 = *pbVar51 == *pbVar58;\n                      pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                      pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                    } while (bVar63);\n                    bVar61 = false;\n                    bVar62 = (!bVar62 && !bVar63) == bVar62;\n                    if (!bVar62) {\n                      iVar29 = 8;\n                      pbVar51 = pbVar52;\n                      pbVar58 = (byte *)".rodata";\n                      do {\n                        if (iVar29 == 0) break;\n                        iVar29 = iVar29 + -1;\n                        bVar61 = *pbVar51 < *pbVar58;\n                        bVar62 = *pbVar51 == *pbVar58;\n                        pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                        pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                      } while (bVar62);\n                      bVar63 = false;\n                      bVar62 = (!bVar61 && !bVar62) == bVar61;\n                      if (!bVar62) {\n                        iVar29 = 7;\n                        uVar44 = 0xd;\n                        pbVar51 = pbVar52;\n                        pbVar58 = (byte *)".sdata";\n                        do {\n                          if (iVar29 == 0) break;\n                          iVar29 = iVar29 + -1;\n                          bVar63 = *pbVar51 < *pbVar58;\n                          bVar62 = *pbVar51 == *pbVar58;\n                          pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                          pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                        } while (bVar62);\n                        if ((!bVar63 && !bVar62) != bVar63) {\n                          uVar44 = 3;\n                          bVar62 = paVar27 < bss_section;\n                          bVar63 = paVar27 == bss_section;\n                          if (!bVar63) {\n                            iVar29 = 6;\n                            uVar44 = 0xe;\n                            pbVar51 = (byte *)".sbss";\n                            do {\n                              if (iVar29 == 0) break;\n                              iVar29 = iVar29 + -1;\n                              bVar62 = *pbVar52 < *pbVar51;\n                              bVar63 = *pbVar52 == *pbVar51;\n                              pbVar52 = pbVar52 + (uint)bVar64 * -2 + 1;\n                              pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                            } while (bVar63);\n                            if ((!bVar62 && !bVar63) != bVar62) {\n                              uVar44 = (uint)(paVar27 == paVar23) * 3 + 2;\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                vVar65 = S_GET_VALUE(psVar38);\n                if (vVar65 != 0) {\n                  vVar65 = S_GET_VALUE(psVar38);\n                  iVar29 = (int)(vVar65 >> 0x20);\n                  uVar49 = bfd_get_gp_size(stdoutput);\n                  uVar44 = 0x12;\n                  if (iVar29 == 0 && (uint)(uVar49 < (uint)vVar65) <= (uint)-iVar29)\n                  goto LAB_00023df1;\n                }\n                uVar44 = 0x11;\n              }\n            }" if (parenthesized_expression "(iVar29 == 0)" ( (binary_expression "iVar29 == 0" identifier == number_literal) )) (compound_statement "{\n              peVar31 = symbol_get_obj(psVar38);\n              iVar29 = *(int *)((int)&peVar31->ecoff_extern_size + 4);\n              uVar49 = (uint)peVar31->ecoff_extern_size;\n              if ((iVar29 == 0 && uVar49 == 0) ||\n                 (uVar44 = bfd_get_gp_size(stdoutput),\n                 iVar29 != 0 || (uint)-iVar29 < (uint)(uVar44 < uVar49))) {\n                bVar42 = 6;\n              }\n              else {\n                *(uint *)&(plVar7->ecoff_sym).asym.value = uVar49;\n                bVar42 = 0x15;\n                *(int *)((int)&(plVar7->ecoff_sym).asym.value + 4) = iVar29;\n              }\n              paVar30 = symbol_get_bfdsym(psVar38);\n              uVar44 = (uint)bVar42;\n              *(uint *)&paVar30[1].value = uVar49;\n              *(int *)((int)&paVar30[1].value + 4) = iVar29;\n            }" { (expression_statement "peVar31 = symbol_get_obj(psVar38);" (assignment_expression "peVar31 = symbol_get_obj(psVar38)" identifier = (call_expression "symbol_get_obj(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) ;) (expression_statement "iVar29 = *(int *)((int)&peVar31->ecoff_extern_size + 4);" (assignment_expression "iVar29 = *(int *)((int)&peVar31->ecoff_extern_size + 4)" identifier = (pointer_expression "*(int *)((int)&peVar31->ecoff_extern_size + 4)" * (cast_expression "(int *)((int)&peVar31->ecoff_extern_size + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&peVar31->ecoff_extern_size + 4)" ( (binary_expression "(int)&peVar31->ecoff_extern_size + 4" (cast_expression "(int)&peVar31->ecoff_extern_size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&peVar31->ecoff_extern_size" & (field_expression "peVar31->ecoff_extern_size" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar49 = (uint)peVar31->ecoff_extern_size;" (assignment_expression "uVar49 = (uint)peVar31->ecoff_extern_size" identifier = (cast_expression "(uint)peVar31->ecoff_extern_size" ( (type_descriptor "uint" type_identifier) ) (field_expression "peVar31->ecoff_extern_size" identifier -> field_identifier))) ;) (if_statement "if ((iVar29 == 0 && uVar49 == 0) ||\n                 (uVar44 = bfd_get_gp_size(stdoutput),\n                 iVar29 != 0 || (uint)-iVar29 < (uint)(uVar44 < uVar49))) {\n                bVar42 = 6;\n              }\n              else {\n                *(uint *)&(plVar7->ecoff_sym).asym.value = uVar49;\n                bVar42 = 0x15;\n                *(int *)((int)&(plVar7->ecoff_sym).asym.value + 4) = iVar29;\n              }" if (parenthesized_expression "((iVar29 == 0 && uVar49 == 0) ||\n                 (uVar44 = bfd_get_gp_size(stdoutput),\n                 iVar29 != 0 || (uint)-iVar29 < (uint)(uVar44 < uVar49)))" ( (binary_expression "(iVar29 == 0 && uVar49 == 0) ||\n                 (uVar44 = bfd_get_gp_size(stdoutput),\n                 iVar29 != 0 || (uint)-iVar29 < (uint)(uVar44 < uVar49))" (parenthesized_expression "(iVar29 == 0 && uVar49 == 0)" ( (binary_expression "iVar29 == 0 && uVar49 == 0" (binary_expression "iVar29 == 0" identifier == number_literal) && (binary_expression "uVar49 == 0" identifier == number_literal)) )) || (parenthesized_expression "(uVar44 = bfd_get_gp_size(stdoutput),\n                 iVar29 != 0 || (uint)-iVar29 < (uint)(uVar44 < uVar49))" ( (comma_expression "uVar44 = bfd_get_gp_size(stdoutput),\n                 iVar29 != 0 || (uint)-iVar29 < (uint)(uVar44 < uVar49)" (assignment_expression "uVar44 = bfd_get_gp_size(stdoutput)" identifier = (call_expression "bfd_get_gp_size(stdoutput)" identifier (argument_list "(stdoutput)" ( identifier )))) , (binary_expression "iVar29 != 0 || (uint)-iVar29 < (uint)(uVar44 < uVar49)" (binary_expression "iVar29 != 0" identifier != number_literal) || (binary_expression "(uint)-iVar29 < (uint)(uVar44 < uVar49)" (binary_expression "(uint)-iVar29" (parenthesized_expression "(uint)" ( identifier )) - identifier) < (call_expression "(uint)(uVar44 < uVar49)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar44 < uVar49)" ( (binary_expression "uVar44 < uVar49" identifier < identifier) )))))) ))) )) (compound_statement "{\n                bVar42 = 6;\n              }" { (expression_statement "bVar42 = 6;" (assignment_expression "bVar42 = 6" identifier = number_literal) ;) }) (else_clause "else {\n                *(uint *)&(plVar7->ecoff_sym).asym.value = uVar49;\n                bVar42 = 0x15;\n                *(int *)((int)&(plVar7->ecoff_sym).asym.value + 4) = iVar29;\n              }" else (compound_statement "{\n                *(uint *)&(plVar7->ecoff_sym).asym.value = uVar49;\n                bVar42 = 0x15;\n                *(int *)((int)&(plVar7->ecoff_sym).asym.value + 4) = iVar29;\n              }" { (expression_statement "*(uint *)&(plVar7->ecoff_sym).asym.value = uVar49;" (assignment_expression "*(uint *)&(plVar7->ecoff_sym).asym.value = uVar49" (pointer_expression "*(uint *)&(plVar7->ecoff_sym).asym.value" * (cast_expression "(uint *)&(plVar7->ecoff_sym).asym.value" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(plVar7->ecoff_sym).asym.value" & (field_expression "(plVar7->ecoff_sym).asym.value" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier)))) = identifier) ;) (expression_statement "bVar42 = 0x15;" (assignment_expression "bVar42 = 0x15" identifier = number_literal) ;) (expression_statement "*(int *)((int)&(plVar7->ecoff_sym).asym.value + 4) = iVar29;" (assignment_expression "*(int *)((int)&(plVar7->ecoff_sym).asym.value + 4) = iVar29" (pointer_expression "*(int *)((int)&(plVar7->ecoff_sym).asym.value + 4)" * (cast_expression "(int *)((int)&(plVar7->ecoff_sym).asym.value + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(plVar7->ecoff_sym).asym.value + 4)" ( (binary_expression "(int)&(plVar7->ecoff_sym).asym.value + 4" (cast_expression "(int)&(plVar7->ecoff_sym).asym.value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(plVar7->ecoff_sym).asym.value" & (field_expression "(plVar7->ecoff_sym).asym.value" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) )))) = identifier) ;) }))) (expression_statement "paVar30 = symbol_get_bfdsym(psVar38);" (assignment_expression "paVar30 = symbol_get_bfdsym(psVar38)" identifier = (call_expression "symbol_get_bfdsym(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) ;) (expression_statement "uVar44 = (uint)bVar42;" (assignment_expression "uVar44 = (uint)bVar42" identifier = (cast_expression "(uint)bVar42" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(uint *)&paVar30[1].value = uVar49;" (assignment_expression "*(uint *)&paVar30[1].value = uVar49" (pointer_expression "*(uint *)&paVar30[1].value" * (cast_expression "(uint *)&paVar30[1].value" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&paVar30[1].value" & (field_expression "paVar30[1].value" (subscript_expression "paVar30[1]" identifier [ number_literal ]) . field_identifier)))) = identifier) ;) (expression_statement "*(int *)((int)&paVar30[1].value + 4) = iVar29;" (assignment_expression "*(int *)((int)&paVar30[1].value + 4) = iVar29" (pointer_expression "*(int *)((int)&paVar30[1].value + 4)" * (cast_expression "(int *)((int)&paVar30[1].value + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar30[1].value + 4)" ( (binary_expression "(int)&paVar30[1].value + 4" (cast_expression "(int)&paVar30[1].value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar30[1].value" & (field_expression "paVar30[1].value" (subscript_expression "paVar30[1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n              iVar29 = S_IS_COMMON(psVar38);\n              if (iVar29 == 0) {\n                uVar44 = 1;\n                if (paVar27 != text_section) {\n                  uVar44 = 2;\n                  bVar62 = paVar27 < data_section;\n                  bVar63 = paVar27 == data_section;\n                  if (!bVar63) {\n                    iVar29 = 7;\n                    uVar44 = 0xf;\n                    pbVar51 = pbVar52;\n                    pbVar58 = (byte *)".rdata";\n                    do {\n                      if (iVar29 == 0) break;\n                      iVar29 = iVar29 + -1;\n                      bVar62 = *pbVar51 < *pbVar58;\n                      bVar63 = *pbVar51 == *pbVar58;\n                      pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                      pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                    } while (bVar63);\n                    bVar61 = false;\n                    bVar62 = (!bVar62 && !bVar63) == bVar62;\n                    if (!bVar62) {\n                      iVar29 = 8;\n                      pbVar51 = pbVar52;\n                      pbVar58 = (byte *)".rodata";\n                      do {\n                        if (iVar29 == 0) break;\n                        iVar29 = iVar29 + -1;\n                        bVar61 = *pbVar51 < *pbVar58;\n                        bVar62 = *pbVar51 == *pbVar58;\n                        pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                        pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                      } while (bVar62);\n                      bVar63 = false;\n                      bVar62 = (!bVar61 && !bVar62) == bVar61;\n                      if (!bVar62) {\n                        iVar29 = 7;\n                        uVar44 = 0xd;\n                        pbVar51 = pbVar52;\n                        pbVar58 = (byte *)".sdata";\n                        do {\n                          if (iVar29 == 0) break;\n                          iVar29 = iVar29 + -1;\n                          bVar63 = *pbVar51 < *pbVar58;\n                          bVar62 = *pbVar51 == *pbVar58;\n                          pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                          pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                        } while (bVar62);\n                        if ((!bVar63 && !bVar62) != bVar63) {\n                          uVar44 = 3;\n                          bVar62 = paVar27 < bss_section;\n                          bVar63 = paVar27 == bss_section;\n                          if (!bVar63) {\n                            iVar29 = 6;\n                            uVar44 = 0xe;\n                            pbVar51 = (byte *)".sbss";\n                            do {\n                              if (iVar29 == 0) break;\n                              iVar29 = iVar29 + -1;\n                              bVar62 = *pbVar52 < *pbVar51;\n                              bVar63 = *pbVar52 == *pbVar51;\n                              pbVar52 = pbVar52 + (uint)bVar64 * -2 + 1;\n                              pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                            } while (bVar63);\n                            if ((!bVar62 && !bVar63) != bVar62) {\n                              uVar44 = (uint)(paVar27 == paVar23) * 3 + 2;\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                vVar65 = S_GET_VALUE(psVar38);\n                if (vVar65 != 0) {\n                  vVar65 = S_GET_VALUE(psVar38);\n                  iVar29 = (int)(vVar65 >> 0x20);\n                  uVar49 = bfd_get_gp_size(stdoutput);\n                  uVar44 = 0x12;\n                  if (iVar29 == 0 && (uint)(uVar49 < (uint)vVar65) <= (uint)-iVar29)\n                  goto LAB_00023df1;\n                }\n                uVar44 = 0x11;\n              }\n            }" else (compound_statement "{\n              iVar29 = S_IS_COMMON(psVar38);\n              if (iVar29 == 0) {\n                uVar44 = 1;\n                if (paVar27 != text_section) {\n                  uVar44 = 2;\n                  bVar62 = paVar27 < data_section;\n                  bVar63 = paVar27 == data_section;\n                  if (!bVar63) {\n                    iVar29 = 7;\n                    uVar44 = 0xf;\n                    pbVar51 = pbVar52;\n                    pbVar58 = (byte *)".rdata";\n                    do {\n                      if (iVar29 == 0) break;\n                      iVar29 = iVar29 + -1;\n                      bVar62 = *pbVar51 < *pbVar58;\n                      bVar63 = *pbVar51 == *pbVar58;\n                      pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                      pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                    } while (bVar63);\n                    bVar61 = false;\n                    bVar62 = (!bVar62 && !bVar63) == bVar62;\n                    if (!bVar62) {\n                      iVar29 = 8;\n                      pbVar51 = pbVar52;\n                      pbVar58 = (byte *)".rodata";\n                      do {\n                        if (iVar29 == 0) break;\n                        iVar29 = iVar29 + -1;\n                        bVar61 = *pbVar51 < *pbVar58;\n                        bVar62 = *pbVar51 == *pbVar58;\n                        pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                        pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                      } while (bVar62);\n                      bVar63 = false;\n                      bVar62 = (!bVar61 && !bVar62) == bVar61;\n                      if (!bVar62) {\n                        iVar29 = 7;\n                        uVar44 = 0xd;\n                        pbVar51 = pbVar52;\n                        pbVar58 = (byte *)".sdata";\n                        do {\n                          if (iVar29 == 0) break;\n                          iVar29 = iVar29 + -1;\n                          bVar63 = *pbVar51 < *pbVar58;\n                          bVar62 = *pbVar51 == *pbVar58;\n                          pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                          pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                        } while (bVar62);\n                        if ((!bVar63 && !bVar62) != bVar63) {\n                          uVar44 = 3;\n                          bVar62 = paVar27 < bss_section;\n                          bVar63 = paVar27 == bss_section;\n                          if (!bVar63) {\n                            iVar29 = 6;\n                            uVar44 = 0xe;\n                            pbVar51 = (byte *)".sbss";\n                            do {\n                              if (iVar29 == 0) break;\n                              iVar29 = iVar29 + -1;\n                              bVar62 = *pbVar52 < *pbVar51;\n                              bVar63 = *pbVar52 == *pbVar51;\n                              pbVar52 = pbVar52 + (uint)bVar64 * -2 + 1;\n                              pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                            } while (bVar63);\n                            if ((!bVar62 && !bVar63) != bVar62) {\n                              uVar44 = (uint)(paVar27 == paVar23) * 3 + 2;\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                vVar65 = S_GET_VALUE(psVar38);\n                if (vVar65 != 0) {\n                  vVar65 = S_GET_VALUE(psVar38);\n                  iVar29 = (int)(vVar65 >> 0x20);\n                  uVar49 = bfd_get_gp_size(stdoutput);\n                  uVar44 = 0x12;\n                  if (iVar29 == 0 && (uint)(uVar49 < (uint)vVar65) <= (uint)-iVar29)\n                  goto LAB_00023df1;\n                }\n                uVar44 = 0x11;\n              }\n            }" { (expression_statement "iVar29 = S_IS_COMMON(psVar38);" (assignment_expression "iVar29 = S_IS_COMMON(psVar38)" identifier = (call_expression "S_IS_COMMON(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) ;) (if_statement "if (iVar29 == 0) {\n                uVar44 = 1;\n                if (paVar27 != text_section) {\n                  uVar44 = 2;\n                  bVar62 = paVar27 < data_section;\n                  bVar63 = paVar27 == data_section;\n                  if (!bVar63) {\n                    iVar29 = 7;\n                    uVar44 = 0xf;\n                    pbVar51 = pbVar52;\n                    pbVar58 = (byte *)".rdata";\n                    do {\n                      if (iVar29 == 0) break;\n                      iVar29 = iVar29 + -1;\n                      bVar62 = *pbVar51 < *pbVar58;\n                      bVar63 = *pbVar51 == *pbVar58;\n                      pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                      pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                    } while (bVar63);\n                    bVar61 = false;\n                    bVar62 = (!bVar62 && !bVar63) == bVar62;\n                    if (!bVar62) {\n                      iVar29 = 8;\n                      pbVar51 = pbVar52;\n                      pbVar58 = (byte *)".rodata";\n                      do {\n                        if (iVar29 == 0) break;\n                        iVar29 = iVar29 + -1;\n                        bVar61 = *pbVar51 < *pbVar58;\n                        bVar62 = *pbVar51 == *pbVar58;\n                        pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                        pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                      } while (bVar62);\n                      bVar63 = false;\n                      bVar62 = (!bVar61 && !bVar62) == bVar61;\n                      if (!bVar62) {\n                        iVar29 = 7;\n                        uVar44 = 0xd;\n                        pbVar51 = pbVar52;\n                        pbVar58 = (byte *)".sdata";\n                        do {\n                          if (iVar29 == 0) break;\n                          iVar29 = iVar29 + -1;\n                          bVar63 = *pbVar51 < *pbVar58;\n                          bVar62 = *pbVar51 == *pbVar58;\n                          pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                          pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                        } while (bVar62);\n                        if ((!bVar63 && !bVar62) != bVar63) {\n                          uVar44 = 3;\n                          bVar62 = paVar27 < bss_section;\n                          bVar63 = paVar27 == bss_section;\n                          if (!bVar63) {\n                            iVar29 = 6;\n                            uVar44 = 0xe;\n                            pbVar51 = (byte *)".sbss";\n                            do {\n                              if (iVar29 == 0) break;\n                              iVar29 = iVar29 + -1;\n                              bVar62 = *pbVar52 < *pbVar51;\n                              bVar63 = *pbVar52 == *pbVar51;\n                              pbVar52 = pbVar52 + (uint)bVar64 * -2 + 1;\n                              pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                            } while (bVar63);\n                            if ((!bVar62 && !bVar63) != bVar62) {\n                              uVar44 = (uint)(paVar27 == paVar23) * 3 + 2;\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n              else {\n                vVar65 = S_GET_VALUE(psVar38);\n                if (vVar65 != 0) {\n                  vVar65 = S_GET_VALUE(psVar38);\n                  iVar29 = (int)(vVar65 >> 0x20);\n                  uVar49 = bfd_get_gp_size(stdoutput);\n                  uVar44 = 0x12;\n                  if (iVar29 == 0 && (uint)(uVar49 < (uint)vVar65) <= (uint)-iVar29)\n                  goto LAB_00023df1;\n                }\n                uVar44 = 0x11;\n              }" if (parenthesized_expression "(iVar29 == 0)" ( (binary_expression "iVar29 == 0" identifier == number_literal) )) (compound_statement "{\n                uVar44 = 1;\n                if (paVar27 != text_section) {\n                  uVar44 = 2;\n                  bVar62 = paVar27 < data_section;\n                  bVar63 = paVar27 == data_section;\n                  if (!bVar63) {\n                    iVar29 = 7;\n                    uVar44 = 0xf;\n                    pbVar51 = pbVar52;\n                    pbVar58 = (byte *)".rdata";\n                    do {\n                      if (iVar29 == 0) break;\n                      iVar29 = iVar29 + -1;\n                      bVar62 = *pbVar51 < *pbVar58;\n                      bVar63 = *pbVar51 == *pbVar58;\n                      pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                      pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                    } while (bVar63);\n                    bVar61 = false;\n                    bVar62 = (!bVar62 && !bVar63) == bVar62;\n                    if (!bVar62) {\n                      iVar29 = 8;\n                      pbVar51 = pbVar52;\n                      pbVar58 = (byte *)".rodata";\n                      do {\n                        if (iVar29 == 0) break;\n                        iVar29 = iVar29 + -1;\n                        bVar61 = *pbVar51 < *pbVar58;\n                        bVar62 = *pbVar51 == *pbVar58;\n                        pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                        pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                      } while (bVar62);\n                      bVar63 = false;\n                      bVar62 = (!bVar61 && !bVar62) == bVar61;\n                      if (!bVar62) {\n                        iVar29 = 7;\n                        uVar44 = 0xd;\n                        pbVar51 = pbVar52;\n                        pbVar58 = (byte *)".sdata";\n                        do {\n                          if (iVar29 == 0) break;\n                          iVar29 = iVar29 + -1;\n                          bVar63 = *pbVar51 < *pbVar58;\n                          bVar62 = *pbVar51 == *pbVar58;\n                          pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                          pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                        } while (bVar62);\n                        if ((!bVar63 && !bVar62) != bVar63) {\n                          uVar44 = 3;\n                          bVar62 = paVar27 < bss_section;\n                          bVar63 = paVar27 == bss_section;\n                          if (!bVar63) {\n                            iVar29 = 6;\n                            uVar44 = 0xe;\n                            pbVar51 = (byte *)".sbss";\n                            do {\n                              if (iVar29 == 0) break;\n                              iVar29 = iVar29 + -1;\n                              bVar62 = *pbVar52 < *pbVar51;\n                              bVar63 = *pbVar52 == *pbVar51;\n                              pbVar52 = pbVar52 + (uint)bVar64 * -2 + 1;\n                              pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                            } while (bVar63);\n                            if ((!bVar62 && !bVar63) != bVar62) {\n                              uVar44 = (uint)(paVar27 == paVar23) * 3 + 2;\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }" { (expression_statement "uVar44 = 1;" (assignment_expression "uVar44 = 1" identifier = number_literal) ;) (if_statement "if (paVar27 != text_section) {\n                  uVar44 = 2;\n                  bVar62 = paVar27 < data_section;\n                  bVar63 = paVar27 == data_section;\n                  if (!bVar63) {\n                    iVar29 = 7;\n                    uVar44 = 0xf;\n                    pbVar51 = pbVar52;\n                    pbVar58 = (byte *)".rdata";\n                    do {\n                      if (iVar29 == 0) break;\n                      iVar29 = iVar29 + -1;\n                      bVar62 = *pbVar51 < *pbVar58;\n                      bVar63 = *pbVar51 == *pbVar58;\n                      pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                      pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                    } while (bVar63);\n                    bVar61 = false;\n                    bVar62 = (!bVar62 && !bVar63) == bVar62;\n                    if (!bVar62) {\n                      iVar29 = 8;\n                      pbVar51 = pbVar52;\n                      pbVar58 = (byte *)".rodata";\n                      do {\n                        if (iVar29 == 0) break;\n                        iVar29 = iVar29 + -1;\n                        bVar61 = *pbVar51 < *pbVar58;\n                        bVar62 = *pbVar51 == *pbVar58;\n                        pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                        pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                      } while (bVar62);\n                      bVar63 = false;\n                      bVar62 = (!bVar61 && !bVar62) == bVar61;\n                      if (!bVar62) {\n                        iVar29 = 7;\n                        uVar44 = 0xd;\n                        pbVar51 = pbVar52;\n                        pbVar58 = (byte *)".sdata";\n                        do {\n                          if (iVar29 == 0) break;\n                          iVar29 = iVar29 + -1;\n                          bVar63 = *pbVar51 < *pbVar58;\n                          bVar62 = *pbVar51 == *pbVar58;\n                          pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                          pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                        } while (bVar62);\n                        if ((!bVar63 && !bVar62) != bVar63) {\n                          uVar44 = 3;\n                          bVar62 = paVar27 < bss_section;\n                          bVar63 = paVar27 == bss_section;\n                          if (!bVar63) {\n                            iVar29 = 6;\n                            uVar44 = 0xe;\n                            pbVar51 = (byte *)".sbss";\n                            do {\n                              if (iVar29 == 0) break;\n                              iVar29 = iVar29 + -1;\n                              bVar62 = *pbVar52 < *pbVar51;\n                              bVar63 = *pbVar52 == *pbVar51;\n                              pbVar52 = pbVar52 + (uint)bVar64 * -2 + 1;\n                              pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                            } while (bVar63);\n                            if ((!bVar62 && !bVar63) != bVar62) {\n                              uVar44 = (uint)(paVar27 == paVar23) * 3 + 2;\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }" if (parenthesized_expression "(paVar27 != text_section)" ( (binary_expression "paVar27 != text_section" identifier != identifier) )) (compound_statement "{\n                  uVar44 = 2;\n                  bVar62 = paVar27 < data_section;\n                  bVar63 = paVar27 == data_section;\n                  if (!bVar63) {\n                    iVar29 = 7;\n                    uVar44 = 0xf;\n                    pbVar51 = pbVar52;\n                    pbVar58 = (byte *)".rdata";\n                    do {\n                      if (iVar29 == 0) break;\n                      iVar29 = iVar29 + -1;\n                      bVar62 = *pbVar51 < *pbVar58;\n                      bVar63 = *pbVar51 == *pbVar58;\n                      pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                      pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                    } while (bVar63);\n                    bVar61 = false;\n                    bVar62 = (!bVar62 && !bVar63) == bVar62;\n                    if (!bVar62) {\n                      iVar29 = 8;\n                      pbVar51 = pbVar52;\n                      pbVar58 = (byte *)".rodata";\n                      do {\n                        if (iVar29 == 0) break;\n                        iVar29 = iVar29 + -1;\n                        bVar61 = *pbVar51 < *pbVar58;\n                        bVar62 = *pbVar51 == *pbVar58;\n                        pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                        pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                      } while (bVar62);\n                      bVar63 = false;\n                      bVar62 = (!bVar61 && !bVar62) == bVar61;\n                      if (!bVar62) {\n                        iVar29 = 7;\n                        uVar44 = 0xd;\n                        pbVar51 = pbVar52;\n                        pbVar58 = (byte *)".sdata";\n                        do {\n                          if (iVar29 == 0) break;\n                          iVar29 = iVar29 + -1;\n                          bVar63 = *pbVar51 < *pbVar58;\n                          bVar62 = *pbVar51 == *pbVar58;\n                          pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                          pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                        } while (bVar62);\n                        if ((!bVar63 && !bVar62) != bVar63) {\n                          uVar44 = 3;\n                          bVar62 = paVar27 < bss_section;\n                          bVar63 = paVar27 == bss_section;\n                          if (!bVar63) {\n                            iVar29 = 6;\n                            uVar44 = 0xe;\n                            pbVar51 = (byte *)".sbss";\n                            do {\n                              if (iVar29 == 0) break;\n                              iVar29 = iVar29 + -1;\n                              bVar62 = *pbVar52 < *pbVar51;\n                              bVar63 = *pbVar52 == *pbVar51;\n                              pbVar52 = pbVar52 + (uint)bVar64 * -2 + 1;\n                              pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                            } while (bVar63);\n                            if ((!bVar62 && !bVar63) != bVar62) {\n                              uVar44 = (uint)(paVar27 == paVar23) * 3 + 2;\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }" { (expression_statement "uVar44 = 2;" (assignment_expression "uVar44 = 2" identifier = number_literal) ;) (expression_statement "bVar62 = paVar27 < data_section;" (assignment_expression "bVar62 = paVar27 < data_section" identifier = (binary_expression "paVar27 < data_section" identifier < identifier)) ;) (expression_statement "bVar63 = paVar27 == data_section;" (assignment_expression "bVar63 = paVar27 == data_section" identifier = (binary_expression "paVar27 == data_section" identifier == identifier)) ;) (if_statement "if (!bVar63) {\n                    iVar29 = 7;\n                    uVar44 = 0xf;\n                    pbVar51 = pbVar52;\n                    pbVar58 = (byte *)".rdata";\n                    do {\n                      if (iVar29 == 0) break;\n                      iVar29 = iVar29 + -1;\n                      bVar62 = *pbVar51 < *pbVar58;\n                      bVar63 = *pbVar51 == *pbVar58;\n                      pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                      pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                    } while (bVar63);\n                    bVar61 = false;\n                    bVar62 = (!bVar62 && !bVar63) == bVar62;\n                    if (!bVar62) {\n                      iVar29 = 8;\n                      pbVar51 = pbVar52;\n                      pbVar58 = (byte *)".rodata";\n                      do {\n                        if (iVar29 == 0) break;\n                        iVar29 = iVar29 + -1;\n                        bVar61 = *pbVar51 < *pbVar58;\n                        bVar62 = *pbVar51 == *pbVar58;\n                        pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                        pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                      } while (bVar62);\n                      bVar63 = false;\n                      bVar62 = (!bVar61 && !bVar62) == bVar61;\n                      if (!bVar62) {\n                        iVar29 = 7;\n                        uVar44 = 0xd;\n                        pbVar51 = pbVar52;\n                        pbVar58 = (byte *)".sdata";\n                        do {\n                          if (iVar29 == 0) break;\n                          iVar29 = iVar29 + -1;\n                          bVar63 = *pbVar51 < *pbVar58;\n                          bVar62 = *pbVar51 == *pbVar58;\n                          pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                          pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                        } while (bVar62);\n                        if ((!bVar63 && !bVar62) != bVar63) {\n                          uVar44 = 3;\n                          bVar62 = paVar27 < bss_section;\n                          bVar63 = paVar27 == bss_section;\n                          if (!bVar63) {\n                            iVar29 = 6;\n                            uVar44 = 0xe;\n                            pbVar51 = (byte *)".sbss";\n                            do {\n                              if (iVar29 == 0) break;\n                              iVar29 = iVar29 + -1;\n                              bVar62 = *pbVar52 < *pbVar51;\n                              bVar63 = *pbVar52 == *pbVar51;\n                              pbVar52 = pbVar52 + (uint)bVar64 * -2 + 1;\n                              pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                            } while (bVar63);\n                            if ((!bVar62 && !bVar63) != bVar62) {\n                              uVar44 = (uint)(paVar27 == paVar23) * 3 + 2;\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }" if (parenthesized_expression "(!bVar63)" ( (unary_expression "!bVar63" ! identifier) )) (compound_statement "{\n                    iVar29 = 7;\n                    uVar44 = 0xf;\n                    pbVar51 = pbVar52;\n                    pbVar58 = (byte *)".rdata";\n                    do {\n                      if (iVar29 == 0) break;\n                      iVar29 = iVar29 + -1;\n                      bVar62 = *pbVar51 < *pbVar58;\n                      bVar63 = *pbVar51 == *pbVar58;\n                      pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                      pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                    } while (bVar63);\n                    bVar61 = false;\n                    bVar62 = (!bVar62 && !bVar63) == bVar62;\n                    if (!bVar62) {\n                      iVar29 = 8;\n                      pbVar51 = pbVar52;\n                      pbVar58 = (byte *)".rodata";\n                      do {\n                        if (iVar29 == 0) break;\n                        iVar29 = iVar29 + -1;\n                        bVar61 = *pbVar51 < *pbVar58;\n                        bVar62 = *pbVar51 == *pbVar58;\n                        pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                        pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                      } while (bVar62);\n                      bVar63 = false;\n                      bVar62 = (!bVar61 && !bVar62) == bVar61;\n                      if (!bVar62) {\n                        iVar29 = 7;\n                        uVar44 = 0xd;\n                        pbVar51 = pbVar52;\n                        pbVar58 = (byte *)".sdata";\n                        do {\n                          if (iVar29 == 0) break;\n                          iVar29 = iVar29 + -1;\n                          bVar63 = *pbVar51 < *pbVar58;\n                          bVar62 = *pbVar51 == *pbVar58;\n                          pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                          pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                        } while (bVar62);\n                        if ((!bVar63 && !bVar62) != bVar63) {\n                          uVar44 = 3;\n                          bVar62 = paVar27 < bss_section;\n                          bVar63 = paVar27 == bss_section;\n                          if (!bVar63) {\n                            iVar29 = 6;\n                            uVar44 = 0xe;\n                            pbVar51 = (byte *)".sbss";\n                            do {\n                              if (iVar29 == 0) break;\n                              iVar29 = iVar29 + -1;\n                              bVar62 = *pbVar52 < *pbVar51;\n                              bVar63 = *pbVar52 == *pbVar51;\n                              pbVar52 = pbVar52 + (uint)bVar64 * -2 + 1;\n                              pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                            } while (bVar63);\n                            if ((!bVar62 && !bVar63) != bVar62) {\n                              uVar44 = (uint)(paVar27 == paVar23) * 3 + 2;\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }" { (expression_statement "iVar29 = 7;" (assignment_expression "iVar29 = 7" identifier = number_literal) ;) (expression_statement "uVar44 = 0xf;" (assignment_expression "uVar44 = 0xf" identifier = number_literal) ;) (expression_statement "pbVar51 = pbVar52;" (assignment_expression "pbVar51 = pbVar52" identifier = identifier) ;) (expression_statement "pbVar58 = (byte *)".rdata";" (assignment_expression "pbVar58 = (byte *)".rdata"" identifier = (cast_expression "(byte *)".rdata"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".rdata"" " string_content "))) ;) (do_statement "do {\n                      if (iVar29 == 0) break;\n                      iVar29 = iVar29 + -1;\n                      bVar62 = *pbVar51 < *pbVar58;\n                      bVar63 = *pbVar51 == *pbVar58;\n                      pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                      pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                    } while (bVar63);" do (compound_statement "{\n                      if (iVar29 == 0) break;\n                      iVar29 = iVar29 + -1;\n                      bVar62 = *pbVar51 < *pbVar58;\n                      bVar63 = *pbVar51 == *pbVar58;\n                      pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                      pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                    }" { (if_statement "if (iVar29 == 0) break;" if (parenthesized_expression "(iVar29 == 0)" ( (binary_expression "iVar29 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar29 = iVar29 + -1;" (assignment_expression "iVar29 = iVar29 + -1" identifier = (binary_expression "iVar29 + -1" identifier + number_literal)) ;) (expression_statement "bVar62 = *pbVar51 < *pbVar58;" (assignment_expression "bVar62 = *pbVar51 < *pbVar58" identifier = (binary_expression "*pbVar51 < *pbVar58" (pointer_expression "*pbVar51" * identifier) < (pointer_expression "*pbVar58" * identifier))) ;) (expression_statement "bVar63 = *pbVar51 == *pbVar58;" (assignment_expression "bVar63 = *pbVar51 == *pbVar58" identifier = (binary_expression "*pbVar51 == *pbVar58" (pointer_expression "*pbVar51" * identifier) == (pointer_expression "*pbVar58" * identifier))) ;) (expression_statement "pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;" (assignment_expression "pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1" identifier = (binary_expression "pbVar51 + (uint)bVar64 * -2 + 1" (binary_expression "pbVar51 + (uint)bVar64 * -2" identifier + (binary_expression "(uint)bVar64 * -2" (cast_expression "(uint)bVar64" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;" (assignment_expression "pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1" identifier = (binary_expression "pbVar58 + (uint)bVar64 * -2 + 1" (binary_expression "pbVar58 + (uint)bVar64 * -2" identifier + (binary_expression "(uint)bVar64 * -2" (cast_expression "(uint)bVar64" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar63)" ( identifier )) ;) (expression_statement "bVar61 = false;" (assignment_expression "bVar61 = false" identifier = false) ;) (expression_statement "bVar62 = (!bVar62 && !bVar63) == bVar62;" (assignment_expression "bVar62 = (!bVar62 && !bVar63) == bVar62" identifier = (binary_expression "(!bVar62 && !bVar63) == bVar62" (parenthesized_expression "(!bVar62 && !bVar63)" ( (binary_expression "!bVar62 && !bVar63" (unary_expression "!bVar62" ! identifier) && (unary_expression "!bVar63" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar62) {\n                      iVar29 = 8;\n                      pbVar51 = pbVar52;\n                      pbVar58 = (byte *)".rodata";\n                      do {\n                        if (iVar29 == 0) break;\n                        iVar29 = iVar29 + -1;\n                        bVar61 = *pbVar51 < *pbVar58;\n                        bVar62 = *pbVar51 == *pbVar58;\n                        pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                        pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                      } while (bVar62);\n                      bVar63 = false;\n                      bVar62 = (!bVar61 && !bVar62) == bVar61;\n                      if (!bVar62) {\n                        iVar29 = 7;\n                        uVar44 = 0xd;\n                        pbVar51 = pbVar52;\n                        pbVar58 = (byte *)".sdata";\n                        do {\n                          if (iVar29 == 0) break;\n                          iVar29 = iVar29 + -1;\n                          bVar63 = *pbVar51 < *pbVar58;\n                          bVar62 = *pbVar51 == *pbVar58;\n                          pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                          pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                        } while (bVar62);\n                        if ((!bVar63 && !bVar62) != bVar63) {\n                          uVar44 = 3;\n                          bVar62 = paVar27 < bss_section;\n                          bVar63 = paVar27 == bss_section;\n                          if (!bVar63) {\n                            iVar29 = 6;\n                            uVar44 = 0xe;\n                            pbVar51 = (byte *)".sbss";\n                            do {\n                              if (iVar29 == 0) break;\n                              iVar29 = iVar29 + -1;\n                              bVar62 = *pbVar52 < *pbVar51;\n                              bVar63 = *pbVar52 == *pbVar51;\n                              pbVar52 = pbVar52 + (uint)bVar64 * -2 + 1;\n                              pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                            } while (bVar63);\n                            if ((!bVar62 && !bVar63) != bVar62) {\n                              uVar44 = (uint)(paVar27 == paVar23) * 3 + 2;\n                            }\n                          }\n                        }\n                      }\n                    }" if (parenthesized_expression "(!bVar62)" ( (unary_expression "!bVar62" ! identifier) )) (compound_statement "{\n                      iVar29 = 8;\n                      pbVar51 = pbVar52;\n                      pbVar58 = (byte *)".rodata";\n                      do {\n                        if (iVar29 == 0) break;\n                        iVar29 = iVar29 + -1;\n                        bVar61 = *pbVar51 < *pbVar58;\n                        bVar62 = *pbVar51 == *pbVar58;\n                        pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                        pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                      } while (bVar62);\n                      bVar63 = false;\n                      bVar62 = (!bVar61 && !bVar62) == bVar61;\n                      if (!bVar62) {\n                        iVar29 = 7;\n                        uVar44 = 0xd;\n                        pbVar51 = pbVar52;\n                        pbVar58 = (byte *)".sdata";\n                        do {\n                          if (iVar29 == 0) break;\n                          iVar29 = iVar29 + -1;\n                          bVar63 = *pbVar51 < *pbVar58;\n                          bVar62 = *pbVar51 == *pbVar58;\n                          pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                          pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                        } while (bVar62);\n                        if ((!bVar63 && !bVar62) != bVar63) {\n                          uVar44 = 3;\n                          bVar62 = paVar27 < bss_section;\n                          bVar63 = paVar27 == bss_section;\n                          if (!bVar63) {\n                            iVar29 = 6;\n                            uVar44 = 0xe;\n                            pbVar51 = (byte *)".sbss";\n                            do {\n                              if (iVar29 == 0) break;\n                              iVar29 = iVar29 + -1;\n                              bVar62 = *pbVar52 < *pbVar51;\n                              bVar63 = *pbVar52 == *pbVar51;\n                              pbVar52 = pbVar52 + (uint)bVar64 * -2 + 1;\n                              pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                            } while (bVar63);\n                            if ((!bVar62 && !bVar63) != bVar62) {\n                              uVar44 = (uint)(paVar27 == paVar23) * 3 + 2;\n                            }\n                          }\n                        }\n                      }\n                    }" { (expression_statement "iVar29 = 8;" (assignment_expression "iVar29 = 8" identifier = number_literal) ;) (expression_statement "pbVar51 = pbVar52;" (assignment_expression "pbVar51 = pbVar52" identifier = identifier) ;) (expression_statement "pbVar58 = (byte *)".rodata";" (assignment_expression "pbVar58 = (byte *)".rodata"" identifier = (cast_expression "(byte *)".rodata"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".rodata"" " string_content "))) ;) (do_statement "do {\n                        if (iVar29 == 0) break;\n                        iVar29 = iVar29 + -1;\n                        bVar61 = *pbVar51 < *pbVar58;\n                        bVar62 = *pbVar51 == *pbVar58;\n                        pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                        pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                      } while (bVar62);" do (compound_statement "{\n                        if (iVar29 == 0) break;\n                        iVar29 = iVar29 + -1;\n                        bVar61 = *pbVar51 < *pbVar58;\n                        bVar62 = *pbVar51 == *pbVar58;\n                        pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                        pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                      }" { (if_statement "if (iVar29 == 0) break;" if (parenthesized_expression "(iVar29 == 0)" ( (binary_expression "iVar29 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar29 = iVar29 + -1;" (assignment_expression "iVar29 = iVar29 + -1" identifier = (binary_expression "iVar29 + -1" identifier + number_literal)) ;) (expression_statement "bVar61 = *pbVar51 < *pbVar58;" (assignment_expression "bVar61 = *pbVar51 < *pbVar58" identifier = (binary_expression "*pbVar51 < *pbVar58" (pointer_expression "*pbVar51" * identifier) < (pointer_expression "*pbVar58" * identifier))) ;) (expression_statement "bVar62 = *pbVar51 == *pbVar58;" (assignment_expression "bVar62 = *pbVar51 == *pbVar58" identifier = (binary_expression "*pbVar51 == *pbVar58" (pointer_expression "*pbVar51" * identifier) == (pointer_expression "*pbVar58" * identifier))) ;) (expression_statement "pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;" (assignment_expression "pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1" identifier = (binary_expression "pbVar51 + (uint)bVar64 * -2 + 1" (binary_expression "pbVar51 + (uint)bVar64 * -2" identifier + (binary_expression "(uint)bVar64 * -2" (cast_expression "(uint)bVar64" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;" (assignment_expression "pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1" identifier = (binary_expression "pbVar58 + (uint)bVar64 * -2 + 1" (binary_expression "pbVar58 + (uint)bVar64 * -2" identifier + (binary_expression "(uint)bVar64 * -2" (cast_expression "(uint)bVar64" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar62)" ( identifier )) ;) (expression_statement "bVar63 = false;" (assignment_expression "bVar63 = false" identifier = false) ;) (expression_statement "bVar62 = (!bVar61 && !bVar62) == bVar61;" (assignment_expression "bVar62 = (!bVar61 && !bVar62) == bVar61" identifier = (binary_expression "(!bVar61 && !bVar62) == bVar61" (parenthesized_expression "(!bVar61 && !bVar62)" ( (binary_expression "!bVar61 && !bVar62" (unary_expression "!bVar61" ! identifier) && (unary_expression "!bVar62" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar62) {\n                        iVar29 = 7;\n                        uVar44 = 0xd;\n                        pbVar51 = pbVar52;\n                        pbVar58 = (byte *)".sdata";\n                        do {\n                          if (iVar29 == 0) break;\n                          iVar29 = iVar29 + -1;\n                          bVar63 = *pbVar51 < *pbVar58;\n                          bVar62 = *pbVar51 == *pbVar58;\n                          pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                          pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                        } while (bVar62);\n                        if ((!bVar63 && !bVar62) != bVar63) {\n                          uVar44 = 3;\n                          bVar62 = paVar27 < bss_section;\n                          bVar63 = paVar27 == bss_section;\n                          if (!bVar63) {\n                            iVar29 = 6;\n                            uVar44 = 0xe;\n                            pbVar51 = (byte *)".sbss";\n                            do {\n                              if (iVar29 == 0) break;\n                              iVar29 = iVar29 + -1;\n                              bVar62 = *pbVar52 < *pbVar51;\n                              bVar63 = *pbVar52 == *pbVar51;\n                              pbVar52 = pbVar52 + (uint)bVar64 * -2 + 1;\n                              pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                            } while (bVar63);\n                            if ((!bVar62 && !bVar63) != bVar62) {\n                              uVar44 = (uint)(paVar27 == paVar23) * 3 + 2;\n                            }\n                          }\n                        }\n                      }" if (parenthesized_expression "(!bVar62)" ( (unary_expression "!bVar62" ! identifier) )) (compound_statement "{\n                        iVar29 = 7;\n                        uVar44 = 0xd;\n                        pbVar51 = pbVar52;\n                        pbVar58 = (byte *)".sdata";\n                        do {\n                          if (iVar29 == 0) break;\n                          iVar29 = iVar29 + -1;\n                          bVar63 = *pbVar51 < *pbVar58;\n                          bVar62 = *pbVar51 == *pbVar58;\n                          pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                          pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                        } while (bVar62);\n                        if ((!bVar63 && !bVar62) != bVar63) {\n                          uVar44 = 3;\n                          bVar62 = paVar27 < bss_section;\n                          bVar63 = paVar27 == bss_section;\n                          if (!bVar63) {\n                            iVar29 = 6;\n                            uVar44 = 0xe;\n                            pbVar51 = (byte *)".sbss";\n                            do {\n                              if (iVar29 == 0) break;\n                              iVar29 = iVar29 + -1;\n                              bVar62 = *pbVar52 < *pbVar51;\n                              bVar63 = *pbVar52 == *pbVar51;\n                              pbVar52 = pbVar52 + (uint)bVar64 * -2 + 1;\n                              pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                            } while (bVar63);\n                            if ((!bVar62 && !bVar63) != bVar62) {\n                              uVar44 = (uint)(paVar27 == paVar23) * 3 + 2;\n                            }\n                          }\n                        }\n                      }" { (expression_statement "iVar29 = 7;" (assignment_expression "iVar29 = 7" identifier = number_literal) ;) (expression_statement "uVar44 = 0xd;" (assignment_expression "uVar44 = 0xd" identifier = number_literal) ;) (expression_statement "pbVar51 = pbVar52;" (assignment_expression "pbVar51 = pbVar52" identifier = identifier) ;) (expression_statement "pbVar58 = (byte *)".sdata";" (assignment_expression "pbVar58 = (byte *)".sdata"" identifier = (cast_expression "(byte *)".sdata"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".sdata"" " string_content "))) ;) (do_statement "do {\n                          if (iVar29 == 0) break;\n                          iVar29 = iVar29 + -1;\n                          bVar63 = *pbVar51 < *pbVar58;\n                          bVar62 = *pbVar51 == *pbVar58;\n                          pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                          pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                        } while (bVar62);" do (compound_statement "{\n                          if (iVar29 == 0) break;\n                          iVar29 = iVar29 + -1;\n                          bVar63 = *pbVar51 < *pbVar58;\n                          bVar62 = *pbVar51 == *pbVar58;\n                          pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                          pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;\n                        }" { (if_statement "if (iVar29 == 0) break;" if (parenthesized_expression "(iVar29 == 0)" ( (binary_expression "iVar29 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar29 = iVar29 + -1;" (assignment_expression "iVar29 = iVar29 + -1" identifier = (binary_expression "iVar29 + -1" identifier + number_literal)) ;) (expression_statement "bVar63 = *pbVar51 < *pbVar58;" (assignment_expression "bVar63 = *pbVar51 < *pbVar58" identifier = (binary_expression "*pbVar51 < *pbVar58" (pointer_expression "*pbVar51" * identifier) < (pointer_expression "*pbVar58" * identifier))) ;) (expression_statement "bVar62 = *pbVar51 == *pbVar58;" (assignment_expression "bVar62 = *pbVar51 == *pbVar58" identifier = (binary_expression "*pbVar51 == *pbVar58" (pointer_expression "*pbVar51" * identifier) == (pointer_expression "*pbVar58" * identifier))) ;) (expression_statement "pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;" (assignment_expression "pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1" identifier = (binary_expression "pbVar51 + (uint)bVar64 * -2 + 1" (binary_expression "pbVar51 + (uint)bVar64 * -2" identifier + (binary_expression "(uint)bVar64 * -2" (cast_expression "(uint)bVar64" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1;" (assignment_expression "pbVar58 = pbVar58 + (uint)bVar64 * -2 + 1" identifier = (binary_expression "pbVar58 + (uint)bVar64 * -2 + 1" (binary_expression "pbVar58 + (uint)bVar64 * -2" identifier + (binary_expression "(uint)bVar64 * -2" (cast_expression "(uint)bVar64" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar62)" ( identifier )) ;) (if_statement "if ((!bVar63 && !bVar62) != bVar63) {\n                          uVar44 = 3;\n                          bVar62 = paVar27 < bss_section;\n                          bVar63 = paVar27 == bss_section;\n                          if (!bVar63) {\n                            iVar29 = 6;\n                            uVar44 = 0xe;\n                            pbVar51 = (byte *)".sbss";\n                            do {\n                              if (iVar29 == 0) break;\n                              iVar29 = iVar29 + -1;\n                              bVar62 = *pbVar52 < *pbVar51;\n                              bVar63 = *pbVar52 == *pbVar51;\n                              pbVar52 = pbVar52 + (uint)bVar64 * -2 + 1;\n                              pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                            } while (bVar63);\n                            if ((!bVar62 && !bVar63) != bVar62) {\n                              uVar44 = (uint)(paVar27 == paVar23) * 3 + 2;\n                            }\n                          }\n                        }" if (parenthesized_expression "((!bVar63 && !bVar62) != bVar63)" ( (binary_expression "(!bVar63 && !bVar62) != bVar63" (parenthesized_expression "(!bVar63 && !bVar62)" ( (binary_expression "!bVar63 && !bVar62" (unary_expression "!bVar63" ! identifier) && (unary_expression "!bVar62" ! identifier)) )) != identifier) )) (compound_statement "{\n                          uVar44 = 3;\n                          bVar62 = paVar27 < bss_section;\n                          bVar63 = paVar27 == bss_section;\n                          if (!bVar63) {\n                            iVar29 = 6;\n                            uVar44 = 0xe;\n                            pbVar51 = (byte *)".sbss";\n                            do {\n                              if (iVar29 == 0) break;\n                              iVar29 = iVar29 + -1;\n                              bVar62 = *pbVar52 < *pbVar51;\n                              bVar63 = *pbVar52 == *pbVar51;\n                              pbVar52 = pbVar52 + (uint)bVar64 * -2 + 1;\n                              pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                            } while (bVar63);\n                            if ((!bVar62 && !bVar63) != bVar62) {\n                              uVar44 = (uint)(paVar27 == paVar23) * 3 + 2;\n                            }\n                          }\n                        }" { (expression_statement "uVar44 = 3;" (assignment_expression "uVar44 = 3" identifier = number_literal) ;) (expression_statement "bVar62 = paVar27 < bss_section;" (assignment_expression "bVar62 = paVar27 < bss_section" identifier = (binary_expression "paVar27 < bss_section" identifier < identifier)) ;) (expression_statement "bVar63 = paVar27 == bss_section;" (assignment_expression "bVar63 = paVar27 == bss_section" identifier = (binary_expression "paVar27 == bss_section" identifier == identifier)) ;) (if_statement "if (!bVar63) {\n                            iVar29 = 6;\n                            uVar44 = 0xe;\n                            pbVar51 = (byte *)".sbss";\n                            do {\n                              if (iVar29 == 0) break;\n                              iVar29 = iVar29 + -1;\n                              bVar62 = *pbVar52 < *pbVar51;\n                              bVar63 = *pbVar52 == *pbVar51;\n                              pbVar52 = pbVar52 + (uint)bVar64 * -2 + 1;\n                              pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                            } while (bVar63);\n                            if ((!bVar62 && !bVar63) != bVar62) {\n                              uVar44 = (uint)(paVar27 == paVar23) * 3 + 2;\n                            }\n                          }" if (parenthesized_expression "(!bVar63)" ( (unary_expression "!bVar63" ! identifier) )) (compound_statement "{\n                            iVar29 = 6;\n                            uVar44 = 0xe;\n                            pbVar51 = (byte *)".sbss";\n                            do {\n                              if (iVar29 == 0) break;\n                              iVar29 = iVar29 + -1;\n                              bVar62 = *pbVar52 < *pbVar51;\n                              bVar63 = *pbVar52 == *pbVar51;\n                              pbVar52 = pbVar52 + (uint)bVar64 * -2 + 1;\n                              pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                            } while (bVar63);\n                            if ((!bVar62 && !bVar63) != bVar62) {\n                              uVar44 = (uint)(paVar27 == paVar23) * 3 + 2;\n                            }\n                          }" { (expression_statement "iVar29 = 6;" (assignment_expression "iVar29 = 6" identifier = number_literal) ;) (expression_statement "uVar44 = 0xe;" (assignment_expression "uVar44 = 0xe" identifier = number_literal) ;) (expression_statement "pbVar51 = (byte *)".sbss";" (assignment_expression "pbVar51 = (byte *)".sbss"" identifier = (cast_expression "(byte *)".sbss"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".sbss"" " string_content "))) ;) (do_statement "do {\n                              if (iVar29 == 0) break;\n                              iVar29 = iVar29 + -1;\n                              bVar62 = *pbVar52 < *pbVar51;\n                              bVar63 = *pbVar52 == *pbVar51;\n                              pbVar52 = pbVar52 + (uint)bVar64 * -2 + 1;\n                              pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                            } while (bVar63);" do (compound_statement "{\n                              if (iVar29 == 0) break;\n                              iVar29 = iVar29 + -1;\n                              bVar62 = *pbVar52 < *pbVar51;\n                              bVar63 = *pbVar52 == *pbVar51;\n                              pbVar52 = pbVar52 + (uint)bVar64 * -2 + 1;\n                              pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;\n                            }" { (if_statement "if (iVar29 == 0) break;" if (parenthesized_expression "(iVar29 == 0)" ( (binary_expression "iVar29 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar29 = iVar29 + -1;" (assignment_expression "iVar29 = iVar29 + -1" identifier = (binary_expression "iVar29 + -1" identifier + number_literal)) ;) (expression_statement "bVar62 = *pbVar52 < *pbVar51;" (assignment_expression "bVar62 = *pbVar52 < *pbVar51" identifier = (binary_expression "*pbVar52 < *pbVar51" (pointer_expression "*pbVar52" * identifier) < (pointer_expression "*pbVar51" * identifier))) ;) (expression_statement "bVar63 = *pbVar52 == *pbVar51;" (assignment_expression "bVar63 = *pbVar52 == *pbVar51" identifier = (binary_expression "*pbVar52 == *pbVar51" (pointer_expression "*pbVar52" * identifier) == (pointer_expression "*pbVar51" * identifier))) ;) (expression_statement "pbVar52 = pbVar52 + (uint)bVar64 * -2 + 1;" (assignment_expression "pbVar52 = pbVar52 + (uint)bVar64 * -2 + 1" identifier = (binary_expression "pbVar52 + (uint)bVar64 * -2 + 1" (binary_expression "pbVar52 + (uint)bVar64 * -2" identifier + (binary_expression "(uint)bVar64 * -2" (cast_expression "(uint)bVar64" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1;" (assignment_expression "pbVar51 = pbVar51 + (uint)bVar64 * -2 + 1" identifier = (binary_expression "pbVar51 + (uint)bVar64 * -2 + 1" (binary_expression "pbVar51 + (uint)bVar64 * -2" identifier + (binary_expression "(uint)bVar64 * -2" (cast_expression "(uint)bVar64" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar63)" ( identifier )) ;) (if_statement "if ((!bVar62 && !bVar63) != bVar62) {\n                              uVar44 = (uint)(paVar27 == paVar23) * 3 + 2;\n                            }" if (parenthesized_expression "((!bVar62 && !bVar63) != bVar62)" ( (binary_expression "(!bVar62 && !bVar63) != bVar62" (parenthesized_expression "(!bVar62 && !bVar63)" ( (binary_expression "!bVar62 && !bVar63" (unary_expression "!bVar62" ! identifier) && (unary_expression "!bVar63" ! identifier)) )) != identifier) )) (compound_statement "{\n                              uVar44 = (uint)(paVar27 == paVar23) * 3 + 2;\n                            }" { (expression_statement "uVar44 = (uint)(paVar27 == paVar23) * 3 + 2;" (assignment_expression "uVar44 = (uint)(paVar27 == paVar23) * 3 + 2" identifier = (binary_expression "(uint)(paVar27 == paVar23) * 3 + 2" (binary_expression "(uint)(paVar27 == paVar23) * 3" (call_expression "(uint)(paVar27 == paVar23)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(paVar27 == paVar23)" ( (binary_expression "paVar27 == paVar23" identifier == identifier) ))) * number_literal) + number_literal)) ;) })) })) })) })) })) })) })) }) (else_clause "else {\n                vVar65 = S_GET_VALUE(psVar38);\n                if (vVar65 != 0) {\n                  vVar65 = S_GET_VALUE(psVar38);\n                  iVar29 = (int)(vVar65 >> 0x20);\n                  uVar49 = bfd_get_gp_size(stdoutput);\n                  uVar44 = 0x12;\n                  if (iVar29 == 0 && (uint)(uVar49 < (uint)vVar65) <= (uint)-iVar29)\n                  goto LAB_00023df1;\n                }\n                uVar44 = 0x11;\n              }" else (compound_statement "{\n                vVar65 = S_GET_VALUE(psVar38);\n                if (vVar65 != 0) {\n                  vVar65 = S_GET_VALUE(psVar38);\n                  iVar29 = (int)(vVar65 >> 0x20);\n                  uVar49 = bfd_get_gp_size(stdoutput);\n                  uVar44 = 0x12;\n                  if (iVar29 == 0 && (uint)(uVar49 < (uint)vVar65) <= (uint)-iVar29)\n                  goto LAB_00023df1;\n                }\n                uVar44 = 0x11;\n              }" { (expression_statement "vVar65 = S_GET_VALUE(psVar38);" (assignment_expression "vVar65 = S_GET_VALUE(psVar38)" identifier = (call_expression "S_GET_VALUE(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) ;) (if_statement "if (vVar65 != 0) {\n                  vVar65 = S_GET_VALUE(psVar38);\n                  iVar29 = (int)(vVar65 >> 0x20);\n                  uVar49 = bfd_get_gp_size(stdoutput);\n                  uVar44 = 0x12;\n                  if (iVar29 == 0 && (uint)(uVar49 < (uint)vVar65) <= (uint)-iVar29)\n                  goto LAB_00023df1;\n                }" if (parenthesized_expression "(vVar65 != 0)" ( (binary_expression "vVar65 != 0" identifier != number_literal) )) (compound_statement "{\n                  vVar65 = S_GET_VALUE(psVar38);\n                  iVar29 = (int)(vVar65 >> 0x20);\n                  uVar49 = bfd_get_gp_size(stdoutput);\n                  uVar44 = 0x12;\n                  if (iVar29 == 0 && (uint)(uVar49 < (uint)vVar65) <= (uint)-iVar29)\n                  goto LAB_00023df1;\n                }" { (expression_statement "vVar65 = S_GET_VALUE(psVar38);" (assignment_expression "vVar65 = S_GET_VALUE(psVar38)" identifier = (call_expression "S_GET_VALUE(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) ;) (expression_statement "iVar29 = (int)(vVar65 >> 0x20);" (assignment_expression "iVar29 = (int)(vVar65 >> 0x20)" identifier = (cast_expression "(int)(vVar65 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(vVar65 >> 0x20)" ( (binary_expression "vVar65 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar49 = bfd_get_gp_size(stdoutput);" (assignment_expression "uVar49 = bfd_get_gp_size(stdoutput)" identifier = (call_expression "bfd_get_gp_size(stdoutput)" identifier (argument_list "(stdoutput)" ( identifier )))) ;) (expression_statement "uVar44 = 0x12;" (assignment_expression "uVar44 = 0x12" identifier = number_literal) ;) (if_statement "if (iVar29 == 0 && (uint)(uVar49 < (uint)vVar65) <= (uint)-iVar29)\n                  goto LAB_00023df1;" if (parenthesized_expression "(iVar29 == 0 && (uint)(uVar49 < (uint)vVar65) <= (uint)-iVar29)" ( (binary_expression "iVar29 == 0 && (uint)(uVar49 < (uint)vVar65) <= (uint)-iVar29" (binary_expression "iVar29 == 0" identifier == number_literal) && (binary_expression "(uint)(uVar49 < (uint)vVar65) <= (uint)-iVar29" (call_expression "(uint)(uVar49 < (uint)vVar65)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar49 < (uint)vVar65)" ( (binary_expression "uVar49 < (uint)vVar65" identifier < (cast_expression "(uint)vVar65" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) <= (binary_expression "(uint)-iVar29" (parenthesized_expression "(uint)" ( identifier )) - identifier))) )) (goto_statement "goto LAB_00023df1;" goto statement_identifier ;)) })) (expression_statement "uVar44 = 0x11;" (assignment_expression "uVar44 = 0x11" identifier = number_literal) ;) }))) }))) (labeled_statement "LAB_00023df1:\n            (plVar7->ecoff_sym).asym.field_0xc =\n                 (plVar7->ecoff_sym).asym.field_0xc & 0xc0 | bVar20 & 0x3f;" statement_identifier : (expression_statement "(plVar7->ecoff_sym).asym.field_0xc =\n                 (plVar7->ecoff_sym).asym.field_0xc & 0xc0 | bVar20 & 0x3f;" (assignment_expression "(plVar7->ecoff_sym).asym.field_0xc =\n                 (plVar7->ecoff_sym).asym.field_0xc & 0xc0 | bVar20 & 0x3f" (field_expression "(plVar7->ecoff_sym).asym.field_0xc" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (binary_expression "(plVar7->ecoff_sym).asym.field_0xc & 0xc0 | bVar20 & 0x3f" (binary_expression "(plVar7->ecoff_sym).asym.field_0xc & 0xc0" (field_expression "(plVar7->ecoff_sym).asym.field_0xc" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier) & number_literal) | (binary_expression "bVar20 & 0x3f" identifier & number_literal))) ;)) (expression_statement "*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc =\n                 *(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0xf83f | (ushort)(uVar44 << 6);" (assignment_expression "*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc =\n                 *(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0xf83f | (ushort)(uVar44 << 6)" (pointer_expression "*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc" * (cast_expression "(ushort *)&(plVar7->ecoff_sym).asym.field_0xc" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(plVar7->ecoff_sym).asym.field_0xc" & (field_expression "(plVar7->ecoff_sym).asym.field_0xc" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier)))) = (binary_expression "*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0xf83f | (ushort)(uVar44 << 6)" (binary_expression "*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc & 0xf83f" (pointer_expression "*(ushort *)&(plVar7->ecoff_sym).asym.field_0xc" * (cast_expression "(ushort *)&(plVar7->ecoff_sym).asym.field_0xc" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(plVar7->ecoff_sym).asym.field_0xc" & (field_expression "(plVar7->ecoff_sym).asym.field_0xc" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier)))) & number_literal) | (call_expression "(ushort)(uVar44 << 6)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(uVar44 << 6)" ( (binary_expression "uVar44 << 6" identifier << number_literal) ))))) ;) })) (expression_statement "iVar29 = S_IS_EXTERNAL(psVar38);" (assignment_expression "iVar29 = S_IS_EXTERNAL(psVar38)" identifier = (call_expression "S_IS_EXTERNAL(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) ;) (if_statement "if (((((iVar29 == 0) && (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) ||\n              ((plVar7->proc_ptr != (ecoff_proc *)0x0 ||\n               (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 0)))) ||\n             ((*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300)) {\n            iVar29 = S_IS_COMMON(psVar38);\n            if (iVar29 == 0) {\n              if (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) != 8) {\n                ptVar33 = (tag *)plVar7->name;\n                pcVar22 = strchr((char *)ptVar33,1);\n                if (pcVar22 != (char *)0x0) goto LAB_00023e7a;\n                sVar34 = add_string(&local_9c->file[0].strings,local_9c->file[0].str_hash,\n                                    (char *)ptVar33,(shash_t **)0x0);\n                (plVar7->ecoff_sym).asym.iss = sVar34;\n                plVar9 = plVar7->begin_ptr;\n                if (plVar9 != (localsym *)0x0) goto LAB_00023e89;\n                pfVar32 = plVar7->forward_ref;\n                local_a4 = (page *)((int)local_a8 - local_8c);\n                goto joined_r0x000247a5;\n              }\nLAB_00023e7a:\n              plVar9 = plVar7->begin_ptr;\n              if (plVar9 != (localsym *)0x0) goto LAB_00023e89;\n              pfVar32 = plVar7->forward_ref;\n              if (pfVar32 != (forward *)0x0) {\n                local_a4 = (page *)((int)local_a8 - local_8c);\n                goto LAB_00023ff8;\n              }\n              goto LAB_0002402d;\n            }\n          }\n          else {\n            S_IS_COMMON(psVar38);\n          }" if (parenthesized_expression "(((((iVar29 == 0) && (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) ||\n              ((plVar7->proc_ptr != (ecoff_proc *)0x0 ||\n               (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 0)))) ||\n             ((*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300))" ( (binary_expression "((((iVar29 == 0) && (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) ||\n              ((plVar7->proc_ptr != (ecoff_proc *)0x0 ||\n               (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 0)))) ||\n             ((*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300)" (parenthesized_expression "((((iVar29 == 0) && (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) ||\n              ((plVar7->proc_ptr != (ecoff_proc *)0x0 ||\n               (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 0))))" ( (binary_expression "(((iVar29 == 0) && (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) ||\n              ((plVar7->proc_ptr != (ecoff_proc *)0x0 ||\n               (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 0)))" (parenthesized_expression "(((iVar29 == 0) && (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0))" ( (binary_expression "((iVar29 == 0) && (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n               (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)" (parenthesized_expression "((iVar29 == 0) && (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0))" ( (binary_expression "(iVar29 == 0) && (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)" (parenthesized_expression "(iVar29 == 0)" ( (binary_expression "iVar29 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)" ( (comma_expression "iVar29 = S_IS_WEAK(psVar38), iVar29 == 0" (assignment_expression "iVar29 = S_IS_WEAK(psVar38)" identifier = (call_expression "S_IS_WEAK(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) , (binary_expression "iVar29 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)" ( (comma_expression "iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0" (assignment_expression "iVar29 = S_IS_DEFINED(psVar38)" identifier = (call_expression "S_IS_DEFINED(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) , (binary_expression "iVar29 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "((plVar7->proc_ptr != (ecoff_proc *)0x0 ||\n               (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 0)))" ( (parenthesized_expression "(plVar7->proc_ptr != (ecoff_proc *)0x0 ||\n               (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 0))" ( (binary_expression "plVar7->proc_ptr != (ecoff_proc *)0x0 ||\n               (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 0)" (binary_expression "plVar7->proc_ptr != (ecoff_proc *)0x0" (field_expression "plVar7->proc_ptr" identifier -> field_identifier) != (cast_expression "(ecoff_proc *)0x0" ( (type_descriptor "ecoff_proc *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 0)" ( (binary_expression "((plVar7->ecoff_sym).asym.field_0xc & 0x3f) == 0" (parenthesized_expression "((plVar7->ecoff_sym).asym.field_0xc & 0x3f)" ( (binary_expression "(plVar7->ecoff_sym).asym.field_0xc & 0x3f" (field_expression "(plVar7->ecoff_sym).asym.field_0xc" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier) & number_literal) )) == number_literal) ))) )) ))) )) || (parenthesized_expression "((*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300)" ( (binary_expression "(*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300" (parenthesized_expression "(*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00)" ( (binary_expression "*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00" (binary_expression "*(uint *)&(plVar7->ecoff_sym).asym.field_0xc >> 0xc" (pointer_expression "*(uint *)&(plVar7->ecoff_sym).asym.field_0xc" * (cast_expression "(uint *)&(plVar7->ecoff_sym).asym.field_0xc" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(plVar7->ecoff_sym).asym.field_0xc" & (field_expression "(plVar7->ecoff_sym).asym.field_0xc" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier)))) >> number_literal) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n            iVar29 = S_IS_COMMON(psVar38);\n            if (iVar29 == 0) {\n              if (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) != 8) {\n                ptVar33 = (tag *)plVar7->name;\n                pcVar22 = strchr((char *)ptVar33,1);\n                if (pcVar22 != (char *)0x0) goto LAB_00023e7a;\n                sVar34 = add_string(&local_9c->file[0].strings,local_9c->file[0].str_hash,\n                                    (char *)ptVar33,(shash_t **)0x0);\n                (plVar7->ecoff_sym).asym.iss = sVar34;\n                plVar9 = plVar7->begin_ptr;\n                if (plVar9 != (localsym *)0x0) goto LAB_00023e89;\n                pfVar32 = plVar7->forward_ref;\n                local_a4 = (page *)((int)local_a8 - local_8c);\n                goto joined_r0x000247a5;\n              }\nLAB_00023e7a:\n              plVar9 = plVar7->begin_ptr;\n              if (plVar9 != (localsym *)0x0) goto LAB_00023e89;\n              pfVar32 = plVar7->forward_ref;\n              if (pfVar32 != (forward *)0x0) {\n                local_a4 = (page *)((int)local_a8 - local_8c);\n                goto LAB_00023ff8;\n              }\n              goto LAB_0002402d;\n            }\n          }" { (expression_statement "iVar29 = S_IS_COMMON(psVar38);" (assignment_expression "iVar29 = S_IS_COMMON(psVar38)" identifier = (call_expression "S_IS_COMMON(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) ;) (if_statement "if (iVar29 == 0) {\n              if (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) != 8) {\n                ptVar33 = (tag *)plVar7->name;\n                pcVar22 = strchr((char *)ptVar33,1);\n                if (pcVar22 != (char *)0x0) goto LAB_00023e7a;\n                sVar34 = add_string(&local_9c->file[0].strings,local_9c->file[0].str_hash,\n                                    (char *)ptVar33,(shash_t **)0x0);\n                (plVar7->ecoff_sym).asym.iss = sVar34;\n                plVar9 = plVar7->begin_ptr;\n                if (plVar9 != (localsym *)0x0) goto LAB_00023e89;\n                pfVar32 = plVar7->forward_ref;\n                local_a4 = (page *)((int)local_a8 - local_8c);\n                goto joined_r0x000247a5;\n              }\nLAB_00023e7a:\n              plVar9 = plVar7->begin_ptr;\n              if (plVar9 != (localsym *)0x0) goto LAB_00023e89;\n              pfVar32 = plVar7->forward_ref;\n              if (pfVar32 != (forward *)0x0) {\n                local_a4 = (page *)((int)local_a8 - local_8c);\n                goto LAB_00023ff8;\n              }\n              goto LAB_0002402d;\n            }" if (parenthesized_expression "(iVar29 == 0)" ( (binary_expression "iVar29 == 0" identifier == number_literal) )) (compound_statement "{\n              if (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) != 8) {\n                ptVar33 = (tag *)plVar7->name;\n                pcVar22 = strchr((char *)ptVar33,1);\n                if (pcVar22 != (char *)0x0) goto LAB_00023e7a;\n                sVar34 = add_string(&local_9c->file[0].strings,local_9c->file[0].str_hash,\n                                    (char *)ptVar33,(shash_t **)0x0);\n                (plVar7->ecoff_sym).asym.iss = sVar34;\n                plVar9 = plVar7->begin_ptr;\n                if (plVar9 != (localsym *)0x0) goto LAB_00023e89;\n                pfVar32 = plVar7->forward_ref;\n                local_a4 = (page *)((int)local_a8 - local_8c);\n                goto joined_r0x000247a5;\n              }\nLAB_00023e7a:\n              plVar9 = plVar7->begin_ptr;\n              if (plVar9 != (localsym *)0x0) goto LAB_00023e89;\n              pfVar32 = plVar7->forward_ref;\n              if (pfVar32 != (forward *)0x0) {\n                local_a4 = (page *)((int)local_a8 - local_8c);\n                goto LAB_00023ff8;\n              }\n              goto LAB_0002402d;\n            }" { (if_statement "if (((plVar7->ecoff_sym).asym.field_0xc & 0x3f) != 8) {\n                ptVar33 = (tag *)plVar7->name;\n                pcVar22 = strchr((char *)ptVar33,1);\n                if (pcVar22 != (char *)0x0) goto LAB_00023e7a;\n                sVar34 = add_string(&local_9c->file[0].strings,local_9c->file[0].str_hash,\n                                    (char *)ptVar33,(shash_t **)0x0);\n                (plVar7->ecoff_sym).asym.iss = sVar34;\n                plVar9 = plVar7->begin_ptr;\n                if (plVar9 != (localsym *)0x0) goto LAB_00023e89;\n                pfVar32 = plVar7->forward_ref;\n                local_a4 = (page *)((int)local_a8 - local_8c);\n                goto joined_r0x000247a5;\n              }" if (parenthesized_expression "(((plVar7->ecoff_sym).asym.field_0xc & 0x3f) != 8)" ( (binary_expression "((plVar7->ecoff_sym).asym.field_0xc & 0x3f) != 8" (parenthesized_expression "((plVar7->ecoff_sym).asym.field_0xc & 0x3f)" ( (binary_expression "(plVar7->ecoff_sym).asym.field_0xc & 0x3f" (field_expression "(plVar7->ecoff_sym).asym.field_0xc" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                ptVar33 = (tag *)plVar7->name;\n                pcVar22 = strchr((char *)ptVar33,1);\n                if (pcVar22 != (char *)0x0) goto LAB_00023e7a;\n                sVar34 = add_string(&local_9c->file[0].strings,local_9c->file[0].str_hash,\n                                    (char *)ptVar33,(shash_t **)0x0);\n                (plVar7->ecoff_sym).asym.iss = sVar34;\n                plVar9 = plVar7->begin_ptr;\n                if (plVar9 != (localsym *)0x0) goto LAB_00023e89;\n                pfVar32 = plVar7->forward_ref;\n                local_a4 = (page *)((int)local_a8 - local_8c);\n                goto joined_r0x000247a5;\n              }" { (expression_statement "ptVar33 = (tag *)plVar7->name;" (assignment_expression "ptVar33 = (tag *)plVar7->name" identifier = (cast_expression "(tag *)plVar7->name" ( (type_descriptor "tag *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "plVar7->name" identifier -> field_identifier))) ;) (expression_statement "pcVar22 = strchr((char *)ptVar33,1);" (assignment_expression "pcVar22 = strchr((char *)ptVar33,1)" identifier = (call_expression "strchr((char *)ptVar33,1)" identifier (argument_list "((char *)ptVar33,1)" ( (cast_expression "(char *)ptVar33" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (pcVar22 != (char *)0x0) goto LAB_00023e7a;" if (parenthesized_expression "(pcVar22 != (char *)0x0)" ( (binary_expression "pcVar22 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00023e7a;" goto statement_identifier ;)) (expression_statement "sVar34 = add_string(&local_9c->file[0].strings,local_9c->file[0].str_hash,\n                                    (char *)ptVar33,(shash_t **)0x0);" (assignment_expression "sVar34 = add_string(&local_9c->file[0].strings,local_9c->file[0].str_hash,\n                                    (char *)ptVar33,(shash_t **)0x0)" identifier = (call_expression "add_string(&local_9c->file[0].strings,local_9c->file[0].str_hash,\n                                    (char *)ptVar33,(shash_t **)0x0)" identifier (argument_list "(&local_9c->file[0].strings,local_9c->file[0].str_hash,\n                                    (char *)ptVar33,(shash_t **)0x0)" ( (pointer_expression "&local_9c->file[0].strings" & (field_expression "local_9c->file[0].strings" (subscript_expression "local_9c->file[0]" (field_expression "local_9c->file" identifier -> field_identifier) [ number_literal ]) . field_identifier)) , (field_expression "local_9c->file[0].str_hash" (subscript_expression "local_9c->file[0]" (field_expression "local_9c->file" identifier -> field_identifier) [ number_literal ]) . field_identifier) , (cast_expression "(char *)ptVar33" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(shash_t **)0x0" ( (type_descriptor "shash_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) )))) ;) (expression_statement "(plVar7->ecoff_sym).asym.iss = sVar34;" (assignment_expression "(plVar7->ecoff_sym).asym.iss = sVar34" (field_expression "(plVar7->ecoff_sym).asym.iss" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "plVar9 = plVar7->begin_ptr;" (assignment_expression "plVar9 = plVar7->begin_ptr" identifier = (field_expression "plVar7->begin_ptr" identifier -> field_identifier)) ;) (if_statement "if (plVar9 != (localsym *)0x0) goto LAB_00023e89;" if (parenthesized_expression "(plVar9 != (localsym *)0x0)" ( (binary_expression "plVar9 != (localsym *)0x0" identifier != (cast_expression "(localsym *)0x0" ( (type_descriptor "localsym *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00023e89;" goto statement_identifier ;)) (expression_statement "pfVar32 = plVar7->forward_ref;" (assignment_expression "pfVar32 = plVar7->forward_ref" identifier = (field_expression "plVar7->forward_ref" identifier -> field_identifier)) ;) (expression_statement "local_a4 = (page *)((int)local_a8 - local_8c);" (assignment_expression "local_a4 = (page *)((int)local_a8 - local_8c)" identifier = (cast_expression "(page *)((int)local_a8 - local_8c)" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 - local_8c)" ( (binary_expression "(int)local_a8 - local_8c" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (goto_statement "goto joined_r0x000247a5;" goto statement_identifier ;) })) (labeled_statement "LAB_00023e7a:\n              plVar9 = plVar7->begin_ptr;" statement_identifier : (expression_statement "plVar9 = plVar7->begin_ptr;" (assignment_expression "plVar9 = plVar7->begin_ptr" identifier = (field_expression "plVar7->begin_ptr" identifier -> field_identifier)) ;)) (if_statement "if (plVar9 != (localsym *)0x0) goto LAB_00023e89;" if (parenthesized_expression "(plVar9 != (localsym *)0x0)" ( (binary_expression "plVar9 != (localsym *)0x0" identifier != (cast_expression "(localsym *)0x0" ( (type_descriptor "localsym *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00023e89;" goto statement_identifier ;)) (expression_statement "pfVar32 = plVar7->forward_ref;" (assignment_expression "pfVar32 = plVar7->forward_ref" identifier = (field_expression "plVar7->forward_ref" identifier -> field_identifier)) ;) (if_statement "if (pfVar32 != (forward *)0x0) {\n                local_a4 = (page *)((int)local_a8 - local_8c);\n                goto LAB_00023ff8;\n              }" if (parenthesized_expression "(pfVar32 != (forward *)0x0)" ( (binary_expression "pfVar32 != (forward *)0x0" identifier != (cast_expression "(forward *)0x0" ( (type_descriptor "forward *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                local_a4 = (page *)((int)local_a8 - local_8c);\n                goto LAB_00023ff8;\n              }" { (expression_statement "local_a4 = (page *)((int)local_a8 - local_8c);" (assignment_expression "local_a4 = (page *)((int)local_a8 - local_8c)" identifier = (cast_expression "(page *)((int)local_a8 - local_8c)" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 - local_8c)" ( (binary_expression "(int)local_a8 - local_8c" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (goto_statement "goto LAB_00023ff8;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002402d;" goto statement_identifier ;) })) }) (else_clause "else {\n            S_IS_COMMON(psVar38);\n          }" else (compound_statement "{\n            S_IS_COMMON(psVar38);\n          }" { (expression_statement "S_IS_COMMON(psVar38);" (call_expression "S_IS_COMMON(psVar38)" identifier (argument_list "(psVar38)" ( identifier ))) ;) }))) (if_statement "if (plVar7->begin_ptr != (localsym *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }" if (parenthesized_expression "(plVar7->begin_ptr != (localsym *)0x0)" ( (binary_expression "plVar7->begin_ptr != (localsym *)0x0" (field_expression "plVar7->begin_ptr" identifier -> field_identifier) != (cast_expression "(localsym *)0x0" ( (type_descriptor "localsym *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }" { comment (expression_statement "as_abort("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");" (call_expression "as_abort("../../gas/ecoff.c",0x101e,"ecoff_build_symbols")" identifier (argument_list "("../../gas/ecoff.c",0x101e,"ecoff_build_symbols")" ( (string_literal ""../../gas/ecoff.c"" " string_content ") , number_literal , (string_literal ""ecoff_build_symbols"" " string_content ") ))) ;) })) (if_statement "if (plVar7->forward_ref != (forward *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }" if (parenthesized_expression "(plVar7->forward_ref != (forward *)0x0)" ( (binary_expression "plVar7->forward_ref != (forward *)0x0" (field_expression "plVar7->forward_ref" identifier -> field_identifier) != (cast_expression "(forward *)0x0" ( (type_descriptor "forward *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }" { comment (expression_statement "as_abort("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");" (call_expression "as_abort("../../gas/ecoff.c",0x1069,"ecoff_build_symbols")" identifier (argument_list "("../../gas/ecoff.c",0x1069,"ecoff_build_symbols")" ( (string_literal ""../../gas/ecoff.c"" " string_content ") , number_literal , (string_literal ""ecoff_build_symbols"" " string_content ") ))) ;) })) (expression_statement "peVar31 = symbol_get_obj(psVar38);" (assignment_expression "peVar31 = symbol_get_obj(psVar38)" identifier = (call_expression "symbol_get_obj(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) ;) (if_statement "if (plVar7 == peVar31->ecoff_symbol) {\nLAB_00024347:\n            (plVar7->ecoff_sym).ifd = local_9c->file[0].file_index;\n            iVar29 = S_IS_EXTERNAL(psVar38);\n            if ((iVar29 != 0) || (iVar29 = S_IS_WEAK(psVar38), iVar29 != 0)) {\n              local_9c->ubyte[0x44] = local_9c->ubyte[0x44] & 0xdf;\n            }\n          }" if (parenthesized_expression "(plVar7 == peVar31->ecoff_symbol)" ( (binary_expression "plVar7 == peVar31->ecoff_symbol" identifier == (field_expression "peVar31->ecoff_symbol" identifier -> field_identifier)) )) (compound_statement "{\nLAB_00024347:\n            (plVar7->ecoff_sym).ifd = local_9c->file[0].file_index;\n            iVar29 = S_IS_EXTERNAL(psVar38);\n            if ((iVar29 != 0) || (iVar29 = S_IS_WEAK(psVar38), iVar29 != 0)) {\n              local_9c->ubyte[0x44] = local_9c->ubyte[0x44] & 0xdf;\n            }\n          }" { (labeled_statement "LAB_00024347:\n            (plVar7->ecoff_sym).ifd = local_9c->file[0].file_index;" statement_identifier : (expression_statement "(plVar7->ecoff_sym).ifd = local_9c->file[0].file_index;" (assignment_expression "(plVar7->ecoff_sym).ifd = local_9c->file[0].file_index" (field_expression "(plVar7->ecoff_sym).ifd" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) = (field_expression "local_9c->file[0].file_index" (subscript_expression "local_9c->file[0]" (field_expression "local_9c->file" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;)) (expression_statement "iVar29 = S_IS_EXTERNAL(psVar38);" (assignment_expression "iVar29 = S_IS_EXTERNAL(psVar38)" identifier = (call_expression "S_IS_EXTERNAL(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) ;) (if_statement "if ((iVar29 != 0) || (iVar29 = S_IS_WEAK(psVar38), iVar29 != 0)) {\n              local_9c->ubyte[0x44] = local_9c->ubyte[0x44] & 0xdf;\n            }" if (parenthesized_expression "((iVar29 != 0) || (iVar29 = S_IS_WEAK(psVar38), iVar29 != 0))" ( (binary_expression "(iVar29 != 0) || (iVar29 = S_IS_WEAK(psVar38), iVar29 != 0)" (parenthesized_expression "(iVar29 != 0)" ( (binary_expression "iVar29 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar29 = S_IS_WEAK(psVar38), iVar29 != 0)" ( (comma_expression "iVar29 = S_IS_WEAK(psVar38), iVar29 != 0" (assignment_expression "iVar29 = S_IS_WEAK(psVar38)" identifier = (call_expression "S_IS_WEAK(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) , (binary_expression "iVar29 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n              local_9c->ubyte[0x44] = local_9c->ubyte[0x44] & 0xdf;\n            }" { (expression_statement "local_9c->ubyte[0x44] = local_9c->ubyte[0x44] & 0xdf;" (assignment_expression "local_9c->ubyte[0x44] = local_9c->ubyte[0x44] & 0xdf" (subscript_expression "local_9c->ubyte[0x44]" (field_expression "local_9c->ubyte" identifier -> field_identifier) [ number_literal ]) = (binary_expression "local_9c->ubyte[0x44] & 0xdf" (subscript_expression "local_9c->ubyte[0x44]" (field_expression "local_9c->ubyte" identifier -> field_identifier) [ number_literal ]) & number_literal)) ;) })) })) }))) (if_statement "if (local_70 <= plVar7 + 1) goto LAB_00024380;" if (parenthesized_expression "(local_70 <= plVar7 + 1)" ( (binary_expression "local_70 <= plVar7 + 1" identifier <= (binary_expression "plVar7 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_00024380;" goto statement_identifier ;)) (expression_statement "ppVar50 = (page *)plVar7[1].file_ptr;" (assignment_expression "ppVar50 = (page *)plVar7[1].file_ptr" identifier = (cast_expression "(page *)plVar7[1].file_ptr" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "plVar7[1].file_ptr" (subscript_expression "plVar7[1]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "plVar7 = plVar7 + 1;" (assignment_expression "plVar7 = plVar7 + 1" identifier = (binary_expression "plVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (goto_statement "goto LAB_000243a4;" goto statement_identifier ;) })) (expression_statement "hdr->isymMax = 0;" (assignment_expression "hdr->isymMax = 0" (field_expression "hdr->isymMax" identifier -> field_identifier) = number_literal) ;) (labeled_statement "LAB_0002554e:\n  hdr->ioptMax = 0;" statement_identifier : (expression_statement "hdr->ioptMax = 0;" (assignment_expression "hdr->ioptMax = 0" (field_expression "hdr->ioptMax" identifier -> field_identifier) = number_literal) ;)) (expression_statement "*(undefined4 *)&hdr->cbOptOffset = 0;" (assignment_expression "*(undefined4 *)&hdr->cbOptOffset = 0" (pointer_expression "*(undefined4 *)&hdr->cbOptOffset" * (cast_expression "(undefined4 *)&hdr->cbOptOffset" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&hdr->cbOptOffset" & (field_expression "hdr->cbOptOffset" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&hdr->cbOptOffset + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&hdr->cbOptOffset + 4) = 0" (pointer_expression "*(undefined4 *)((int)&hdr->cbOptOffset + 4)" * (cast_expression "(undefined4 *)((int)&hdr->cbOptOffset + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&hdr->cbOptOffset + 4)" ( (binary_expression "(int)&hdr->cbOptOffset + 4" (cast_expression "(int)&hdr->cbOptOffset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&hdr->cbOptOffset" & (field_expression "hdr->cbOptOffset" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&hdr->cbAuxOffset + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&hdr->cbAuxOffset + 4) = 0" (pointer_expression "*(undefined4 *)((int)&hdr->cbAuxOffset + 4)" * (cast_expression "(undefined4 *)((int)&hdr->cbAuxOffset + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&hdr->cbAuxOffset + 4)" ( (binary_expression "(int)&hdr->cbAuxOffset + 4" (cast_expression "(int)&hdr->cbAuxOffset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&hdr->cbAuxOffset" & (field_expression "hdr->cbAuxOffset" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)&hdr->cbAuxOffset = local_68;" (assignment_expression "*(uint *)&hdr->cbAuxOffset = local_68" (pointer_expression "*(uint *)&hdr->cbAuxOffset" * (cast_expression "(uint *)&hdr->cbAuxOffset" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&hdr->cbAuxOffset" & (field_expression "hdr->cbAuxOffset" identifier -> field_identifier)))) = identifier) ;) (labeled_statement "LAB_00024eaa:\n  uVar37 = ecoff_padding_adjust(backend,local_78,local_74,local_68,(char **)0x0);" statement_identifier : (expression_statement "uVar37 = ecoff_padding_adjust(backend,local_78,local_74,local_68,(char **)0x0);" (assignment_expression "uVar37 = ecoff_padding_adjust(backend,local_78,local_74,local_68,(char **)0x0)" identifier = (call_expression "ecoff_padding_adjust(backend,local_78,local_74,local_68,(char **)0x0)" identifier (argument_list "(backend,local_78,local_74,local_68,(char **)0x0)" ( identifier , identifier , identifier , identifier , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) )))) ;)) (expression_statement "hdr->iauxMax = uVar37 - (int)hdr->cbAuxOffset >> 2 |\n                 (-(uint)(uVar37 < (uint)hdr->cbAuxOffset) - *(int *)((int)&hdr->cbAuxOffset + 4)) *\n                 0x40000000;" (assignment_expression "hdr->iauxMax = uVar37 - (int)hdr->cbAuxOffset >> 2 |\n                 (-(uint)(uVar37 < (uint)hdr->cbAuxOffset) - *(int *)((int)&hdr->cbAuxOffset + 4)) *\n                 0x40000000" (field_expression "hdr->iauxMax" identifier -> field_identifier) = (binary_expression "uVar37 - (int)hdr->cbAuxOffset >> 2 |\n                 (-(uint)(uVar37 < (uint)hdr->cbAuxOffset) - *(int *)((int)&hdr->cbAuxOffset + 4)) *\n                 0x40000000" (binary_expression "uVar37 - (int)hdr->cbAuxOffset >> 2" (binary_expression "uVar37 - (int)hdr->cbAuxOffset" identifier - (cast_expression "(int)hdr->cbAuxOffset" ( (type_descriptor "int" primitive_type) ) (field_expression "hdr->cbAuxOffset" identifier -> field_identifier))) >> number_literal) | (binary_expression "(-(uint)(uVar37 < (uint)hdr->cbAuxOffset) - *(int *)((int)&hdr->cbAuxOffset + 4)) *\n                 0x40000000" (parenthesized_expression "(-(uint)(uVar37 < (uint)hdr->cbAuxOffset) - *(int *)((int)&hdr->cbAuxOffset + 4))" ( (binary_expression "-(uint)(uVar37 < (uint)hdr->cbAuxOffset) - *(int *)((int)&hdr->cbAuxOffset + 4)" (unary_expression "-(uint)(uVar37 < (uint)hdr->cbAuxOffset)" - (call_expression "(uint)(uVar37 < (uint)hdr->cbAuxOffset)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar37 < (uint)hdr->cbAuxOffset)" ( (binary_expression "uVar37 < (uint)hdr->cbAuxOffset" identifier < (cast_expression "(uint)hdr->cbAuxOffset" ( (type_descriptor "uint" type_identifier) ) (field_expression "hdr->cbAuxOffset" identifier -> field_identifier))) )))) - (pointer_expression "*(int *)((int)&hdr->cbAuxOffset + 4)" * (cast_expression "(int *)((int)&hdr->cbAuxOffset + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&hdr->cbAuxOffset + 4)" ( (binary_expression "(int)&hdr->cbAuxOffset + 4" (cast_expression "(int)&hdr->cbAuxOffset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&hdr->cbAuxOffset" & (field_expression "hdr->cbAuxOffset" identifier -> field_identifier))) + number_literal) ))))) )) * number_literal))) ;) (expression_statement "*(ulong *)&hdr->cbSsOffset = uVar37;" (assignment_expression "*(ulong *)&hdr->cbSsOffset = uVar37" (pointer_expression "*(ulong *)&hdr->cbSsOffset" * (cast_expression "(ulong *)&hdr->cbSsOffset" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&hdr->cbSsOffset" & (field_expression "hdr->cbSsOffset" identifier -> field_identifier)))) = identifier) ;) (expression_statement "pvVar35 = file_desc.first;" (assignment_expression "pvVar35 = file_desc.first" identifier = (field_expression "file_desc.first" identifier . field_identifier)) ;) (expression_statement "local_9c = (page *)file_desc.first;" (assignment_expression "local_9c = (page *)file_desc.first" identifier = (cast_expression "(page *)file_desc.first" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "file_desc.first" identifier . field_identifier))) ;) (expression_statement "*(undefined4 *)((int)&hdr->cbSsOffset + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&hdr->cbSsOffset + 4) = 0" (pointer_expression "*(undefined4 *)((int)&hdr->cbSsOffset + 4)" * (cast_expression "(undefined4 *)((int)&hdr->cbSsOffset + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&hdr->cbSsOffset + 4)" ( (binary_expression "(int)&hdr->cbSsOffset + 4" (cast_expression "(int)&hdr->cbSsOffset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&hdr->cbSsOffset" & (field_expression "hdr->cbSsOffset" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "uVar48 = uVar37;" (assignment_expression "uVar48 = uVar37" identifier = identifier) ;) (if_statement "if (pvVar35 != (vlinks_t *)0x0) {\n    local_a8 = (proc_t *)0x0;\n    do {\n      uVar3 = file_desc.objects_last_page;\n      if (*(vlinks **)((int)local_9c + 4) != (vlinks *)0x0) {\n        uVar3 = file_desc.objects_per_page;\n      }\n      ppVar50 = *(page **)((int)local_9c + 8);\n      ppVar55 = (page *)(ppVar50->file + uVar3);\n      ppVar60 = (page *)*(vlinks **)((int)local_9c + 4);\n      if (ppVar50 < ppVar55) {\n        do {\n          ppVar50->shash[0].sym_ptr = (localsym_t *)local_a8;\n          pvVar35 = ppVar50->file[0].strings.first;\n          pcVar22 = buf + uVar48;\n          if (pvVar35 == (vlinks_t *)0x0) {\n            peVar47 = (efdr *)0x0;\n            lVar25 = 0;\n          }\n          else {\n            peVar47 = (efdr *)0x0;\n            do {\n              if (pvVar35->next == (vlinks *)0x0) {\n                uVar3 = ppVar50->ofile[1].ipdFirst;\n              }\n              else {\n                uVar3 = *(ushort *)(ppVar50->byte + 0x86);\n              }\n              uVar54 = (uint)uVar3;\n              if ((uint)((int)bufend - (int)pcVar22) < uVar54) {\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }\n              peVar47 = (efdr *)((int)&(peVar47->fdr).adr + uVar54);\n              memcpy(pcVar22,pvVar35->datum,uVar54);\n              pvVar35 = pvVar35->next;\n              pcVar22 = pcVar22 + uVar54;\n            } while (pvVar35 != (vlinks *)0x0);\n            local_a8 = (proc_t *)((int)&(peVar47->fdr).adr + (int)&local_a8->sym);\n            lVar25 = (int)peVar47 >> 0x1f;\n            uVar48 = (int)&((localsym_t *)local_a8)->name + uVar37;\n          }\n          ppVar50->sym[0].file_ptr = peVar47;\n          ppVar60 = (page *)(ppVar50->byte + 0x294);\n          ppVar50->lineno[0].lineno = lVar25;\n          ppVar50 = ppVar60;\n        } while (ppVar60 < ppVar55);\n        ppVar60 = (page *)*(vlinks **)((int)local_9c + 4);\n      }\n      local_9c = ppVar60;\n    } while (local_9c != (page *)0x0);\n  }" if (parenthesized_expression "(pvVar35 != (vlinks_t *)0x0)" ( (binary_expression "pvVar35 != (vlinks_t *)0x0" identifier != (cast_expression "(vlinks_t *)0x0" ( (type_descriptor "vlinks_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_a8 = (proc_t *)0x0;\n    do {\n      uVar3 = file_desc.objects_last_page;\n      if (*(vlinks **)((int)local_9c + 4) != (vlinks *)0x0) {\n        uVar3 = file_desc.objects_per_page;\n      }\n      ppVar50 = *(page **)((int)local_9c + 8);\n      ppVar55 = (page *)(ppVar50->file + uVar3);\n      ppVar60 = (page *)*(vlinks **)((int)local_9c + 4);\n      if (ppVar50 < ppVar55) {\n        do {\n          ppVar50->shash[0].sym_ptr = (localsym_t *)local_a8;\n          pvVar35 = ppVar50->file[0].strings.first;\n          pcVar22 = buf + uVar48;\n          if (pvVar35 == (vlinks_t *)0x0) {\n            peVar47 = (efdr *)0x0;\n            lVar25 = 0;\n          }\n          else {\n            peVar47 = (efdr *)0x0;\n            do {\n              if (pvVar35->next == (vlinks *)0x0) {\n                uVar3 = ppVar50->ofile[1].ipdFirst;\n              }\n              else {\n                uVar3 = *(ushort *)(ppVar50->byte + 0x86);\n              }\n              uVar54 = (uint)uVar3;\n              if ((uint)((int)bufend - (int)pcVar22) < uVar54) {\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }\n              peVar47 = (efdr *)((int)&(peVar47->fdr).adr + uVar54);\n              memcpy(pcVar22,pvVar35->datum,uVar54);\n              pvVar35 = pvVar35->next;\n              pcVar22 = pcVar22 + uVar54;\n            } while (pvVar35 != (vlinks *)0x0);\n            local_a8 = (proc_t *)((int)&(peVar47->fdr).adr + (int)&local_a8->sym);\n            lVar25 = (int)peVar47 >> 0x1f;\n            uVar48 = (int)&((localsym_t *)local_a8)->name + uVar37;\n          }\n          ppVar50->sym[0].file_ptr = peVar47;\n          ppVar60 = (page *)(ppVar50->byte + 0x294);\n          ppVar50->lineno[0].lineno = lVar25;\n          ppVar50 = ppVar60;\n        } while (ppVar60 < ppVar55);\n        ppVar60 = (page *)*(vlinks **)((int)local_9c + 4);\n      }\n      local_9c = ppVar60;\n    } while (local_9c != (page *)0x0);\n  }" { (expression_statement "local_a8 = (proc_t *)0x0;" (assignment_expression "local_a8 = (proc_t *)0x0" identifier = (cast_expression "(proc_t *)0x0" ( (type_descriptor "proc_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      uVar3 = file_desc.objects_last_page;\n      if (*(vlinks **)((int)local_9c + 4) != (vlinks *)0x0) {\n        uVar3 = file_desc.objects_per_page;\n      }\n      ppVar50 = *(page **)((int)local_9c + 8);\n      ppVar55 = (page *)(ppVar50->file + uVar3);\n      ppVar60 = (page *)*(vlinks **)((int)local_9c + 4);\n      if (ppVar50 < ppVar55) {\n        do {\n          ppVar50->shash[0].sym_ptr = (localsym_t *)local_a8;\n          pvVar35 = ppVar50->file[0].strings.first;\n          pcVar22 = buf + uVar48;\n          if (pvVar35 == (vlinks_t *)0x0) {\n            peVar47 = (efdr *)0x0;\n            lVar25 = 0;\n          }\n          else {\n            peVar47 = (efdr *)0x0;\n            do {\n              if (pvVar35->next == (vlinks *)0x0) {\n                uVar3 = ppVar50->ofile[1].ipdFirst;\n              }\n              else {\n                uVar3 = *(ushort *)(ppVar50->byte + 0x86);\n              }\n              uVar54 = (uint)uVar3;\n              if ((uint)((int)bufend - (int)pcVar22) < uVar54) {\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }\n              peVar47 = (efdr *)((int)&(peVar47->fdr).adr + uVar54);\n              memcpy(pcVar22,pvVar35->datum,uVar54);\n              pvVar35 = pvVar35->next;\n              pcVar22 = pcVar22 + uVar54;\n            } while (pvVar35 != (vlinks *)0x0);\n            local_a8 = (proc_t *)((int)&(peVar47->fdr).adr + (int)&local_a8->sym);\n            lVar25 = (int)peVar47 >> 0x1f;\n            uVar48 = (int)&((localsym_t *)local_a8)->name + uVar37;\n          }\n          ppVar50->sym[0].file_ptr = peVar47;\n          ppVar60 = (page *)(ppVar50->byte + 0x294);\n          ppVar50->lineno[0].lineno = lVar25;\n          ppVar50 = ppVar60;\n        } while (ppVar60 < ppVar55);\n        ppVar60 = (page *)*(vlinks **)((int)local_9c + 4);\n      }\n      local_9c = ppVar60;\n    } while (local_9c != (page *)0x0);" do (compound_statement "{\n      uVar3 = file_desc.objects_last_page;\n      if (*(vlinks **)((int)local_9c + 4) != (vlinks *)0x0) {\n        uVar3 = file_desc.objects_per_page;\n      }\n      ppVar50 = *(page **)((int)local_9c + 8);\n      ppVar55 = (page *)(ppVar50->file + uVar3);\n      ppVar60 = (page *)*(vlinks **)((int)local_9c + 4);\n      if (ppVar50 < ppVar55) {\n        do {\n          ppVar50->shash[0].sym_ptr = (localsym_t *)local_a8;\n          pvVar35 = ppVar50->file[0].strings.first;\n          pcVar22 = buf + uVar48;\n          if (pvVar35 == (vlinks_t *)0x0) {\n            peVar47 = (efdr *)0x0;\n            lVar25 = 0;\n          }\n          else {\n            peVar47 = (efdr *)0x0;\n            do {\n              if (pvVar35->next == (vlinks *)0x0) {\n                uVar3 = ppVar50->ofile[1].ipdFirst;\n              }\n              else {\n                uVar3 = *(ushort *)(ppVar50->byte + 0x86);\n              }\n              uVar54 = (uint)uVar3;\n              if ((uint)((int)bufend - (int)pcVar22) < uVar54) {\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }\n              peVar47 = (efdr *)((int)&(peVar47->fdr).adr + uVar54);\n              memcpy(pcVar22,pvVar35->datum,uVar54);\n              pvVar35 = pvVar35->next;\n              pcVar22 = pcVar22 + uVar54;\n            } while (pvVar35 != (vlinks *)0x0);\n            local_a8 = (proc_t *)((int)&(peVar47->fdr).adr + (int)&local_a8->sym);\n            lVar25 = (int)peVar47 >> 0x1f;\n            uVar48 = (int)&((localsym_t *)local_a8)->name + uVar37;\n          }\n          ppVar50->sym[0].file_ptr = peVar47;\n          ppVar60 = (page *)(ppVar50->byte + 0x294);\n          ppVar50->lineno[0].lineno = lVar25;\n          ppVar50 = ppVar60;\n        } while (ppVar60 < ppVar55);\n        ppVar60 = (page *)*(vlinks **)((int)local_9c + 4);\n      }\n      local_9c = ppVar60;\n    }" { (expression_statement "uVar3 = file_desc.objects_last_page;" (assignment_expression "uVar3 = file_desc.objects_last_page" identifier = (field_expression "file_desc.objects_last_page" identifier . field_identifier)) ;) (if_statement "if (*(vlinks **)((int)local_9c + 4) != (vlinks *)0x0) {\n        uVar3 = file_desc.objects_per_page;\n      }" if (parenthesized_expression "(*(vlinks **)((int)local_9c + 4) != (vlinks *)0x0)" ( (binary_expression "*(vlinks **)((int)local_9c + 4) != (vlinks *)0x0" (pointer_expression "*(vlinks **)((int)local_9c + 4)" * (cast_expression "(vlinks **)((int)local_9c + 4)" ( (type_descriptor "vlinks **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_9c + 4)" ( (binary_expression "(int)local_9c + 4" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (cast_expression "(vlinks *)0x0" ( (type_descriptor "vlinks *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar3 = file_desc.objects_per_page;\n      }" { (expression_statement "uVar3 = file_desc.objects_per_page;" (assignment_expression "uVar3 = file_desc.objects_per_page" identifier = (field_expression "file_desc.objects_per_page" identifier . field_identifier)) ;) })) (expression_statement "ppVar50 = *(page **)((int)local_9c + 8);" (assignment_expression "ppVar50 = *(page **)((int)local_9c + 8)" identifier = (pointer_expression "*(page **)((int)local_9c + 8)" * (cast_expression "(page **)((int)local_9c + 8)" ( (type_descriptor "page **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_9c + 8)" ( (binary_expression "(int)local_9c + 8" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "ppVar55 = (page *)(ppVar50->file + uVar3);" (assignment_expression "ppVar55 = (page *)(ppVar50->file + uVar3)" identifier = (cast_expression "(page *)(ppVar50->file + uVar3)" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppVar50->file + uVar3)" ( (binary_expression "ppVar50->file + uVar3" (field_expression "ppVar50->file" identifier -> field_identifier) + identifier) )))) ;) (expression_statement "ppVar60 = (page *)*(vlinks **)((int)local_9c + 4);" (assignment_expression "ppVar60 = (page *)*(vlinks **)((int)local_9c + 4)" identifier = (cast_expression "(page *)*(vlinks **)((int)local_9c + 4)" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*(vlinks **)((int)local_9c + 4)" * (cast_expression "(vlinks **)((int)local_9c + 4)" ( (type_descriptor "vlinks **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_9c + 4)" ( (binary_expression "(int)local_9c + 4" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (if_statement "if (ppVar50 < ppVar55) {\n        do {\n          ppVar50->shash[0].sym_ptr = (localsym_t *)local_a8;\n          pvVar35 = ppVar50->file[0].strings.first;\n          pcVar22 = buf + uVar48;\n          if (pvVar35 == (vlinks_t *)0x0) {\n            peVar47 = (efdr *)0x0;\n            lVar25 = 0;\n          }\n          else {\n            peVar47 = (efdr *)0x0;\n            do {\n              if (pvVar35->next == (vlinks *)0x0) {\n                uVar3 = ppVar50->ofile[1].ipdFirst;\n              }\n              else {\n                uVar3 = *(ushort *)(ppVar50->byte + 0x86);\n              }\n              uVar54 = (uint)uVar3;\n              if ((uint)((int)bufend - (int)pcVar22) < uVar54) {\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }\n              peVar47 = (efdr *)((int)&(peVar47->fdr).adr + uVar54);\n              memcpy(pcVar22,pvVar35->datum,uVar54);\n              pvVar35 = pvVar35->next;\n              pcVar22 = pcVar22 + uVar54;\n            } while (pvVar35 != (vlinks *)0x0);\n            local_a8 = (proc_t *)((int)&(peVar47->fdr).adr + (int)&local_a8->sym);\n            lVar25 = (int)peVar47 >> 0x1f;\n            uVar48 = (int)&((localsym_t *)local_a8)->name + uVar37;\n          }\n          ppVar50->sym[0].file_ptr = peVar47;\n          ppVar60 = (page *)(ppVar50->byte + 0x294);\n          ppVar50->lineno[0].lineno = lVar25;\n          ppVar50 = ppVar60;\n        } while (ppVar60 < ppVar55);\n        ppVar60 = (page *)*(vlinks **)((int)local_9c + 4);\n      }" if (parenthesized_expression "(ppVar50 < ppVar55)" ( (binary_expression "ppVar50 < ppVar55" identifier < identifier) )) (compound_statement "{\n        do {\n          ppVar50->shash[0].sym_ptr = (localsym_t *)local_a8;\n          pvVar35 = ppVar50->file[0].strings.first;\n          pcVar22 = buf + uVar48;\n          if (pvVar35 == (vlinks_t *)0x0) {\n            peVar47 = (efdr *)0x0;\n            lVar25 = 0;\n          }\n          else {\n            peVar47 = (efdr *)0x0;\n            do {\n              if (pvVar35->next == (vlinks *)0x0) {\n                uVar3 = ppVar50->ofile[1].ipdFirst;\n              }\n              else {\n                uVar3 = *(ushort *)(ppVar50->byte + 0x86);\n              }\n              uVar54 = (uint)uVar3;\n              if ((uint)((int)bufend - (int)pcVar22) < uVar54) {\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }\n              peVar47 = (efdr *)((int)&(peVar47->fdr).adr + uVar54);\n              memcpy(pcVar22,pvVar35->datum,uVar54);\n              pvVar35 = pvVar35->next;\n              pcVar22 = pcVar22 + uVar54;\n            } while (pvVar35 != (vlinks *)0x0);\n            local_a8 = (proc_t *)((int)&(peVar47->fdr).adr + (int)&local_a8->sym);\n            lVar25 = (int)peVar47 >> 0x1f;\n            uVar48 = (int)&((localsym_t *)local_a8)->name + uVar37;\n          }\n          ppVar50->sym[0].file_ptr = peVar47;\n          ppVar60 = (page *)(ppVar50->byte + 0x294);\n          ppVar50->lineno[0].lineno = lVar25;\n          ppVar50 = ppVar60;\n        } while (ppVar60 < ppVar55);\n        ppVar60 = (page *)*(vlinks **)((int)local_9c + 4);\n      }" { (do_statement "do {\n          ppVar50->shash[0].sym_ptr = (localsym_t *)local_a8;\n          pvVar35 = ppVar50->file[0].strings.first;\n          pcVar22 = buf + uVar48;\n          if (pvVar35 == (vlinks_t *)0x0) {\n            peVar47 = (efdr *)0x0;\n            lVar25 = 0;\n          }\n          else {\n            peVar47 = (efdr *)0x0;\n            do {\n              if (pvVar35->next == (vlinks *)0x0) {\n                uVar3 = ppVar50->ofile[1].ipdFirst;\n              }\n              else {\n                uVar3 = *(ushort *)(ppVar50->byte + 0x86);\n              }\n              uVar54 = (uint)uVar3;\n              if ((uint)((int)bufend - (int)pcVar22) < uVar54) {\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }\n              peVar47 = (efdr *)((int)&(peVar47->fdr).adr + uVar54);\n              memcpy(pcVar22,pvVar35->datum,uVar54);\n              pvVar35 = pvVar35->next;\n              pcVar22 = pcVar22 + uVar54;\n            } while (pvVar35 != (vlinks *)0x0);\n            local_a8 = (proc_t *)((int)&(peVar47->fdr).adr + (int)&local_a8->sym);\n            lVar25 = (int)peVar47 >> 0x1f;\n            uVar48 = (int)&((localsym_t *)local_a8)->name + uVar37;\n          }\n          ppVar50->sym[0].file_ptr = peVar47;\n          ppVar60 = (page *)(ppVar50->byte + 0x294);\n          ppVar50->lineno[0].lineno = lVar25;\n          ppVar50 = ppVar60;\n        } while (ppVar60 < ppVar55);" do (compound_statement "{\n          ppVar50->shash[0].sym_ptr = (localsym_t *)local_a8;\n          pvVar35 = ppVar50->file[0].strings.first;\n          pcVar22 = buf + uVar48;\n          if (pvVar35 == (vlinks_t *)0x0) {\n            peVar47 = (efdr *)0x0;\n            lVar25 = 0;\n          }\n          else {\n            peVar47 = (efdr *)0x0;\n            do {\n              if (pvVar35->next == (vlinks *)0x0) {\n                uVar3 = ppVar50->ofile[1].ipdFirst;\n              }\n              else {\n                uVar3 = *(ushort *)(ppVar50->byte + 0x86);\n              }\n              uVar54 = (uint)uVar3;\n              if ((uint)((int)bufend - (int)pcVar22) < uVar54) {\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }\n              peVar47 = (efdr *)((int)&(peVar47->fdr).adr + uVar54);\n              memcpy(pcVar22,pvVar35->datum,uVar54);\n              pvVar35 = pvVar35->next;\n              pcVar22 = pcVar22 + uVar54;\n            } while (pvVar35 != (vlinks *)0x0);\n            local_a8 = (proc_t *)((int)&(peVar47->fdr).adr + (int)&local_a8->sym);\n            lVar25 = (int)peVar47 >> 0x1f;\n            uVar48 = (int)&((localsym_t *)local_a8)->name + uVar37;\n          }\n          ppVar50->sym[0].file_ptr = peVar47;\n          ppVar60 = (page *)(ppVar50->byte + 0x294);\n          ppVar50->lineno[0].lineno = lVar25;\n          ppVar50 = ppVar60;\n        }" { (expression_statement "ppVar50->shash[0].sym_ptr = (localsym_t *)local_a8;" (assignment_expression "ppVar50->shash[0].sym_ptr = (localsym_t *)local_a8" (field_expression "ppVar50->shash[0].sym_ptr" (subscript_expression "ppVar50->shash[0]" (field_expression "ppVar50->shash" identifier -> field_identifier) [ number_literal ]) . field_identifier) = (cast_expression "(localsym_t *)local_a8" ( (type_descriptor "localsym_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pvVar35 = ppVar50->file[0].strings.first;" (assignment_expression "pvVar35 = ppVar50->file[0].strings.first" identifier = (field_expression "ppVar50->file[0].strings.first" (field_expression "ppVar50->file[0].strings" (subscript_expression "ppVar50->file[0]" (field_expression "ppVar50->file" identifier -> field_identifier) [ number_literal ]) . field_identifier) . field_identifier)) ;) (expression_statement "pcVar22 = buf + uVar48;" (assignment_expression "pcVar22 = buf + uVar48" identifier = (binary_expression "buf + uVar48" identifier + identifier)) ;) (if_statement "if (pvVar35 == (vlinks_t *)0x0) {\n            peVar47 = (efdr *)0x0;\n            lVar25 = 0;\n          }\n          else {\n            peVar47 = (efdr *)0x0;\n            do {\n              if (pvVar35->next == (vlinks *)0x0) {\n                uVar3 = ppVar50->ofile[1].ipdFirst;\n              }\n              else {\n                uVar3 = *(ushort *)(ppVar50->byte + 0x86);\n              }\n              uVar54 = (uint)uVar3;\n              if ((uint)((int)bufend - (int)pcVar22) < uVar54) {\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }\n              peVar47 = (efdr *)((int)&(peVar47->fdr).adr + uVar54);\n              memcpy(pcVar22,pvVar35->datum,uVar54);\n              pvVar35 = pvVar35->next;\n              pcVar22 = pcVar22 + uVar54;\n            } while (pvVar35 != (vlinks *)0x0);\n            local_a8 = (proc_t *)((int)&(peVar47->fdr).adr + (int)&local_a8->sym);\n            lVar25 = (int)peVar47 >> 0x1f;\n            uVar48 = (int)&((localsym_t *)local_a8)->name + uVar37;\n          }" if (parenthesized_expression "(pvVar35 == (vlinks_t *)0x0)" ( (binary_expression "pvVar35 == (vlinks_t *)0x0" identifier == (cast_expression "(vlinks_t *)0x0" ( (type_descriptor "vlinks_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            peVar47 = (efdr *)0x0;\n            lVar25 = 0;\n          }" { (expression_statement "peVar47 = (efdr *)0x0;" (assignment_expression "peVar47 = (efdr *)0x0" identifier = (cast_expression "(efdr *)0x0" ( (type_descriptor "efdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "lVar25 = 0;" (assignment_expression "lVar25 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            peVar47 = (efdr *)0x0;\n            do {\n              if (pvVar35->next == (vlinks *)0x0) {\n                uVar3 = ppVar50->ofile[1].ipdFirst;\n              }\n              else {\n                uVar3 = *(ushort *)(ppVar50->byte + 0x86);\n              }\n              uVar54 = (uint)uVar3;\n              if ((uint)((int)bufend - (int)pcVar22) < uVar54) {\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }\n              peVar47 = (efdr *)((int)&(peVar47->fdr).adr + uVar54);\n              memcpy(pcVar22,pvVar35->datum,uVar54);\n              pvVar35 = pvVar35->next;\n              pcVar22 = pcVar22 + uVar54;\n            } while (pvVar35 != (vlinks *)0x0);\n            local_a8 = (proc_t *)((int)&(peVar47->fdr).adr + (int)&local_a8->sym);\n            lVar25 = (int)peVar47 >> 0x1f;\n            uVar48 = (int)&((localsym_t *)local_a8)->name + uVar37;\n          }" else (compound_statement "{\n            peVar47 = (efdr *)0x0;\n            do {\n              if (pvVar35->next == (vlinks *)0x0) {\n                uVar3 = ppVar50->ofile[1].ipdFirst;\n              }\n              else {\n                uVar3 = *(ushort *)(ppVar50->byte + 0x86);\n              }\n              uVar54 = (uint)uVar3;\n              if ((uint)((int)bufend - (int)pcVar22) < uVar54) {\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }\n              peVar47 = (efdr *)((int)&(peVar47->fdr).adr + uVar54);\n              memcpy(pcVar22,pvVar35->datum,uVar54);\n              pvVar35 = pvVar35->next;\n              pcVar22 = pcVar22 + uVar54;\n            } while (pvVar35 != (vlinks *)0x0);\n            local_a8 = (proc_t *)((int)&(peVar47->fdr).adr + (int)&local_a8->sym);\n            lVar25 = (int)peVar47 >> 0x1f;\n            uVar48 = (int)&((localsym_t *)local_a8)->name + uVar37;\n          }" { (expression_statement "peVar47 = (efdr *)0x0;" (assignment_expression "peVar47 = (efdr *)0x0" identifier = (cast_expression "(efdr *)0x0" ( (type_descriptor "efdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n              if (pvVar35->next == (vlinks *)0x0) {\n                uVar3 = ppVar50->ofile[1].ipdFirst;\n              }\n              else {\n                uVar3 = *(ushort *)(ppVar50->byte + 0x86);\n              }\n              uVar54 = (uint)uVar3;\n              if ((uint)((int)bufend - (int)pcVar22) < uVar54) {\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }\n              peVar47 = (efdr *)((int)&(peVar47->fdr).adr + uVar54);\n              memcpy(pcVar22,pvVar35->datum,uVar54);\n              pvVar35 = pvVar35->next;\n              pcVar22 = pcVar22 + uVar54;\n            } while (pvVar35 != (vlinks *)0x0);" do (compound_statement "{\n              if (pvVar35->next == (vlinks *)0x0) {\n                uVar3 = ppVar50->ofile[1].ipdFirst;\n              }\n              else {\n                uVar3 = *(ushort *)(ppVar50->byte + 0x86);\n              }\n              uVar54 = (uint)uVar3;\n              if ((uint)((int)bufend - (int)pcVar22) < uVar54) {\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }\n              peVar47 = (efdr *)((int)&(peVar47->fdr).adr + uVar54);\n              memcpy(pcVar22,pvVar35->datum,uVar54);\n              pvVar35 = pvVar35->next;\n              pcVar22 = pcVar22 + uVar54;\n            }" { (if_statement "if (pvVar35->next == (vlinks *)0x0) {\n                uVar3 = ppVar50->ofile[1].ipdFirst;\n              }\n              else {\n                uVar3 = *(ushort *)(ppVar50->byte + 0x86);\n              }" if (parenthesized_expression "(pvVar35->next == (vlinks *)0x0)" ( (binary_expression "pvVar35->next == (vlinks *)0x0" (field_expression "pvVar35->next" identifier -> field_identifier) == (cast_expression "(vlinks *)0x0" ( (type_descriptor "vlinks *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                uVar3 = ppVar50->ofile[1].ipdFirst;\n              }" { (expression_statement "uVar3 = ppVar50->ofile[1].ipdFirst;" (assignment_expression "uVar3 = ppVar50->ofile[1].ipdFirst" identifier = (field_expression "ppVar50->ofile[1].ipdFirst" (subscript_expression "ppVar50->ofile[1]" (field_expression "ppVar50->ofile" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) }) (else_clause "else {\n                uVar3 = *(ushort *)(ppVar50->byte + 0x86);\n              }" else (compound_statement "{\n                uVar3 = *(ushort *)(ppVar50->byte + 0x86);\n              }" { (expression_statement "uVar3 = *(ushort *)(ppVar50->byte + 0x86);" (assignment_expression "uVar3 = *(ushort *)(ppVar50->byte + 0x86)" identifier = (pointer_expression "*(ushort *)(ppVar50->byte + 0x86)" * (cast_expression "(ushort *)(ppVar50->byte + 0x86)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppVar50->byte + 0x86)" ( (binary_expression "ppVar50->byte + 0x86" (field_expression "ppVar50->byte" identifier -> field_identifier) + number_literal) ))))) ;) }))) (expression_statement "uVar54 = (uint)uVar3;" (assignment_expression "uVar54 = (uint)uVar3" identifier = (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((uint)((int)bufend - (int)pcVar22) < uVar54) {\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }" if (parenthesized_expression "((uint)((int)bufend - (int)pcVar22) < uVar54)" ( (binary_expression "(uint)((int)bufend - (int)pcVar22) < uVar54" (call_expression "(uint)((int)bufend - (int)pcVar22)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)bufend - (int)pcVar22)" ( (binary_expression "(int)bufend - (int)pcVar22" (cast_expression "(int)bufend" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar22" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < identifier) )) (compound_statement "{\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }" { (expression_statement "pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);" (assignment_expression "pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54)" identifier = (call_expression "ecoff_add_bytes(local_78,local_74,pcVar22,uVar54)" identifier (argument_list "(local_78,local_74,pcVar22,uVar54)" ( identifier , identifier , identifier , identifier )))) ;) })) (expression_statement "peVar47 = (efdr *)((int)&(peVar47->fdr).adr + uVar54);" (assignment_expression "peVar47 = (efdr *)((int)&(peVar47->fdr).adr + uVar54)" identifier = (cast_expression "(efdr *)((int)&(peVar47->fdr).adr + uVar54)" ( (type_descriptor "efdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(peVar47->fdr).adr + uVar54)" ( (binary_expression "(int)&(peVar47->fdr).adr + uVar54" (cast_expression "(int)&(peVar47->fdr).adr" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(peVar47->fdr).adr" & (field_expression "(peVar47->fdr).adr" (parenthesized_expression "(peVar47->fdr)" ( (field_expression "peVar47->fdr" identifier -> field_identifier) )) . field_identifier))) + identifier) )))) ;) (expression_statement "memcpy(pcVar22,pvVar35->datum,uVar54);" (call_expression "memcpy(pcVar22,pvVar35->datum,uVar54)" identifier (argument_list "(pcVar22,pvVar35->datum,uVar54)" ( identifier , (field_expression "pvVar35->datum" identifier -> field_identifier) , identifier ))) ;) (expression_statement "pvVar35 = pvVar35->next;" (assignment_expression "pvVar35 = pvVar35->next" identifier = (field_expression "pvVar35->next" identifier -> field_identifier)) ;) (expression_statement "pcVar22 = pcVar22 + uVar54;" (assignment_expression "pcVar22 = pcVar22 + uVar54" identifier = (binary_expression "pcVar22 + uVar54" identifier + identifier)) ;) }) while (parenthesized_expression "(pvVar35 != (vlinks *)0x0)" ( (binary_expression "pvVar35 != (vlinks *)0x0" identifier != (cast_expression "(vlinks *)0x0" ( (type_descriptor "vlinks *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "local_a8 = (proc_t *)((int)&(peVar47->fdr).adr + (int)&local_a8->sym);" (assignment_expression "local_a8 = (proc_t *)((int)&(peVar47->fdr).adr + (int)&local_a8->sym)" identifier = (cast_expression "(proc_t *)((int)&(peVar47->fdr).adr + (int)&local_a8->sym)" ( (type_descriptor "proc_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(peVar47->fdr).adr + (int)&local_a8->sym)" ( (binary_expression "(int)&(peVar47->fdr).adr + (int)&local_a8->sym" (cast_expression "(int)&(peVar47->fdr).adr" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(peVar47->fdr).adr" & (field_expression "(peVar47->fdr).adr" (parenthesized_expression "(peVar47->fdr)" ( (field_expression "peVar47->fdr" identifier -> field_identifier) )) . field_identifier))) + (cast_expression "(int)&local_a8->sym" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_a8->sym" & (field_expression "local_a8->sym" identifier -> field_identifier)))) )))) ;) (expression_statement "lVar25 = (int)peVar47 >> 0x1f;" (assignment_expression "lVar25 = (int)peVar47 >> 0x1f" identifier = (binary_expression "(int)peVar47 >> 0x1f" (cast_expression "(int)peVar47" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar48 = (int)&((localsym_t *)local_a8)->name + uVar37;" (assignment_expression "uVar48 = (int)&((localsym_t *)local_a8)->name + uVar37" identifier = (binary_expression "(int)&((localsym_t *)local_a8)->name + uVar37" (cast_expression "(int)&((localsym_t *)local_a8)->name" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((localsym_t *)local_a8)->name" & (field_expression "((localsym_t *)local_a8)->name" (parenthesized_expression "((localsym_t *)local_a8)" ( (cast_expression "(localsym_t *)local_a8" ( (type_descriptor "localsym_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))) + identifier)) ;) }))) (expression_statement "ppVar50->sym[0].file_ptr = peVar47;" (assignment_expression "ppVar50->sym[0].file_ptr = peVar47" (field_expression "ppVar50->sym[0].file_ptr" (subscript_expression "ppVar50->sym[0]" (field_expression "ppVar50->sym" identifier -> field_identifier) [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "ppVar60 = (page *)(ppVar50->byte + 0x294);" (assignment_expression "ppVar60 = (page *)(ppVar50->byte + 0x294)" identifier = (cast_expression "(page *)(ppVar50->byte + 0x294)" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppVar50->byte + 0x294)" ( (binary_expression "ppVar50->byte + 0x294" (field_expression "ppVar50->byte" identifier -> field_identifier) + number_literal) )))) ;) (expression_statement "ppVar50->lineno[0].lineno = lVar25;" (assignment_expression "ppVar50->lineno[0].lineno = lVar25" (field_expression "ppVar50->lineno[0].lineno" (subscript_expression "ppVar50->lineno[0]" (field_expression "ppVar50->lineno" identifier -> field_identifier) [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "ppVar50 = ppVar60;" (assignment_expression "ppVar50 = ppVar60" identifier = identifier) ;) }) while (parenthesized_expression "(ppVar60 < ppVar55)" ( (binary_expression "ppVar60 < ppVar55" identifier < identifier) )) ;) (expression_statement "ppVar60 = (page *)*(vlinks **)((int)local_9c + 4);" (assignment_expression "ppVar60 = (page *)*(vlinks **)((int)local_9c + 4)" identifier = (cast_expression "(page *)*(vlinks **)((int)local_9c + 4)" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*(vlinks **)((int)local_9c + 4)" * (cast_expression "(vlinks **)((int)local_9c + 4)" ( (type_descriptor "vlinks **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_9c + 4)" ( (binary_expression "(int)local_9c + 4" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) })) (expression_statement "local_9c = ppVar60;" (assignment_expression "local_9c = ppVar60" identifier = identifier) ;) }) while (parenthesized_expression "(local_9c != (page *)0x0)" ( (binary_expression "local_9c != (page *)0x0" identifier != (cast_expression "(page *)0x0" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "local_9c = (page *)ecoff_padding_adjust(backend,local_78,local_74,uVar48,(char **)0x0);" (assignment_expression "local_9c = (page *)ecoff_padding_adjust(backend,local_78,local_74,uVar48,(char **)0x0)" identifier = (cast_expression "(page *)ecoff_padding_adjust(backend,local_78,local_74,uVar48,(char **)0x0)" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "ecoff_padding_adjust(backend,local_78,local_74,uVar48,(char **)0x0)" identifier (argument_list "(backend,local_78,local_74,uVar48,(char **)0x0)" ( identifier , identifier , identifier , identifier , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) ))))) ;) (expression_statement "uVar54 = *(uint *)((int)&backend->external_fdr_size + 4);" (assignment_expression "uVar54 = *(uint *)((int)&backend->external_fdr_size + 4)" identifier = (pointer_expression "*(uint *)((int)&backend->external_fdr_size + 4)" * (cast_expression "(uint *)((int)&backend->external_fdr_size + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&backend->external_fdr_size + 4)" ( (binary_expression "(int)&backend->external_fdr_size + 4" (cast_expression "(int)&backend->external_fdr_size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&backend->external_fdr_size" & (field_expression "backend->external_fdr_size" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "hdr->crfd = 0;" (assignment_expression "hdr->crfd = 0" (field_expression "hdr->crfd" identifier -> field_identifier) = number_literal) ;) (expression_statement "hdr->issMax = (int)local_9c->byte - (int)hdr->cbSsOffset;" (assignment_expression "hdr->issMax = (int)local_9c->byte - (int)hdr->cbSsOffset" (field_expression "hdr->issMax" identifier -> field_identifier) = (binary_expression "(int)local_9c->byte - (int)hdr->cbSsOffset" (cast_expression "(int)local_9c->byte" ( (type_descriptor "int" primitive_type) ) (field_expression "local_9c->byte" identifier -> field_identifier)) - (cast_expression "(int)hdr->cbSsOffset" ( (type_descriptor "int" primitive_type) ) (field_expression "hdr->cbSsOffset" identifier -> field_identifier)))) ;) (expression_statement "*(undefined4 *)&hdr->cbRfdOffset = 0;" (assignment_expression "*(undefined4 *)&hdr->cbRfdOffset = 0" (pointer_expression "*(undefined4 *)&hdr->cbRfdOffset" * (cast_expression "(undefined4 *)&hdr->cbRfdOffset" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&hdr->cbRfdOffset" & (field_expression "hdr->cbRfdOffset" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&hdr->cbRfdOffset + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&hdr->cbRfdOffset + 4) = 0" (pointer_expression "*(undefined4 *)((int)&hdr->cbRfdOffset + 4)" * (cast_expression "(undefined4 *)((int)&hdr->cbRfdOffset + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&hdr->cbRfdOffset + 4)" ( (binary_expression "(int)&hdr->cbRfdOffset + 4" (cast_expression "(int)&hdr->cbRfdOffset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&hdr->cbRfdOffset" & (field_expression "hdr->cbRfdOffset" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(page **)&hdr->cbFdOffset = local_9c;" (assignment_expression "*(page **)&hdr->cbFdOffset = local_9c" (pointer_expression "*(page **)&hdr->cbFdOffset" * (cast_expression "(page **)&hdr->cbFdOffset" ( (type_descriptor "page **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&hdr->cbFdOffset" & (field_expression "hdr->cbFdOffset" identifier -> field_identifier)))) = identifier) ;) (expression_statement "pcVar22 = buf + (int)local_9c;" (assignment_expression "pcVar22 = buf + (int)local_9c" identifier = (binary_expression "buf + (int)local_9c" identifier + (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(undefined4 *)((int)&hdr->cbFdOffset + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&hdr->cbFdOffset + 4) = 0" (pointer_expression "*(undefined4 *)((int)&hdr->cbFdOffset + 4)" * (cast_expression "(undefined4 *)((int)&hdr->cbFdOffset + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&hdr->cbFdOffset + 4)" ( (binary_expression "(int)&hdr->cbFdOffset + 4" (cast_expression "(int)&hdr->cbFdOffset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&hdr->cbFdOffset" & (field_expression "hdr->cbFdOffset" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "p_Var15 = backend->swap_fdr_out;" (assignment_expression "p_Var15 = backend->swap_fdr_out" identifier = (field_expression "backend->swap_fdr_out" identifier -> field_identifier)) ;) (expression_statement "uVar24 = (uint)backend->external_fdr_size;" (assignment_expression "uVar24 = (uint)backend->external_fdr_size" identifier = (cast_expression "(uint)backend->external_fdr_size" ( (type_descriptor "uint" type_identifier) ) (field_expression "backend->external_fdr_size" identifier -> field_identifier))) ;) (if_statement "if (file_desc.first == (vlinks_t *)0x0) {\n    lVar25 = 0;\n  }\n  else {\n    local_ac = (aux_t *)0x0;\n    ppVar36 = (proc_t *)file_desc.first;\nLAB_000251e2:\n    do {\n      local_98 = ppVar36;\n      ppVar50 = *(page **)((int)local_98 + 8);\n      pcVar26 = pcVar22;\n      if (*(vlinks **)&local_98->pdr == (vlinks *)0x0) {\n        ppVar60 = (page *)(ppVar50->file + file_desc.objects_last_page);\n        if (ppVar60 <= ppVar50) {\n          local_9c = (page *)((int)local_9c->byte + (int)local_ac * uVar24);\n          lVar25 = __udivdi3((int)local_9c - (int)hdr->cbFdOffset,\n                             -(uint)(local_9c < (uint)hdr->cbFdOffset) -\n                             *(int *)((int)&hdr->cbFdOffset + 4),(int)backend->external_fdr_size,\n                             *(undefined4 *)((int)&backend->external_fdr_size + 4));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        ppVar60 = (page *)(ppVar50->file + file_desc.objects_per_page);\n        ppVar36 = (proc_t *)*(vlinks **)&local_98->pdr;\n        if (ppVar60 <= ppVar50) goto LAB_000251e2;\n      }\n      do {\n        uVar44 = (int)bufend - (int)pcVar26 >> 0x1f;\n        if (uVar44 < uVar54 || uVar44 - uVar54 < (uint)((uint)((int)bufend - (int)pcVar26) < uVar24)\n           ) {\n          pcVar26 = ecoff_add_bytes(local_78,local_74,pcVar26,uVar24);\n        }\n        pcVar22 = pcVar26 + uVar24;\n        ppVar55 = (page *)(ppVar50->byte + 0x294);\n        (*p_Var15)(stdoutput,(FDR *)ppVar50,pcVar26);\n        local_ac = (aux_t *)((int)local_ac + 1);\n        pcVar26 = pcVar22;\n        ppVar50 = ppVar55;\n      } while (ppVar55 < ppVar60);\n      ppVar36 = (proc_t *)*(vlinks **)&local_98->pdr;\n    } while (*(vlinks **)&local_98->pdr != (vlinks *)0x0);\n    local_9c = (page *)((int)local_9c->byte + (int)local_ac * uVar24);\n    lVar25 = __udivdi3((int)local_9c - (int)hdr->cbFdOffset,\n                       -(uint)(local_9c < (uint)hdr->cbFdOffset) -\n                       *(int *)((int)&hdr->cbFdOffset + 4),(int)backend->external_fdr_size,\n                       *(undefined4 *)((int)&backend->external_fdr_size + 4));\n  }" if (parenthesized_expression "(file_desc.first == (vlinks_t *)0x0)" ( (binary_expression "file_desc.first == (vlinks_t *)0x0" (field_expression "file_desc.first" identifier . field_identifier) == (cast_expression "(vlinks_t *)0x0" ( (type_descriptor "vlinks_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    lVar25 = 0;\n  }" { (expression_statement "lVar25 = 0;" (assignment_expression "lVar25 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    local_ac = (aux_t *)0x0;\n    ppVar36 = (proc_t *)file_desc.first;\nLAB_000251e2:\n    do {\n      local_98 = ppVar36;\n      ppVar50 = *(page **)((int)local_98 + 8);\n      pcVar26 = pcVar22;\n      if (*(vlinks **)&local_98->pdr == (vlinks *)0x0) {\n        ppVar60 = (page *)(ppVar50->file + file_desc.objects_last_page);\n        if (ppVar60 <= ppVar50) {\n          local_9c = (page *)((int)local_9c->byte + (int)local_ac * uVar24);\n          lVar25 = __udivdi3((int)local_9c - (int)hdr->cbFdOffset,\n                             -(uint)(local_9c < (uint)hdr->cbFdOffset) -\n                             *(int *)((int)&hdr->cbFdOffset + 4),(int)backend->external_fdr_size,\n                             *(undefined4 *)((int)&backend->external_fdr_size + 4));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        ppVar60 = (page *)(ppVar50->file + file_desc.objects_per_page);\n        ppVar36 = (proc_t *)*(vlinks **)&local_98->pdr;\n        if (ppVar60 <= ppVar50) goto LAB_000251e2;\n      }\n      do {\n        uVar44 = (int)bufend - (int)pcVar26 >> 0x1f;\n        if (uVar44 < uVar54 || uVar44 - uVar54 < (uint)((uint)((int)bufend - (int)pcVar26) < uVar24)\n           ) {\n          pcVar26 = ecoff_add_bytes(local_78,local_74,pcVar26,uVar24);\n        }\n        pcVar22 = pcVar26 + uVar24;\n        ppVar55 = (page *)(ppVar50->byte + 0x294);\n        (*p_Var15)(stdoutput,(FDR *)ppVar50,pcVar26);\n        local_ac = (aux_t *)((int)local_ac + 1);\n        pcVar26 = pcVar22;\n        ppVar50 = ppVar55;\n      } while (ppVar55 < ppVar60);\n      ppVar36 = (proc_t *)*(vlinks **)&local_98->pdr;\n    } while (*(vlinks **)&local_98->pdr != (vlinks *)0x0);\n    local_9c = (page *)((int)local_9c->byte + (int)local_ac * uVar24);\n    lVar25 = __udivdi3((int)local_9c - (int)hdr->cbFdOffset,\n                       -(uint)(local_9c < (uint)hdr->cbFdOffset) -\n                       *(int *)((int)&hdr->cbFdOffset + 4),(int)backend->external_fdr_size,\n                       *(undefined4 *)((int)&backend->external_fdr_size + 4));\n  }" else (compound_statement "{\n    local_ac = (aux_t *)0x0;\n    ppVar36 = (proc_t *)file_desc.first;\nLAB_000251e2:\n    do {\n      local_98 = ppVar36;\n      ppVar50 = *(page **)((int)local_98 + 8);\n      pcVar26 = pcVar22;\n      if (*(vlinks **)&local_98->pdr == (vlinks *)0x0) {\n        ppVar60 = (page *)(ppVar50->file + file_desc.objects_last_page);\n        if (ppVar60 <= ppVar50) {\n          local_9c = (page *)((int)local_9c->byte + (int)local_ac * uVar24);\n          lVar25 = __udivdi3((int)local_9c - (int)hdr->cbFdOffset,\n                             -(uint)(local_9c < (uint)hdr->cbFdOffset) -\n                             *(int *)((int)&hdr->cbFdOffset + 4),(int)backend->external_fdr_size,\n                             *(undefined4 *)((int)&backend->external_fdr_size + 4));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        ppVar60 = (page *)(ppVar50->file + file_desc.objects_per_page);\n        ppVar36 = (proc_t *)*(vlinks **)&local_98->pdr;\n        if (ppVar60 <= ppVar50) goto LAB_000251e2;\n      }\n      do {\n        uVar44 = (int)bufend - (int)pcVar26 >> 0x1f;\n        if (uVar44 < uVar54 || uVar44 - uVar54 < (uint)((uint)((int)bufend - (int)pcVar26) < uVar24)\n           ) {\n          pcVar26 = ecoff_add_bytes(local_78,local_74,pcVar26,uVar24);\n        }\n        pcVar22 = pcVar26 + uVar24;\n        ppVar55 = (page *)(ppVar50->byte + 0x294);\n        (*p_Var15)(stdoutput,(FDR *)ppVar50,pcVar26);\n        local_ac = (aux_t *)((int)local_ac + 1);\n        pcVar26 = pcVar22;\n        ppVar50 = ppVar55;\n      } while (ppVar55 < ppVar60);\n      ppVar36 = (proc_t *)*(vlinks **)&local_98->pdr;\n    } while (*(vlinks **)&local_98->pdr != (vlinks *)0x0);\n    local_9c = (page *)((int)local_9c->byte + (int)local_ac * uVar24);\n    lVar25 = __udivdi3((int)local_9c - (int)hdr->cbFdOffset,\n                       -(uint)(local_9c < (uint)hdr->cbFdOffset) -\n                       *(int *)((int)&hdr->cbFdOffset + 4),(int)backend->external_fdr_size,\n                       *(undefined4 *)((int)&backend->external_fdr_size + 4));\n  }" { (expression_statement "local_ac = (aux_t *)0x0;" (assignment_expression "local_ac = (aux_t *)0x0" identifier = (cast_expression "(aux_t *)0x0" ( (type_descriptor "aux_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppVar36 = (proc_t *)file_desc.first;" (assignment_expression "ppVar36 = (proc_t *)file_desc.first" identifier = (cast_expression "(proc_t *)file_desc.first" ( (type_descriptor "proc_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "file_desc.first" identifier . field_identifier))) ;) (labeled_statement "LAB_000251e2:\n    do {\n      local_98 = ppVar36;\n      ppVar50 = *(page **)((int)local_98 + 8);\n      pcVar26 = pcVar22;\n      if (*(vlinks **)&local_98->pdr == (vlinks *)0x0) {\n        ppVar60 = (page *)(ppVar50->file + file_desc.objects_last_page);\n        if (ppVar60 <= ppVar50) {\n          local_9c = (page *)((int)local_9c->byte + (int)local_ac * uVar24);\n          lVar25 = __udivdi3((int)local_9c - (int)hdr->cbFdOffset,\n                             -(uint)(local_9c < (uint)hdr->cbFdOffset) -\n                             *(int *)((int)&hdr->cbFdOffset + 4),(int)backend->external_fdr_size,\n                             *(undefined4 *)((int)&backend->external_fdr_size + 4));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        ppVar60 = (page *)(ppVar50->file + file_desc.objects_per_page);\n        ppVar36 = (proc_t *)*(vlinks **)&local_98->pdr;\n        if (ppVar60 <= ppVar50) goto LAB_000251e2;\n      }\n      do {\n        uVar44 = (int)bufend - (int)pcVar26 >> 0x1f;\n        if (uVar44 < uVar54 || uVar44 - uVar54 < (uint)((uint)((int)bufend - (int)pcVar26) < uVar24)\n           ) {\n          pcVar26 = ecoff_add_bytes(local_78,local_74,pcVar26,uVar24);\n        }\n        pcVar22 = pcVar26 + uVar24;\n        ppVar55 = (page *)(ppVar50->byte + 0x294);\n        (*p_Var15)(stdoutput,(FDR *)ppVar50,pcVar26);\n        local_ac = (aux_t *)((int)local_ac + 1);\n        pcVar26 = pcVar22;\n        ppVar50 = ppVar55;\n      } while (ppVar55 < ppVar60);\n      ppVar36 = (proc_t *)*(vlinks **)&local_98->pdr;\n    } while (*(vlinks **)&local_98->pdr != (vlinks *)0x0);" statement_identifier : (do_statement "do {\n      local_98 = ppVar36;\n      ppVar50 = *(page **)((int)local_98 + 8);\n      pcVar26 = pcVar22;\n      if (*(vlinks **)&local_98->pdr == (vlinks *)0x0) {\n        ppVar60 = (page *)(ppVar50->file + file_desc.objects_last_page);\n        if (ppVar60 <= ppVar50) {\n          local_9c = (page *)((int)local_9c->byte + (int)local_ac * uVar24);\n          lVar25 = __udivdi3((int)local_9c - (int)hdr->cbFdOffset,\n                             -(uint)(local_9c < (uint)hdr->cbFdOffset) -\n                             *(int *)((int)&hdr->cbFdOffset + 4),(int)backend->external_fdr_size,\n                             *(undefined4 *)((int)&backend->external_fdr_size + 4));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        ppVar60 = (page *)(ppVar50->file + file_desc.objects_per_page);\n        ppVar36 = (proc_t *)*(vlinks **)&local_98->pdr;\n        if (ppVar60 <= ppVar50) goto LAB_000251e2;\n      }\n      do {\n        uVar44 = (int)bufend - (int)pcVar26 >> 0x1f;\n        if (uVar44 < uVar54 || uVar44 - uVar54 < (uint)((uint)((int)bufend - (int)pcVar26) < uVar24)\n           ) {\n          pcVar26 = ecoff_add_bytes(local_78,local_74,pcVar26,uVar24);\n        }\n        pcVar22 = pcVar26 + uVar24;\n        ppVar55 = (page *)(ppVar50->byte + 0x294);\n        (*p_Var15)(stdoutput,(FDR *)ppVar50,pcVar26);\n        local_ac = (aux_t *)((int)local_ac + 1);\n        pcVar26 = pcVar22;\n        ppVar50 = ppVar55;\n      } while (ppVar55 < ppVar60);\n      ppVar36 = (proc_t *)*(vlinks **)&local_98->pdr;\n    } while (*(vlinks **)&local_98->pdr != (vlinks *)0x0);" do (compound_statement "{\n      local_98 = ppVar36;\n      ppVar50 = *(page **)((int)local_98 + 8);\n      pcVar26 = pcVar22;\n      if (*(vlinks **)&local_98->pdr == (vlinks *)0x0) {\n        ppVar60 = (page *)(ppVar50->file + file_desc.objects_last_page);\n        if (ppVar60 <= ppVar50) {\n          local_9c = (page *)((int)local_9c->byte + (int)local_ac * uVar24);\n          lVar25 = __udivdi3((int)local_9c - (int)hdr->cbFdOffset,\n                             -(uint)(local_9c < (uint)hdr->cbFdOffset) -\n                             *(int *)((int)&hdr->cbFdOffset + 4),(int)backend->external_fdr_size,\n                             *(undefined4 *)((int)&backend->external_fdr_size + 4));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        ppVar60 = (page *)(ppVar50->file + file_desc.objects_per_page);\n        ppVar36 = (proc_t *)*(vlinks **)&local_98->pdr;\n        if (ppVar60 <= ppVar50) goto LAB_000251e2;\n      }\n      do {\n        uVar44 = (int)bufend - (int)pcVar26 >> 0x1f;\n        if (uVar44 < uVar54 || uVar44 - uVar54 < (uint)((uint)((int)bufend - (int)pcVar26) < uVar24)\n           ) {\n          pcVar26 = ecoff_add_bytes(local_78,local_74,pcVar26,uVar24);\n        }\n        pcVar22 = pcVar26 + uVar24;\n        ppVar55 = (page *)(ppVar50->byte + 0x294);\n        (*p_Var15)(stdoutput,(FDR *)ppVar50,pcVar26);\n        local_ac = (aux_t *)((int)local_ac + 1);\n        pcVar26 = pcVar22;\n        ppVar50 = ppVar55;\n      } while (ppVar55 < ppVar60);\n      ppVar36 = (proc_t *)*(vlinks **)&local_98->pdr;\n    }" { (expression_statement "local_98 = ppVar36;" (assignment_expression "local_98 = ppVar36" identifier = identifier) ;) (expression_statement "ppVar50 = *(page **)((int)local_98 + 8);" (assignment_expression "ppVar50 = *(page **)((int)local_98 + 8)" identifier = (pointer_expression "*(page **)((int)local_98 + 8)" * (cast_expression "(page **)((int)local_98 + 8)" ( (type_descriptor "page **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_98 + 8)" ( (binary_expression "(int)local_98 + 8" (cast_expression "(int)local_98" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pcVar26 = pcVar22;" (assignment_expression "pcVar26 = pcVar22" identifier = identifier) ;) (if_statement "if (*(vlinks **)&local_98->pdr == (vlinks *)0x0) {\n        ppVar60 = (page *)(ppVar50->file + file_desc.objects_last_page);\n        if (ppVar60 <= ppVar50) {\n          local_9c = (page *)((int)local_9c->byte + (int)local_ac * uVar24);\n          lVar25 = __udivdi3((int)local_9c - (int)hdr->cbFdOffset,\n                             -(uint)(local_9c < (uint)hdr->cbFdOffset) -\n                             *(int *)((int)&hdr->cbFdOffset + 4),(int)backend->external_fdr_size,\n                             *(undefined4 *)((int)&backend->external_fdr_size + 4));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        ppVar60 = (page *)(ppVar50->file + file_desc.objects_per_page);\n        ppVar36 = (proc_t *)*(vlinks **)&local_98->pdr;\n        if (ppVar60 <= ppVar50) goto LAB_000251e2;\n      }" if (parenthesized_expression "(*(vlinks **)&local_98->pdr == (vlinks *)0x0)" ( (binary_expression "*(vlinks **)&local_98->pdr == (vlinks *)0x0" (pointer_expression "*(vlinks **)&local_98->pdr" * (cast_expression "(vlinks **)&local_98->pdr" ( (type_descriptor "vlinks **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_98->pdr" & (field_expression "local_98->pdr" identifier -> field_identifier)))) == (cast_expression "(vlinks *)0x0" ( (type_descriptor "vlinks *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        ppVar60 = (page *)(ppVar50->file + file_desc.objects_last_page);\n        if (ppVar60 <= ppVar50) {\n          local_9c = (page *)((int)local_9c->byte + (int)local_ac * uVar24);\n          lVar25 = __udivdi3((int)local_9c - (int)hdr->cbFdOffset,\n                             -(uint)(local_9c < (uint)hdr->cbFdOffset) -\n                             *(int *)((int)&hdr->cbFdOffset + 4),(int)backend->external_fdr_size,\n                             *(undefined4 *)((int)&backend->external_fdr_size + 4));\n          goto LAB_000252e8;\n        }\n      }" { (expression_statement "ppVar60 = (page *)(ppVar50->file + file_desc.objects_last_page);" (assignment_expression "ppVar60 = (page *)(ppVar50->file + file_desc.objects_last_page)" identifier = (cast_expression "(page *)(ppVar50->file + file_desc.objects_last_page)" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppVar50->file + file_desc.objects_last_page)" ( (binary_expression "ppVar50->file + file_desc.objects_last_page" (field_expression "ppVar50->file" identifier -> field_identifier) + (field_expression "file_desc.objects_last_page" identifier . field_identifier)) )))) ;) (if_statement "if (ppVar60 <= ppVar50) {\n          local_9c = (page *)((int)local_9c->byte + (int)local_ac * uVar24);\n          lVar25 = __udivdi3((int)local_9c - (int)hdr->cbFdOffset,\n                             -(uint)(local_9c < (uint)hdr->cbFdOffset) -\n                             *(int *)((int)&hdr->cbFdOffset + 4),(int)backend->external_fdr_size,\n                             *(undefined4 *)((int)&backend->external_fdr_size + 4));\n          goto LAB_000252e8;\n        }" if (parenthesized_expression "(ppVar60 <= ppVar50)" ( (binary_expression "ppVar60 <= ppVar50" identifier <= identifier) )) (compound_statement "{\n          local_9c = (page *)((int)local_9c->byte + (int)local_ac * uVar24);\n          lVar25 = __udivdi3((int)local_9c - (int)hdr->cbFdOffset,\n                             -(uint)(local_9c < (uint)hdr->cbFdOffset) -\n                             *(int *)((int)&hdr->cbFdOffset + 4),(int)backend->external_fdr_size,\n                             *(undefined4 *)((int)&backend->external_fdr_size + 4));\n          goto LAB_000252e8;\n        }" { (expression_statement "local_9c = (page *)((int)local_9c->byte + (int)local_ac * uVar24);" (assignment_expression "local_9c = (page *)((int)local_9c->byte + (int)local_ac * uVar24)" identifier = (cast_expression "(page *)((int)local_9c->byte + (int)local_ac * uVar24)" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c->byte + (int)local_ac * uVar24)" ( (binary_expression "(int)local_9c->byte + (int)local_ac * uVar24" (cast_expression "(int)local_9c->byte" ( (type_descriptor "int" primitive_type) ) (field_expression "local_9c->byte" identifier -> field_identifier)) + (binary_expression "(int)local_ac * uVar24" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) * identifier)) )))) ;) (expression_statement "lVar25 = __udivdi3((int)local_9c - (int)hdr->cbFdOffset,\n                             -(uint)(local_9c < (uint)hdr->cbFdOffset) -\n                             *(int *)((int)&hdr->cbFdOffset + 4),(int)backend->external_fdr_size,\n                             *(undefined4 *)((int)&backend->external_fdr_size + 4));" (assignment_expression "lVar25 = __udivdi3((int)local_9c - (int)hdr->cbFdOffset,\n                             -(uint)(local_9c < (uint)hdr->cbFdOffset) -\n                             *(int *)((int)&hdr->cbFdOffset + 4),(int)backend->external_fdr_size,\n                             *(undefined4 *)((int)&backend->external_fdr_size + 4))" identifier = (call_expression "__udivdi3((int)local_9c - (int)hdr->cbFdOffset,\n                             -(uint)(local_9c < (uint)hdr->cbFdOffset) -\n                             *(int *)((int)&hdr->cbFdOffset + 4),(int)backend->external_fdr_size,\n                             *(undefined4 *)((int)&backend->external_fdr_size + 4))" identifier (argument_list "((int)local_9c - (int)hdr->cbFdOffset,\n                             -(uint)(local_9c < (uint)hdr->cbFdOffset) -\n                             *(int *)((int)&hdr->cbFdOffset + 4),(int)backend->external_fdr_size,\n                             *(undefined4 *)((int)&backend->external_fdr_size + 4))" ( (binary_expression "(int)local_9c - (int)hdr->cbFdOffset" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)hdr->cbFdOffset" ( (type_descriptor "int" primitive_type) ) (field_expression "hdr->cbFdOffset" identifier -> field_identifier))) , (binary_expression "-(uint)(local_9c < (uint)hdr->cbFdOffset) -\n                             *(int *)((int)&hdr->cbFdOffset + 4)" (unary_expression "-(uint)(local_9c < (uint)hdr->cbFdOffset)" - (call_expression "(uint)(local_9c < (uint)hdr->cbFdOffset)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_9c < (uint)hdr->cbFdOffset)" ( (binary_expression "local_9c < (uint)hdr->cbFdOffset" identifier < (cast_expression "(uint)hdr->cbFdOffset" ( (type_descriptor "uint" type_identifier) ) (field_expression "hdr->cbFdOffset" identifier -> field_identifier))) )))) - (pointer_expression "*(int *)((int)&hdr->cbFdOffset + 4)" * (cast_expression "(int *)((int)&hdr->cbFdOffset + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&hdr->cbFdOffset + 4)" ( (binary_expression "(int)&hdr->cbFdOffset + 4" (cast_expression "(int)&hdr->cbFdOffset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&hdr->cbFdOffset" & (field_expression "hdr->cbFdOffset" identifier -> field_identifier))) + number_literal) ))))) , (cast_expression "(int)backend->external_fdr_size" ( (type_descriptor "int" primitive_type) ) (field_expression "backend->external_fdr_size" identifier -> field_identifier)) , (pointer_expression "*(undefined4 *)((int)&backend->external_fdr_size + 4)" * (cast_expression "(undefined4 *)((int)&backend->external_fdr_size + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&backend->external_fdr_size + 4)" ( (binary_expression "(int)&backend->external_fdr_size + 4" (cast_expression "(int)&backend->external_fdr_size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&backend->external_fdr_size" & (field_expression "backend->external_fdr_size" identifier -> field_identifier))) + number_literal) )))) )))) ;) (goto_statement "goto LAB_000252e8;" goto statement_identifier ;) })) }) (else_clause "else {\n        ppVar60 = (page *)(ppVar50->file + file_desc.objects_per_page);\n        ppVar36 = (proc_t *)*(vlinks **)&local_98->pdr;\n        if (ppVar60 <= ppVar50) goto LAB_000251e2;\n      }" else (compound_statement "{\n        ppVar60 = (page *)(ppVar50->file + file_desc.objects_per_page);\n        ppVar36 = (proc_t *)*(vlinks **)&local_98->pdr;\n        if (ppVar60 <= ppVar50) goto LAB_000251e2;\n      }" { (expression_statement "ppVar60 = (page *)(ppVar50->file + file_desc.objects_per_page);" (assignment_expression "ppVar60 = (page *)(ppVar50->file + file_desc.objects_per_page)" identifier = (cast_expression "(page *)(ppVar50->file + file_desc.objects_per_page)" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppVar50->file + file_desc.objects_per_page)" ( (binary_expression "ppVar50->file + file_desc.objects_per_page" (field_expression "ppVar50->file" identifier -> field_identifier) + (field_expression "file_desc.objects_per_page" identifier . field_identifier)) )))) ;) (expression_statement "ppVar36 = (proc_t *)*(vlinks **)&local_98->pdr;" (assignment_expression "ppVar36 = (proc_t *)*(vlinks **)&local_98->pdr" identifier = (cast_expression "(proc_t *)*(vlinks **)&local_98->pdr" ( (type_descriptor "proc_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*(vlinks **)&local_98->pdr" * (cast_expression "(vlinks **)&local_98->pdr" ( (type_descriptor "vlinks **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_98->pdr" & (field_expression "local_98->pdr" identifier -> field_identifier)))))) ;) (if_statement "if (ppVar60 <= ppVar50) goto LAB_000251e2;" if (parenthesized_expression "(ppVar60 <= ppVar50)" ( (binary_expression "ppVar60 <= ppVar50" identifier <= identifier) )) (goto_statement "goto LAB_000251e2;" goto statement_identifier ;)) }))) (do_statement "do {\n        uVar44 = (int)bufend - (int)pcVar26 >> 0x1f;\n        if (uVar44 < uVar54 || uVar44 - uVar54 < (uint)((uint)((int)bufend - (int)pcVar26) < uVar24)\n           ) {\n          pcVar26 = ecoff_add_bytes(local_78,local_74,pcVar26,uVar24);\n        }\n        pcVar22 = pcVar26 + uVar24;\n        ppVar55 = (page *)(ppVar50->byte + 0x294);\n        (*p_Var15)(stdoutput,(FDR *)ppVar50,pcVar26);\n        local_ac = (aux_t *)((int)local_ac + 1);\n        pcVar26 = pcVar22;\n        ppVar50 = ppVar55;\n      } while (ppVar55 < ppVar60);" do (compound_statement "{\n        uVar44 = (int)bufend - (int)pcVar26 >> 0x1f;\n        if (uVar44 < uVar54 || uVar44 - uVar54 < (uint)((uint)((int)bufend - (int)pcVar26) < uVar24)\n           ) {\n          pcVar26 = ecoff_add_bytes(local_78,local_74,pcVar26,uVar24);\n        }\n        pcVar22 = pcVar26 + uVar24;\n        ppVar55 = (page *)(ppVar50->byte + 0x294);\n        (*p_Var15)(stdoutput,(FDR *)ppVar50,pcVar26);\n        local_ac = (aux_t *)((int)local_ac + 1);\n        pcVar26 = pcVar22;\n        ppVar50 = ppVar55;\n      }" { (expression_statement "uVar44 = (int)bufend - (int)pcVar26 >> 0x1f;" (assignment_expression "uVar44 = (int)bufend - (int)pcVar26 >> 0x1f" identifier = (binary_expression "(int)bufend - (int)pcVar26 >> 0x1f" (binary_expression "(int)bufend - (int)pcVar26" (cast_expression "(int)bufend" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar26" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (if_statement "if (uVar44 < uVar54 || uVar44 - uVar54 < (uint)((uint)((int)bufend - (int)pcVar26) < uVar24)\n           ) {\n          pcVar26 = ecoff_add_bytes(local_78,local_74,pcVar26,uVar24);\n        }" if (parenthesized_expression "(uVar44 < uVar54 || uVar44 - uVar54 < (uint)((uint)((int)bufend - (int)pcVar26) < uVar24)\n           )" ( (binary_expression "uVar44 < uVar54 || uVar44 - uVar54 < (uint)((uint)((int)bufend - (int)pcVar26) < uVar24)" (binary_expression "uVar44 < uVar54" identifier < identifier) || (binary_expression "uVar44 - uVar54 < (uint)((uint)((int)bufend - (int)pcVar26) < uVar24)" (binary_expression "uVar44 - uVar54" identifier - identifier) < (call_expression "(uint)((uint)((int)bufend - (int)pcVar26) < uVar24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)((int)bufend - (int)pcVar26) < uVar24)" ( (binary_expression "(uint)((int)bufend - (int)pcVar26) < uVar24" (call_expression "(uint)((int)bufend - (int)pcVar26)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)bufend - (int)pcVar26)" ( (binary_expression "(int)bufend - (int)pcVar26" (cast_expression "(int)bufend" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar26" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < identifier) ))))) )) (compound_statement "{\n          pcVar26 = ecoff_add_bytes(local_78,local_74,pcVar26,uVar24);\n        }" { (expression_statement "pcVar26 = ecoff_add_bytes(local_78,local_74,pcVar26,uVar24);" (assignment_expression "pcVar26 = ecoff_add_bytes(local_78,local_74,pcVar26,uVar24)" identifier = (call_expression "ecoff_add_bytes(local_78,local_74,pcVar26,uVar24)" identifier (argument_list "(local_78,local_74,pcVar26,uVar24)" ( identifier , identifier , identifier , identifier )))) ;) })) (expression_statement "pcVar22 = pcVar26 + uVar24;" (assignment_expression "pcVar22 = pcVar26 + uVar24" identifier = (binary_expression "pcVar26 + uVar24" identifier + identifier)) ;) (expression_statement "ppVar55 = (page *)(ppVar50->byte + 0x294);" (assignment_expression "ppVar55 = (page *)(ppVar50->byte + 0x294)" identifier = (cast_expression "(page *)(ppVar50->byte + 0x294)" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppVar50->byte + 0x294)" ( (binary_expression "ppVar50->byte + 0x294" (field_expression "ppVar50->byte" identifier -> field_identifier) + number_literal) )))) ;) (expression_statement "(*p_Var15)(stdoutput,(FDR *)ppVar50,pcVar26);" (call_expression "(*p_Var15)(stdoutput,(FDR *)ppVar50,pcVar26)" (parenthesized_expression "(*p_Var15)" ( (pointer_expression "*p_Var15" * identifier) )) (argument_list "(stdoutput,(FDR *)ppVar50,pcVar26)" ( identifier , (cast_expression "(FDR *)ppVar50" ( (type_descriptor "FDR *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "local_ac = (aux_t *)((int)local_ac + 1);" (assignment_expression "local_ac = (aux_t *)((int)local_ac + 1)" identifier = (cast_expression "(aux_t *)((int)local_ac + 1)" ( (type_descriptor "aux_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_ac + 1)" ( (binary_expression "(int)local_ac + 1" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pcVar26 = pcVar22;" (assignment_expression "pcVar26 = pcVar22" identifier = identifier) ;) (expression_statement "ppVar50 = ppVar55;" (assignment_expression "ppVar50 = ppVar55" identifier = identifier) ;) }) while (parenthesized_expression "(ppVar55 < ppVar60)" ( (binary_expression "ppVar55 < ppVar60" identifier < identifier) )) ;) (expression_statement "ppVar36 = (proc_t *)*(vlinks **)&local_98->pdr;" (assignment_expression "ppVar36 = (proc_t *)*(vlinks **)&local_98->pdr" identifier = (cast_expression "(proc_t *)*(vlinks **)&local_98->pdr" ( (type_descriptor "proc_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*(vlinks **)&local_98->pdr" * (cast_expression "(vlinks **)&local_98->pdr" ( (type_descriptor "vlinks **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_98->pdr" & (field_expression "local_98->pdr" identifier -> field_identifier)))))) ;) }) while (parenthesized_expression "(*(vlinks **)&local_98->pdr != (vlinks *)0x0)" ( (binary_expression "*(vlinks **)&local_98->pdr != (vlinks *)0x0" (pointer_expression "*(vlinks **)&local_98->pdr" * (cast_expression "(vlinks **)&local_98->pdr" ( (type_descriptor "vlinks **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_98->pdr" & (field_expression "local_98->pdr" identifier -> field_identifier)))) != (cast_expression "(vlinks *)0x0" ( (type_descriptor "vlinks *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;)) (expression_statement "local_9c = (page *)((int)local_9c->byte + (int)local_ac * uVar24);" (assignment_expression "local_9c = (page *)((int)local_9c->byte + (int)local_ac * uVar24)" identifier = (cast_expression "(page *)((int)local_9c->byte + (int)local_ac * uVar24)" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c->byte + (int)local_ac * uVar24)" ( (binary_expression "(int)local_9c->byte + (int)local_ac * uVar24" (cast_expression "(int)local_9c->byte" ( (type_descriptor "int" primitive_type) ) (field_expression "local_9c->byte" identifier -> field_identifier)) + (binary_expression "(int)local_ac * uVar24" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) * identifier)) )))) ;) (expression_statement "lVar25 = __udivdi3((int)local_9c - (int)hdr->cbFdOffset,\n                       -(uint)(local_9c < (uint)hdr->cbFdOffset) -\n                       *(int *)((int)&hdr->cbFdOffset + 4),(int)backend->external_fdr_size,\n                       *(undefined4 *)((int)&backend->external_fdr_size + 4));" (assignment_expression "lVar25 = __udivdi3((int)local_9c - (int)hdr->cbFdOffset,\n                       -(uint)(local_9c < (uint)hdr->cbFdOffset) -\n                       *(int *)((int)&hdr->cbFdOffset + 4),(int)backend->external_fdr_size,\n                       *(undefined4 *)((int)&backend->external_fdr_size + 4))" identifier = (call_expression "__udivdi3((int)local_9c - (int)hdr->cbFdOffset,\n                       -(uint)(local_9c < (uint)hdr->cbFdOffset) -\n                       *(int *)((int)&hdr->cbFdOffset + 4),(int)backend->external_fdr_size,\n                       *(undefined4 *)((int)&backend->external_fdr_size + 4))" identifier (argument_list "((int)local_9c - (int)hdr->cbFdOffset,\n                       -(uint)(local_9c < (uint)hdr->cbFdOffset) -\n                       *(int *)((int)&hdr->cbFdOffset + 4),(int)backend->external_fdr_size,\n                       *(undefined4 *)((int)&backend->external_fdr_size + 4))" ( (binary_expression "(int)local_9c - (int)hdr->cbFdOffset" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)hdr->cbFdOffset" ( (type_descriptor "int" primitive_type) ) (field_expression "hdr->cbFdOffset" identifier -> field_identifier))) , (binary_expression "-(uint)(local_9c < (uint)hdr->cbFdOffset) -\n                       *(int *)((int)&hdr->cbFdOffset + 4)" (unary_expression "-(uint)(local_9c < (uint)hdr->cbFdOffset)" - (call_expression "(uint)(local_9c < (uint)hdr->cbFdOffset)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_9c < (uint)hdr->cbFdOffset)" ( (binary_expression "local_9c < (uint)hdr->cbFdOffset" identifier < (cast_expression "(uint)hdr->cbFdOffset" ( (type_descriptor "uint" type_identifier) ) (field_expression "hdr->cbFdOffset" identifier -> field_identifier))) )))) - (pointer_expression "*(int *)((int)&hdr->cbFdOffset + 4)" * (cast_expression "(int *)((int)&hdr->cbFdOffset + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&hdr->cbFdOffset + 4)" ( (binary_expression "(int)&hdr->cbFdOffset + 4" (cast_expression "(int)&hdr->cbFdOffset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&hdr->cbFdOffset" & (field_expression "hdr->cbFdOffset" identifier -> field_identifier))) + number_literal) ))))) , (cast_expression "(int)backend->external_fdr_size" ( (type_descriptor "int" primitive_type) ) (field_expression "backend->external_fdr_size" identifier -> field_identifier)) , (pointer_expression "*(undefined4 *)((int)&backend->external_fdr_size + 4)" * (cast_expression "(undefined4 *)((int)&backend->external_fdr_size + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&backend->external_fdr_size + 4)" ( (binary_expression "(int)&backend->external_fdr_size + 4" (cast_expression "(int)&backend->external_fdr_size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&backend->external_fdr_size" & (field_expression "backend->external_fdr_size" identifier -> field_identifier))) + number_literal) )))) )))) ;) }))) (labeled_statement "LAB_000252e8:\n  hdr->ifdMax = lVar25;" statement_identifier : (expression_statement "hdr->ifdMax = lVar25;" (assignment_expression "hdr->ifdMax = lVar25" (field_expression "hdr->ifdMax" identifier -> field_identifier) = identifier) ;)) (expression_statement "hdr->issExtMax = 0;" (assignment_expression "hdr->issExtMax = 0" (field_expression "hdr->issExtMax" identifier -> field_identifier) = number_literal) ;) (expression_statement "psVar38 = symbol_rootP;" (assignment_expression "psVar38 = symbol_rootP" identifier = identifier) ;) (expression_statement "*(undefined4 *)&hdr->cbSsExtOffset = 0;" (assignment_expression "*(undefined4 *)&hdr->cbSsExtOffset = 0" (pointer_expression "*(undefined4 *)&hdr->cbSsExtOffset" * (cast_expression "(undefined4 *)&hdr->cbSsExtOffset" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&hdr->cbSsExtOffset" & (field_expression "hdr->cbSsExtOffset" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&hdr->cbSsExtOffset + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&hdr->cbSsExtOffset + 4) = 0" (pointer_expression "*(undefined4 *)((int)&hdr->cbSsExtOffset + 4)" * (cast_expression "(undefined4 *)((int)&hdr->cbSsExtOffset + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&hdr->cbSsExtOffset + 4)" ( (binary_expression "(int)&hdr->cbSsExtOffset + 4" (cast_expression "(int)&hdr->cbSsExtOffset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&hdr->cbSsExtOffset" & (field_expression "hdr->cbSsExtOffset" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "hdr->iextMax = 0;" (assignment_expression "hdr->iextMax = 0" (field_expression "hdr->iextMax" identifier -> field_identifier) = number_literal) ;) (expression_statement "*(undefined4 *)&hdr->cbExtOffset = 0;" (assignment_expression "*(undefined4 *)&hdr->cbExtOffset = 0" (pointer_expression "*(undefined4 *)&hdr->cbExtOffset" * (cast_expression "(undefined4 *)&hdr->cbExtOffset" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&hdr->cbExtOffset" & (field_expression "hdr->cbExtOffset" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&hdr->cbExtOffset + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&hdr->cbExtOffset + 4) = 0" (pointer_expression "*(undefined4 *)((int)&hdr->cbExtOffset + 4)" * (cast_expression "(undefined4 *)((int)&hdr->cbExtOffset + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&hdr->cbExtOffset + 4)" ( (binary_expression "(int)&hdr->cbExtOffset + 4" (cast_expression "(int)&hdr->cbExtOffset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&hdr->cbExtOffset" & (field_expression "hdr->cbExtOffset" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (for_statement "for (; psVar38 != (symbolS *)0x0; psVar38 = symbol_next(psVar38)) {\n    peVar31 = symbol_get_obj(psVar38);\n    if (peVar31->ecoff_symbol != (localsym *)0x0) {\n      iVar29 = S_IS_EXTERNAL(psVar38);\n      if (((iVar29 == 0) && (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n         (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) {\n        peVar31 = symbol_get_obj(psVar38);\n        plVar7 = peVar31->ecoff_symbol;\n        uVar54 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc;\n        *(undefined4 *)&(plVar7->ecoff_sym).asym.value = 0;\n        *(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4) = 0;\n        *(uint *)&(plVar7->ecoff_sym).asym.field_0xc = uVar54 & 0x800 | 0xfffff000;\n      }\n      peVar31 = symbol_get_obj(psVar38);\n      elf_ecoff_set_ext(psVar38,&peVar31->ecoff_symbol->ecoff_sym);\n    }\n  }" for ( ; (binary_expression "psVar38 != (symbolS *)0x0" identifier != (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "psVar38 = symbol_next(psVar38)" identifier = (call_expression "symbol_next(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) ) (compound_statement "{\n    peVar31 = symbol_get_obj(psVar38);\n    if (peVar31->ecoff_symbol != (localsym *)0x0) {\n      iVar29 = S_IS_EXTERNAL(psVar38);\n      if (((iVar29 == 0) && (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n         (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) {\n        peVar31 = symbol_get_obj(psVar38);\n        plVar7 = peVar31->ecoff_symbol;\n        uVar54 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc;\n        *(undefined4 *)&(plVar7->ecoff_sym).asym.value = 0;\n        *(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4) = 0;\n        *(uint *)&(plVar7->ecoff_sym).asym.field_0xc = uVar54 & 0x800 | 0xfffff000;\n      }\n      peVar31 = symbol_get_obj(psVar38);\n      elf_ecoff_set_ext(psVar38,&peVar31->ecoff_symbol->ecoff_sym);\n    }\n  }" { (expression_statement "peVar31 = symbol_get_obj(psVar38);" (assignment_expression "peVar31 = symbol_get_obj(psVar38)" identifier = (call_expression "symbol_get_obj(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) ;) (if_statement "if (peVar31->ecoff_symbol != (localsym *)0x0) {\n      iVar29 = S_IS_EXTERNAL(psVar38);\n      if (((iVar29 == 0) && (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n         (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) {\n        peVar31 = symbol_get_obj(psVar38);\n        plVar7 = peVar31->ecoff_symbol;\n        uVar54 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc;\n        *(undefined4 *)&(plVar7->ecoff_sym).asym.value = 0;\n        *(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4) = 0;\n        *(uint *)&(plVar7->ecoff_sym).asym.field_0xc = uVar54 & 0x800 | 0xfffff000;\n      }\n      peVar31 = symbol_get_obj(psVar38);\n      elf_ecoff_set_ext(psVar38,&peVar31->ecoff_symbol->ecoff_sym);\n    }" if (parenthesized_expression "(peVar31->ecoff_symbol != (localsym *)0x0)" ( (binary_expression "peVar31->ecoff_symbol != (localsym *)0x0" (field_expression "peVar31->ecoff_symbol" identifier -> field_identifier) != (cast_expression "(localsym *)0x0" ( (type_descriptor "localsym *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar29 = S_IS_EXTERNAL(psVar38);\n      if (((iVar29 == 0) && (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n         (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) {\n        peVar31 = symbol_get_obj(psVar38);\n        plVar7 = peVar31->ecoff_symbol;\n        uVar54 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc;\n        *(undefined4 *)&(plVar7->ecoff_sym).asym.value = 0;\n        *(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4) = 0;\n        *(uint *)&(plVar7->ecoff_sym).asym.field_0xc = uVar54 & 0x800 | 0xfffff000;\n      }\n      peVar31 = symbol_get_obj(psVar38);\n      elf_ecoff_set_ext(psVar38,&peVar31->ecoff_symbol->ecoff_sym);\n    }" { (expression_statement "iVar29 = S_IS_EXTERNAL(psVar38);" (assignment_expression "iVar29 = S_IS_EXTERNAL(psVar38)" identifier = (call_expression "S_IS_EXTERNAL(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) ;) (if_statement "if (((iVar29 == 0) && (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n         (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)) {\n        peVar31 = symbol_get_obj(psVar38);\n        plVar7 = peVar31->ecoff_symbol;\n        uVar54 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc;\n        *(undefined4 *)&(plVar7->ecoff_sym).asym.value = 0;\n        *(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4) = 0;\n        *(uint *)&(plVar7->ecoff_sym).asym.field_0xc = uVar54 & 0x800 | 0xfffff000;\n      }" if (parenthesized_expression "(((iVar29 == 0) && (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n         (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0))" ( (binary_expression "((iVar29 == 0) && (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)) &&\n         (iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)" (parenthesized_expression "((iVar29 == 0) && (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0))" ( (binary_expression "(iVar29 == 0) && (iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)" (parenthesized_expression "(iVar29 == 0)" ( (binary_expression "iVar29 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar29 = S_IS_WEAK(psVar38), iVar29 == 0)" ( (comma_expression "iVar29 = S_IS_WEAK(psVar38), iVar29 == 0" (assignment_expression "iVar29 = S_IS_WEAK(psVar38)" identifier = (call_expression "S_IS_WEAK(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) , (binary_expression "iVar29 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0)" ( (comma_expression "iVar29 = S_IS_DEFINED(psVar38), iVar29 != 0" (assignment_expression "iVar29 = S_IS_DEFINED(psVar38)" identifier = (call_expression "S_IS_DEFINED(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) , (binary_expression "iVar29 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        peVar31 = symbol_get_obj(psVar38);\n        plVar7 = peVar31->ecoff_symbol;\n        uVar54 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc;\n        *(undefined4 *)&(plVar7->ecoff_sym).asym.value = 0;\n        *(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4) = 0;\n        *(uint *)&(plVar7->ecoff_sym).asym.field_0xc = uVar54 & 0x800 | 0xfffff000;\n      }" { (expression_statement "peVar31 = symbol_get_obj(psVar38);" (assignment_expression "peVar31 = symbol_get_obj(psVar38)" identifier = (call_expression "symbol_get_obj(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) ;) (expression_statement "plVar7 = peVar31->ecoff_symbol;" (assignment_expression "plVar7 = peVar31->ecoff_symbol" identifier = (field_expression "peVar31->ecoff_symbol" identifier -> field_identifier)) ;) (expression_statement "uVar54 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc;" (assignment_expression "uVar54 = *(uint *)&(plVar7->ecoff_sym).asym.field_0xc" identifier = (pointer_expression "*(uint *)&(plVar7->ecoff_sym).asym.field_0xc" * (cast_expression "(uint *)&(plVar7->ecoff_sym).asym.field_0xc" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(plVar7->ecoff_sym).asym.field_0xc" & (field_expression "(plVar7->ecoff_sym).asym.field_0xc" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier))))) ;) (expression_statement "*(undefined4 *)&(plVar7->ecoff_sym).asym.value = 0;" (assignment_expression "*(undefined4 *)&(plVar7->ecoff_sym).asym.value = 0" (pointer_expression "*(undefined4 *)&(plVar7->ecoff_sym).asym.value" * (cast_expression "(undefined4 *)&(plVar7->ecoff_sym).asym.value" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(plVar7->ecoff_sym).asym.value" & (field_expression "(plVar7->ecoff_sym).asym.value" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4)" * (cast_expression "(undefined4 *)((int)&(plVar7->ecoff_sym).asym.value + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(plVar7->ecoff_sym).asym.value + 4)" ( (binary_expression "(int)&(plVar7->ecoff_sym).asym.value + 4" (cast_expression "(int)&(plVar7->ecoff_sym).asym.value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(plVar7->ecoff_sym).asym.value" & (field_expression "(plVar7->ecoff_sym).asym.value" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)&(plVar7->ecoff_sym).asym.field_0xc = uVar54 & 0x800 | 0xfffff000;" (assignment_expression "*(uint *)&(plVar7->ecoff_sym).asym.field_0xc = uVar54 & 0x800 | 0xfffff000" (pointer_expression "*(uint *)&(plVar7->ecoff_sym).asym.field_0xc" * (cast_expression "(uint *)&(plVar7->ecoff_sym).asym.field_0xc" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(plVar7->ecoff_sym).asym.field_0xc" & (field_expression "(plVar7->ecoff_sym).asym.field_0xc" (field_expression "(plVar7->ecoff_sym).asym" (parenthesized_expression "(plVar7->ecoff_sym)" ( (field_expression "plVar7->ecoff_sym" identifier -> field_identifier) )) . field_identifier) . field_identifier)))) = (binary_expression "uVar54 & 0x800 | 0xfffff000" (binary_expression "uVar54 & 0x800" identifier & number_literal) | number_literal)) ;) })) (expression_statement "peVar31 = symbol_get_obj(psVar38);" (assignment_expression "peVar31 = symbol_get_obj(psVar38)" identifier = (call_expression "symbol_get_obj(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) ;) (expression_statement "elf_ecoff_set_ext(psVar38,&peVar31->ecoff_symbol->ecoff_sym);" (call_expression "elf_ecoff_set_ext(psVar38,&peVar31->ecoff_symbol->ecoff_sym)" identifier (argument_list "(psVar38,&peVar31->ecoff_symbol->ecoff_sym)" ( identifier , (pointer_expression "&peVar31->ecoff_symbol->ecoff_sym" & (field_expression "peVar31->ecoff_symbol->ecoff_sym" (field_expression "peVar31->ecoff_symbol" identifier -> field_identifier) -> field_identifier)) ))) ;) })) })) (if_statement "if (((int)backend->debug_align - 1U & (uint)local_9c) == 0) {\n    hdr->vstamp = 0x30b;\n    *bufp = buf;\n    return (ulong)local_9c;\n  }" if (parenthesized_expression "(((int)backend->debug_align - 1U & (uint)local_9c) == 0)" ( (binary_expression "((int)backend->debug_align - 1U & (uint)local_9c) == 0" (parenthesized_expression "((int)backend->debug_align - 1U & (uint)local_9c)" ( (binary_expression "(int)backend->debug_align - 1U & (uint)local_9c" (binary_expression "(int)backend->debug_align - 1U" (cast_expression "(int)backend->debug_align" ( (type_descriptor "int" primitive_type) ) (field_expression "backend->debug_align" identifier -> field_identifier)) - number_literal) & (cast_expression "(uint)local_9c" ( (type_descriptor "uint" type_identifier) ) identifier)) )) == number_literal) )) (compound_statement "{\n    hdr->vstamp = 0x30b;\n    *bufp = buf;\n    return (ulong)local_9c;\n  }" { (expression_statement "hdr->vstamp = 0x30b;" (assignment_expression "hdr->vstamp = 0x30b" (field_expression "hdr->vstamp" identifier -> field_identifier) = number_literal) ;) (expression_statement "*bufp = buf;" (assignment_expression "*bufp = buf" (pointer_expression "*bufp" * identifier) = identifier) ;) (return_statement "return (ulong)local_9c;" return (cast_expression "(ulong)local_9c" ( (type_descriptor "ulong" type_identifier) ) identifier) ;) })) comment (expression_statement "as_abort("../../gas/ecoff.c",0x129d,"ecoff_build_debug");" (call_expression "as_abort("../../gas/ecoff.c",0x129d,"ecoff_build_debug")" identifier (argument_list "("../../gas/ecoff.c",0x129d,"ecoff_build_debug")" ( (string_literal ""../../gas/ecoff.c"" " string_content ") , number_literal , (string_literal ""ecoff_build_debug"" " string_content ") ))) ;) (labeled_statement "code_r0x00024a60:\n  local_ac = (aux_t *)((int)local_ac + 3);" statement_identifier : (expression_statement "local_ac = (aux_t *)((int)local_ac + 3);" (assignment_expression "local_ac = (aux_t *)((int)local_ac + 3)" identifier = (cast_expression "(aux_t *)((int)local_ac + 3)" ( (type_descriptor "aux_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_ac + 3)" ( (binary_expression "(int)local_ac + 3" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (expression_statement "pcVar22 = bufptr + 2;" (assignment_expression "pcVar22 = bufptr + 2" identifier = (binary_expression "bufptr + 2" identifier + number_literal)) ;) (expression_statement "bufptr[1] = (char)((uint)iVar46 >> 8);" (assignment_expression "bufptr[1] = (char)((uint)iVar46 >> 8)" (subscript_expression "bufptr[1]" identifier [ number_literal ]) = (cast_expression "(char)((uint)iVar46 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar46 >> 8)" ( (binary_expression "(uint)iVar46 >> 8" (cast_expression "(uint)iVar46" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bufptr = bufptr + 3;" (assignment_expression "bufptr = bufptr + 3" identifier = (binary_expression "bufptr + 3" identifier + number_literal)) ;) (expression_statement "*pcVar22 = (char)iVar46;" (assignment_expression "*pcVar22 = (char)iVar46" (pointer_expression "*pcVar22" * identifier) = (cast_expression "(char)iVar46" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (labeled_statement "LAB_000238d0:\n  if (0 < (int)uVar24) {\n    uVar24 = uVar24 - 1;\n    local_ac = (aux_t *)((int)local_ac + 1);\n    uVar44 = (uVar24 >> 4) + (int)local_ac;\n    if (bufend <= bufptr) goto LAB_00023925;\n    while (pcVar22 = bufptr + 1, pcVar26 = bufptr, bufptr = pcVar22, 0xf < uVar24) {\n      while( true ) {\n        uVar24 = uVar24 - 0x10;\n        *pcVar26 = '\x0f';\n        if ((aux_t *)uVar44 == local_ac) goto LAB_00023953;\n        local_ac = (aux_t *)((int)local_ac + 1);\n        if (bufptr < bufend) break;\nLAB_00023925:\n        pcVar26 = ecoff_add_bytes(&buf,&bufend,bufptr,1);\n        bufptr = pcVar26 + 1;\n        if (uVar24 < 0x10) goto LAB_00023944;\n      }\n    }\nLAB_00023944:\n    *pcVar26 = (char)uVar24;\n  }" statement_identifier : (if_statement "if (0 < (int)uVar24) {\n    uVar24 = uVar24 - 1;\n    local_ac = (aux_t *)((int)local_ac + 1);\n    uVar44 = (uVar24 >> 4) + (int)local_ac;\n    if (bufend <= bufptr) goto LAB_00023925;\n    while (pcVar22 = bufptr + 1, pcVar26 = bufptr, bufptr = pcVar22, 0xf < uVar24) {\n      while( true ) {\n        uVar24 = uVar24 - 0x10;\n        *pcVar26 = '\x0f';\n        if ((aux_t *)uVar44 == local_ac) goto LAB_00023953;\n        local_ac = (aux_t *)((int)local_ac + 1);\n        if (bufptr < bufend) break;\nLAB_00023925:\n        pcVar26 = ecoff_add_bytes(&buf,&bufend,bufptr,1);\n        bufptr = pcVar26 + 1;\n        if (uVar24 < 0x10) goto LAB_00023944;\n      }\n    }\nLAB_00023944:\n    *pcVar26 = (char)uVar24;\n  }" if (parenthesized_expression "(0 < (int)uVar24)" ( (binary_expression "0 < (int)uVar24" number_literal < (cast_expression "(int)uVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    uVar24 = uVar24 - 1;\n    local_ac = (aux_t *)((int)local_ac + 1);\n    uVar44 = (uVar24 >> 4) + (int)local_ac;\n    if (bufend <= bufptr) goto LAB_00023925;\n    while (pcVar22 = bufptr + 1, pcVar26 = bufptr, bufptr = pcVar22, 0xf < uVar24) {\n      while( true ) {\n        uVar24 = uVar24 - 0x10;\n        *pcVar26 = '\x0f';\n        if ((aux_t *)uVar44 == local_ac) goto LAB_00023953;\n        local_ac = (aux_t *)((int)local_ac + 1);\n        if (bufptr < bufend) break;\nLAB_00023925:\n        pcVar26 = ecoff_add_bytes(&buf,&bufend,bufptr,1);\n        bufptr = pcVar26 + 1;\n        if (uVar24 < 0x10) goto LAB_00023944;\n      }\n    }\nLAB_00023944:\n    *pcVar26 = (char)uVar24;\n  }" { (expression_statement "uVar24 = uVar24 - 1;" (assignment_expression "uVar24 = uVar24 - 1" identifier = (binary_expression "uVar24 - 1" identifier - number_literal)) ;) (expression_statement "local_ac = (aux_t *)((int)local_ac + 1);" (assignment_expression "local_ac = (aux_t *)((int)local_ac + 1)" identifier = (cast_expression "(aux_t *)((int)local_ac + 1)" ( (type_descriptor "aux_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_ac + 1)" ( (binary_expression "(int)local_ac + 1" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar44 = (uVar24 >> 4) + (int)local_ac;" (assignment_expression "uVar44 = (uVar24 >> 4) + (int)local_ac" identifier = (binary_expression "(uVar24 >> 4) + (int)local_ac" (parenthesized_expression "(uVar24 >> 4)" ( (binary_expression "uVar24 >> 4" identifier >> number_literal) )) + (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (bufend <= bufptr) goto LAB_00023925;" if (parenthesized_expression "(bufend <= bufptr)" ( (binary_expression "bufend <= bufptr" identifier <= identifier) )) (goto_statement "goto LAB_00023925;" goto statement_identifier ;)) (while_statement "while (pcVar22 = bufptr + 1, pcVar26 = bufptr, bufptr = pcVar22, 0xf < uVar24) {\n      while( true ) {\n        uVar24 = uVar24 - 0x10;\n        *pcVar26 = '\x0f';\n        if ((aux_t *)uVar44 == local_ac) goto LAB_00023953;\n        local_ac = (aux_t *)((int)local_ac + 1);\n        if (bufptr < bufend) break;\nLAB_00023925:\n        pcVar26 = ecoff_add_bytes(&buf,&bufend,bufptr,1);\n        bufptr = pcVar26 + 1;\n        if (uVar24 < 0x10) goto LAB_00023944;\n      }\n    }" while (parenthesized_expression "(pcVar22 = bufptr + 1, pcVar26 = bufptr, bufptr = pcVar22, 0xf < uVar24)" ( (comma_expression "pcVar22 = bufptr + 1, pcVar26 = bufptr, bufptr = pcVar22, 0xf < uVar24" (assignment_expression "pcVar22 = bufptr + 1" identifier = (binary_expression "bufptr + 1" identifier + number_literal)) , (comma_expression "pcVar26 = bufptr, bufptr = pcVar22, 0xf < uVar24" (assignment_expression "pcVar26 = bufptr" identifier = identifier) , (comma_expression "bufptr = pcVar22, 0xf < uVar24" (assignment_expression "bufptr = pcVar22" identifier = identifier) , (binary_expression "0xf < uVar24" number_literal < identifier)))) )) (compound_statement "{\n      while( true ) {\n        uVar24 = uVar24 - 0x10;\n        *pcVar26 = '\x0f';\n        if ((aux_t *)uVar44 == local_ac) goto LAB_00023953;\n        local_ac = (aux_t *)((int)local_ac + 1);\n        if (bufptr < bufend) break;\nLAB_00023925:\n        pcVar26 = ecoff_add_bytes(&buf,&bufend,bufptr,1);\n        bufptr = pcVar26 + 1;\n        if (uVar24 < 0x10) goto LAB_00023944;\n      }\n    }" { (while_statement "while( true ) {\n        uVar24 = uVar24 - 0x10;\n        *pcVar26 = '\x0f';\n        if ((aux_t *)uVar44 == local_ac) goto LAB_00023953;\n        local_ac = (aux_t *)((int)local_ac + 1);\n        if (bufptr < bufend) break;\nLAB_00023925:\n        pcVar26 = ecoff_add_bytes(&buf,&bufend,bufptr,1);\n        bufptr = pcVar26 + 1;\n        if (uVar24 < 0x10) goto LAB_00023944;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        uVar24 = uVar24 - 0x10;\n        *pcVar26 = '\x0f';\n        if ((aux_t *)uVar44 == local_ac) goto LAB_00023953;\n        local_ac = (aux_t *)((int)local_ac + 1);\n        if (bufptr < bufend) break;\nLAB_00023925:\n        pcVar26 = ecoff_add_bytes(&buf,&bufend,bufptr,1);\n        bufptr = pcVar26 + 1;\n        if (uVar24 < 0x10) goto LAB_00023944;\n      }" { (expression_statement "uVar24 = uVar24 - 0x10;" (assignment_expression "uVar24 = uVar24 - 0x10" identifier = (binary_expression "uVar24 - 0x10" identifier - number_literal)) ;) (expression_statement "*pcVar26 = '\x0f';" (assignment_expression "*pcVar26 = '\x0f'" (pointer_expression "*pcVar26" * identifier) = (char_literal "'\x0f'" ' escape_sequence ')) ;) (if_statement "if ((aux_t *)uVar44 == local_ac) goto LAB_00023953;" if (parenthesized_expression "((aux_t *)uVar44 == local_ac)" ( (binary_expression "(aux_t *)uVar44 == local_ac" (cast_expression "(aux_t *)uVar44" ( (type_descriptor "aux_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == identifier) )) (goto_statement "goto LAB_00023953;" goto statement_identifier ;)) (expression_statement "local_ac = (aux_t *)((int)local_ac + 1);" (assignment_expression "local_ac = (aux_t *)((int)local_ac + 1)" identifier = (cast_expression "(aux_t *)((int)local_ac + 1)" ( (type_descriptor "aux_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_ac + 1)" ( (binary_expression "(int)local_ac + 1" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (bufptr < bufend) break;" if (parenthesized_expression "(bufptr < bufend)" ( (binary_expression "bufptr < bufend" identifier < identifier) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00023925:\n        pcVar26 = ecoff_add_bytes(&buf,&bufend,bufptr,1);" statement_identifier : (expression_statement "pcVar26 = ecoff_add_bytes(&buf,&bufend,bufptr,1);" (assignment_expression "pcVar26 = ecoff_add_bytes(&buf,&bufend,bufptr,1)" identifier = (call_expression "ecoff_add_bytes(&buf,&bufend,bufptr,1)" identifier (argument_list "(&buf,&bufend,bufptr,1)" ( (pointer_expression "&buf" & identifier) , (pointer_expression "&bufend" & identifier) , identifier , number_literal )))) ;)) (expression_statement "bufptr = pcVar26 + 1;" (assignment_expression "bufptr = pcVar26 + 1" identifier = (binary_expression "pcVar26 + 1" identifier + number_literal)) ;) (if_statement "if (uVar24 < 0x10) goto LAB_00023944;" if (parenthesized_expression "(uVar24 < 0x10)" ( (binary_expression "uVar24 < 0x10" identifier < number_literal) )) (goto_statement "goto LAB_00023944;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_00023944:\n    *pcVar26 = (char)uVar24;" statement_identifier : (expression_statement "*pcVar26 = (char)uVar24;" (assignment_expression "*pcVar26 = (char)uVar24" (pointer_expression "*pcVar26" * identifier) = (cast_expression "(char)uVar24" ( (type_descriptor "char" primitive_type) ) identifier)) ;)) }))) (labeled_statement "LAB_00023953:\n  plVar41 = local_b4->next;" statement_identifier : (expression_statement "plVar41 = local_b4->next;" (assignment_expression "plVar41 = local_b4->next" identifier = (field_expression "local_b4->next" identifier -> field_identifier)) ;)) (if_statement "if (plVar41 == (lineno_list *)0x0) goto LAB_00023a10;" if (parenthesized_expression "(plVar41 == (lineno_list *)0x0)" ( (binary_expression "plVar41 == (lineno_list *)0x0" identifier == (cast_expression "(lineno_list *)0x0" ( (type_descriptor "lineno_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00023a10;" goto statement_identifier ;)) (expression_statement "local_9c = local_a4;" (assignment_expression "local_9c = local_a4" identifier = identifier) ;) (expression_statement "local_94 = local_b4;" (assignment_expression "local_94 = local_b4" identifier = identifier) ;) (expression_statement "local_98 = local_a8;" (assignment_expression "local_98 = local_a8" identifier = identifier) ;) (labeled_statement "LAB_000237a0:\n  plVar40 = plVar41->next;" statement_identifier : (expression_statement "plVar40 = plVar41->next;" (assignment_expression "plVar40 = plVar41->next" identifier = (field_expression "plVar41->next" identifier -> field_identifier)) ;)) (expression_statement "local_b4 = plVar41;" (assignment_expression "local_b4 = plVar41" identifier = identifier) ;) (goto_statement "goto LAB_000237a6;" goto statement_identifier ;) (labeled_statement "LAB_00023a10:\n  if (local_a8 != (proc_t *)0x0) {\n    (local_a8->pdr).lnHigh = local_b4->lineno;\n  }" statement_identifier : (if_statement "if (local_a8 != (proc_t *)0x0) {\n    (local_a8->pdr).lnHigh = local_b4->lineno;\n  }" if (parenthesized_expression "(local_a8 != (proc_t *)0x0)" ( (binary_expression "local_a8 != (proc_t *)0x0" identifier != (cast_expression "(proc_t *)0x0" ( (type_descriptor "proc_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (local_a8->pdr).lnHigh = local_b4->lineno;\n  }" { (expression_statement "(local_a8->pdr).lnHigh = local_b4->lineno;" (assignment_expression "(local_a8->pdr).lnHigh = local_b4->lineno" (field_expression "(local_a8->pdr).lnHigh" (parenthesized_expression "(local_a8->pdr)" ( (field_expression "local_a8->pdr" identifier -> field_identifier) )) . field_identifier) = (field_expression "local_b4->lineno" identifier -> field_identifier)) ;) }))) (if_statement "if (local_a0 != (page *)0x0) {\n    pbVar1 = &((FDR *)local_a0)->cbLineOffset;\n    *(int *)&((FDR *)local_a0)->cbLine = (int)local_ac - (int)*pbVar1;\n    *(uint *)((int)&((FDR *)local_a0)->cbLine + 4) =\n         -(uint)(local_ac < (uint)*pbVar1) - *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);\n    ((FDR *)local_a0)->cline = (long)local_a4;\n  }" if (parenthesized_expression "(local_a0 != (page *)0x0)" ( (binary_expression "local_a0 != (page *)0x0" identifier != (cast_expression "(page *)0x0" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pbVar1 = &((FDR *)local_a0)->cbLineOffset;\n    *(int *)&((FDR *)local_a0)->cbLine = (int)local_ac - (int)*pbVar1;\n    *(uint *)((int)&((FDR *)local_a0)->cbLine + 4) =\n         -(uint)(local_ac < (uint)*pbVar1) - *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);\n    ((FDR *)local_a0)->cline = (long)local_a4;\n  }" { (expression_statement "pbVar1 = &((FDR *)local_a0)->cbLineOffset;" (assignment_expression "pbVar1 = &((FDR *)local_a0)->cbLineOffset" identifier = (pointer_expression "&((FDR *)local_a0)->cbLineOffset" & (field_expression "((FDR *)local_a0)->cbLineOffset" (parenthesized_expression "((FDR *)local_a0)" ( (cast_expression "(FDR *)local_a0" ( (type_descriptor "FDR *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))) ;) (expression_statement "*(int *)&((FDR *)local_a0)->cbLine = (int)local_ac - (int)*pbVar1;" (assignment_expression "*(int *)&((FDR *)local_a0)->cbLine = (int)local_ac - (int)*pbVar1" (pointer_expression "*(int *)&((FDR *)local_a0)->cbLine" * (cast_expression "(int *)&((FDR *)local_a0)->cbLine" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((FDR *)local_a0)->cbLine" & (field_expression "((FDR *)local_a0)->cbLine" (parenthesized_expression "((FDR *)local_a0)" ( (cast_expression "(FDR *)local_a0" ( (type_descriptor "FDR *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)))) = (binary_expression "(int)local_ac - (int)*pbVar1" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)*pbVar1" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pbVar1" * identifier)))) ;) (expression_statement "*(uint *)((int)&((FDR *)local_a0)->cbLine + 4) =\n         -(uint)(local_ac < (uint)*pbVar1) - *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4);" (assignment_expression "*(uint *)((int)&((FDR *)local_a0)->cbLine + 4) =\n         -(uint)(local_ac < (uint)*pbVar1) - *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4)" (pointer_expression "*(uint *)((int)&((FDR *)local_a0)->cbLine + 4)" * (cast_expression "(uint *)((int)&((FDR *)local_a0)->cbLine + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((FDR *)local_a0)->cbLine + 4)" ( (binary_expression "(int)&((FDR *)local_a0)->cbLine + 4" (cast_expression "(int)&((FDR *)local_a0)->cbLine" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((FDR *)local_a0)->cbLine" & (field_expression "((FDR *)local_a0)->cbLine" (parenthesized_expression "((FDR *)local_a0)" ( (cast_expression "(FDR *)local_a0" ( (type_descriptor "FDR *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))) + number_literal) )))) = (binary_expression "-(uint)(local_ac < (uint)*pbVar1) - *(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4)" (unary_expression "-(uint)(local_ac < (uint)*pbVar1)" - (call_expression "(uint)(local_ac < (uint)*pbVar1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_ac < (uint)*pbVar1)" ( (binary_expression "local_ac < (uint)*pbVar1" identifier < (binary_expression "(uint)*pbVar1" (parenthesized_expression "(uint)" ( identifier )) * identifier)) )))) - (pointer_expression "*(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4)" * (cast_expression "(int *)((int)&((FDR *)local_a0)->cbLineOffset + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((FDR *)local_a0)->cbLineOffset + 4)" ( (binary_expression "(int)&((FDR *)local_a0)->cbLineOffset + 4" (cast_expression "(int)&((FDR *)local_a0)->cbLineOffset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((FDR *)local_a0)->cbLineOffset" & (field_expression "((FDR *)local_a0)->cbLineOffset" (parenthesized_expression "((FDR *)local_a0)" ( (cast_expression "(FDR *)local_a0" ( (type_descriptor "FDR *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))) + number_literal) )))))) ;) (expression_statement "((FDR *)local_a0)->cline = (long)local_a4;" (assignment_expression "((FDR *)local_a0)->cline = (long)local_a4" (field_expression "((FDR *)local_a0)->cline" (parenthesized_expression "((FDR *)local_a0)" ( (cast_expression "(FDR *)local_a0" ( (type_descriptor "FDR *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) = (cast_expression "(long)local_a4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) })) (goto_statement "goto LAB_00023a3f;" goto statement_identifier ;) (labeled_statement "LAB_00024380:\n  ptVar33 = (tag *)local_64->hash_ptr;" statement_identifier : (expression_statement "ptVar33 = (tag *)local_64->hash_ptr;" (assignment_expression "ptVar33 = (tag *)local_64->hash_ptr" identifier = (cast_expression "(tag *)local_64->hash_ptr" ( (type_descriptor "tag *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_64->hash_ptr" identifier -> field_identifier))) ;)) (if_statement "if ((tag *)local_64->hash_ptr == (tag *)0x0) goto code_r0x00024393;" if (parenthesized_expression "((tag *)local_64->hash_ptr == (tag *)0x0)" ( (binary_expression "(tag *)local_64->hash_ptr == (tag *)0x0" (cast_expression "(tag *)local_64->hash_ptr" ( (type_descriptor "tag *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_64->hash_ptr" identifier -> field_identifier)) == (cast_expression "(tag *)0x0" ( (type_descriptor "tag *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto code_r0x00024393;" goto statement_identifier ;)) (goto_statement "goto LAB_00023bdc;" goto statement_identifier ;) (labeled_statement "code_r0x00024393:\n  ptVar33 = (tag *)((int)local_a8 - local_9c->ofile[0].isymBase);" statement_identifier : (expression_statement "ptVar33 = (tag *)((int)local_a8 - local_9c->ofile[0].isymBase);" (assignment_expression "ptVar33 = (tag *)((int)local_a8 - local_9c->ofile[0].isymBase)" identifier = (cast_expression "(tag *)((int)local_a8 - local_9c->ofile[0].isymBase)" ( (type_descriptor "tag *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 - local_9c->ofile[0].isymBase)" ( (binary_expression "(int)local_a8 - local_9c->ofile[0].isymBase" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) - (field_expression "local_9c->ofile[0].isymBase" (subscript_expression "local_9c->ofile[0]" (field_expression "local_9c->ofile" identifier -> field_identifier) [ number_literal ]) . field_identifier)) )))) ;)) (expression_statement "local_8c = (int)local_a8;" (assignment_expression "local_8c = (int)local_a8" identifier = (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (labeled_statement "LAB_000243a4:\n  local_9c->sym[0].index_ptr = (ecoff_aux *)ptVar33;" statement_identifier : (expression_statement "local_9c->sym[0].index_ptr = (ecoff_aux *)ptVar33;" (assignment_expression "local_9c->sym[0].index_ptr = (ecoff_aux *)ptVar33" (field_expression "local_9c->sym[0].index_ptr" (subscript_expression "local_9c->sym[0]" (field_expression "local_9c->sym" identifier -> field_identifier) [ number_literal ]) . field_identifier) = (cast_expression "(ecoff_aux *)ptVar33" ( (type_descriptor "ecoff_aux *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "local_9c = (page *)(local_9c->byte + 0x294);" (assignment_expression "local_9c = (page *)(local_9c->byte + 0x294)" identifier = (cast_expression "(page *)(local_9c->byte + 0x294)" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_9c->byte + 0x294)" ( (binary_expression "local_9c->byte + 0x294" (field_expression "local_9c->byte" identifier -> field_identifier) + number_literal) )))) ;) (if_statement "if (local_54 <= local_9c) goto code_r0x000243bf;" if (parenthesized_expression "(local_54 <= local_9c)" ( (binary_expression "local_54 <= local_9c" identifier <= identifier) )) (goto_statement "goto code_r0x000243bf;" goto statement_identifier ;)) (goto_statement "goto LAB_00023bb7;" goto statement_identifier ;) (labeled_statement "code_r0x000243bf:\n  pvVar35 = local_5c->next;" statement_identifier : (expression_statement "pvVar35 = local_5c->next;" (assignment_expression "pvVar35 = local_5c->next" identifier = (field_expression "local_5c->next" identifier -> field_identifier)) ;)) (if_statement "if (local_5c->next == (vlinks *)0x0) goto code_r0x000243ce;" if (parenthesized_expression "(local_5c->next == (vlinks *)0x0)" ( (binary_expression "local_5c->next == (vlinks *)0x0" (field_expression "local_5c->next" identifier -> field_identifier) == (cast_expression "(vlinks *)0x0" ( (type_descriptor "vlinks *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto code_r0x000243ce;" goto statement_identifier ;)) (goto_statement "goto LAB_00023b80;" goto statement_identifier ;) (labeled_statement "code_r0x000243ce:\n  local_68 = local_68 + local_8c * uVar54;" statement_identifier : (expression_statement "local_68 = local_68 + local_8c * uVar54;" (assignment_expression "local_68 = local_68 + local_8c * uVar54" identifier = (binary_expression "local_68 + local_8c * uVar54" identifier + (binary_expression "local_8c * uVar54" identifier * identifier))) ;)) (expression_statement "lVar25 = __udivdi3(local_68 - (int)hdr->cbSymOffset,\n                     -(uint)(local_68 < (uint)hdr->cbSymOffset) -\n                     *(int *)((int)&hdr->cbSymOffset + 4),(int)backend->external_sym_size,\n                     *(undefined4 *)((int)&backend->external_sym_size + 4));" (assignment_expression "lVar25 = __udivdi3(local_68 - (int)hdr->cbSymOffset,\n                     -(uint)(local_68 < (uint)hdr->cbSymOffset) -\n                     *(int *)((int)&hdr->cbSymOffset + 4),(int)backend->external_sym_size,\n                     *(undefined4 *)((int)&backend->external_sym_size + 4))" identifier = (call_expression "__udivdi3(local_68 - (int)hdr->cbSymOffset,\n                     -(uint)(local_68 < (uint)hdr->cbSymOffset) -\n                     *(int *)((int)&hdr->cbSymOffset + 4),(int)backend->external_sym_size,\n                     *(undefined4 *)((int)&backend->external_sym_size + 4))" identifier (argument_list "(local_68 - (int)hdr->cbSymOffset,\n                     -(uint)(local_68 < (uint)hdr->cbSymOffset) -\n                     *(int *)((int)&hdr->cbSymOffset + 4),(int)backend->external_sym_size,\n                     *(undefined4 *)((int)&backend->external_sym_size + 4))" ( (binary_expression "local_68 - (int)hdr->cbSymOffset" identifier - (cast_expression "(int)hdr->cbSymOffset" ( (type_descriptor "int" primitive_type) ) (field_expression "hdr->cbSymOffset" identifier -> field_identifier))) , (binary_expression "-(uint)(local_68 < (uint)hdr->cbSymOffset) -\n                     *(int *)((int)&hdr->cbSymOffset + 4)" (unary_expression "-(uint)(local_68 < (uint)hdr->cbSymOffset)" - (call_expression "(uint)(local_68 < (uint)hdr->cbSymOffset)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_68 < (uint)hdr->cbSymOffset)" ( (binary_expression "local_68 < (uint)hdr->cbSymOffset" identifier < (cast_expression "(uint)hdr->cbSymOffset" ( (type_descriptor "uint" type_identifier) ) (field_expression "hdr->cbSymOffset" identifier -> field_identifier))) )))) - (pointer_expression "*(int *)((int)&hdr->cbSymOffset + 4)" * (cast_expression "(int *)((int)&hdr->cbSymOffset + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&hdr->cbSymOffset + 4)" ( (binary_expression "(int)&hdr->cbSymOffset + 4" (cast_expression "(int)&hdr->cbSymOffset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&hdr->cbSymOffset" & (field_expression "hdr->cbSymOffset" identifier -> field_identifier))) + number_literal) ))))) , (cast_expression "(int)backend->external_sym_size" ( (type_descriptor "int" primitive_type) ) (field_expression "backend->external_sym_size" identifier -> field_identifier)) , (pointer_expression "*(undefined4 *)((int)&backend->external_sym_size + 4)" * (cast_expression "(undefined4 *)((int)&backend->external_sym_size + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&backend->external_sym_size + 4)" ( (binary_expression "(int)&backend->external_sym_size + 4" (cast_expression "(int)&backend->external_sym_size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&backend->external_sym_size" & (field_expression "backend->external_sym_size" identifier -> field_identifier))) + number_literal) )))) )))) ;) (labeled_statement "LAB_0002441d:\n  plVar7 = (localsym *)file_desc.first;" statement_identifier : (expression_statement "plVar7 = (localsym *)file_desc.first;" (assignment_expression "plVar7 = (localsym *)file_desc.first" identifier = (cast_expression "(localsym *)file_desc.first" ( (type_descriptor "localsym *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "file_desc.first" identifier . field_identifier))) ;)) (expression_statement "hdr->isymMax = lVar25;" (assignment_expression "hdr->isymMax = lVar25" (field_expression "hdr->isymMax" identifier -> field_identifier) = identifier) ;) (expression_statement "pcVar22 = buf + (int)hdr->cbPdOffset;" (assignment_expression "pcVar22 = buf + (int)hdr->cbPdOffset" identifier = (binary_expression "buf + (int)hdr->cbPdOffset" identifier + (cast_expression "(int)hdr->cbPdOffset" ( (type_descriptor "int" primitive_type) ) (field_expression "hdr->cbPdOffset" identifier -> field_identifier)))) ;) (expression_statement "uVar54 = (uint)backend->external_pdr_size;" (assignment_expression "uVar54 = (uint)backend->external_pdr_size" identifier = (cast_expression "(uint)backend->external_pdr_size" ( (type_descriptor "uint" type_identifier) ) (field_expression "backend->external_pdr_size" identifier -> field_identifier))) ;) (expression_statement "uVar24 = *(uint *)((int)&backend->external_pdr_size + 4);" (assignment_expression "uVar24 = *(uint *)((int)&backend->external_pdr_size + 4)" identifier = (pointer_expression "*(uint *)((int)&backend->external_pdr_size + 4)" * (cast_expression "(uint *)((int)&backend->external_pdr_size + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&backend->external_pdr_size + 4)" ( (binary_expression "(int)&backend->external_pdr_size + 4" (cast_expression "(int)&backend->external_pdr_size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&backend->external_pdr_size" & (field_expression "backend->external_pdr_size" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "p_Var13 = backend->swap_pdr_out;" (assignment_expression "p_Var13 = backend->swap_pdr_out" identifier = (field_expression "backend->swap_pdr_out" identifier -> field_identifier)) ;) (if_statement "if (plVar7 != (localsym *)0x0) {\n    uVar3 = 0;\nLAB_00024474:\n    do {\n      local_70 = plVar7;\n      local_a4 = *(page **)&local_70->addend;\n      if ((vlinks *)local_70->as_sym == (vlinks *)0x0) {\n        local_7c = (page *)(local_a4->file + file_desc.objects_last_page);\n        if (local_7c <= local_a4) break;\n      }\n      else {\n        local_7c = (page *)(local_a4->file + file_desc.objects_per_page);\n        plVar7 = (localsym *)local_70->as_sym;\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }\n      do {\n        bVar62 = true;\n        local_a4->ofile[0].ipdFirst = uVar3;\n        pvVar35 = local_a4->file[0].procs.first;\n        if (pvVar35 != (vlinks_t *)0x0) {\nLAB_000244d8:\n          do {\n            local_88 = pvVar35;\n            if (local_88->next == (vlinks *)0x0) {\n              ppVar50 = local_88->datum;\n              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xb0) * 0x44);\n              if (local_a0 <= ppVar50) break;\n            }\n            else {\n              ppVar50 = local_88->datum;\n              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xae) * 0x44);\n              pvVar35 = local_88->next;\n              if (local_a0 <= ppVar50) goto LAB_000244d8;\n            }\n            do {\n              psVar38 = (ppVar50->proc[0].sym)->as_sym;\n              vVar65 = S_GET_VALUE(psVar38);\n              paVar23 = S_GET_SEGMENT(psVar38);\n              plVar45 = (localsym_t *)((int)vVar65 + (int)paVar23->vma);\n              if (bVar62) {\n                iVar29 = 0;\n                local_a4->proc[0].sym = plVar45;\n                iVar46 = 0;\n                local_a4->sym[0].as_sym = (symbolS *)0x0;\n              }\n              else {\n                iVar29 = (int)plVar45 - local_a4->aux[0].type;\n                iVar46 = -(uint)(plVar45 < local_a4->proc[0].sym) - local_a4->dense[0].index;\n              }\n              *(int *)((int)ppVar50 + 4) = iVar29;\n              *(int *)((int)ppVar50 + 8) = iVar46;\n              uVar44 = (int)bufend - (int)pcVar22 >> 0x1f;\n              if (uVar44 < uVar24 ||\n                  uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)pcVar22) < uVar54)) {\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }\n              pPVar2 = (PDR *)((int)ppVar50 + 4);\n              ppVar50 = (page *)((int)ppVar50 + 0x44);\n              (*p_Var13)(stdoutput,pPVar2,pcVar22);\n              pcVar22 = pcVar22 + uVar54;\n              bVar62 = false;\n              uVar3 = uVar3 + 1;\n            } while (ppVar50 < local_a0);\n            pvVar35 = local_88->next;\n          } while (local_88->next != (vlinks *)0x0);\n          pvVar35 = (vlinks_t *)(uint)(ushort)(uVar3 - local_a4->ofile[0].ipdFirst);\n        }\n        local_a4->ofile[0].cpd = (short)pvVar35;\n        local_a4 = (page *)(local_a4->byte + 0x294);\n      } while (local_a4 < local_7c);\n      plVar7 = (localsym *)local_70->as_sym;\n    } while ((vlinks *)local_70->as_sym != (vlinks *)0x0);\n    plVar18 = (lineno_list_t *)file_desc.first;\n    hdr->ioptMax = 0;\n    *(undefined4 *)&hdr->cbOptOffset = 0;\n    *(undefined4 *)((int)&hdr->cbOptOffset + 4) = 0;\n    *(undefined4 *)((int)&hdr->cbAuxOffset + 4) = 0;\n    *(uint *)&hdr->cbAuxOffset = local_68;\n    bVar14 = stdoutput->xvec->byteorder;\n    bufptr_00 = (tir_ext *)(buf + local_68);\n    if (plVar18 != (lineno_list_t *)0x0) {\n      iVar29 = 0;\nLAB_00024d54:\n      do {\n        local_94 = plVar18;\n        local_a0 = (page *)local_94->proc;\n        if ((vlinks *)local_94->file == (vlinks *)0x0) {\n          local_9c = (page *)(local_a0->file + file_desc.objects_last_page);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (page *)(local_a0->file + file_desc.objects_per_page);\n          plVar18 = (lineno_list_t *)local_94->file;\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          local_a0->ofile[0].iauxBase = iVar29;\n          local_a0->ubyte[0x44] = local_a0->ubyte[0x44] & 0x7f | (bVar14 == BFD_ENDIAN_BIG) << 7;\n          ppVar36 = (proc_t *)local_a0->forward[0xb].free;\n          if (ppVar36 != (proc_t *)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppVar36;\n              paVar53 = *(aux_t **)((int)local_a8 + 8);\n              if (*(forward **)&local_a8->pdr == (forward *)0x0) {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc4);\n                if (local_ac <= paVar53) break;\n              }\n              else {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc2);\n                ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n                if (local_ac <= paVar53) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)bufend - (int)bufptr_00) < 4) {\n                  bufptr_00 = (tir_ext *)ecoff_add_bytes(local_78,local_74,(char *)bufptr_00,4);\n                }\n                iVar46 = SUB14(bVar14 == BFD_ENDIAN_BIG,0);\n                switch(paVar53->type) {\n                case aux_tir:\n                  (*backend->swap_tir_out)(iVar46,&(paVar53->data).ti,bufptr_00);\n                  break;\n                case aux_rndx:\n                  (*backend->swap_rndx_out)(iVar46,&(paVar53->data).rndx,(rndx_ext *)bufptr_00);\n                  break;\n                case aux_dnLow:\n                case aux_dnHigh:\n                case aux_isym:\n                case aux_iss:\n                case aux_width:\n                case aux_count:\n                  iVar46 = (paVar53->data).dnLow;\n                  if (bVar14 == BFD_ENDIAN_BIG) {\n                    bfd_putb32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                  else {\n                    bfd_putl32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                }\n                bufptr_00 = bufptr_00 + 1;\n                iVar29 = iVar29 + 1;\n                paVar53 = paVar53 + 1;\n              } while (paVar53 < local_ac);\n              ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n            } while (*(forward **)&local_a8->pdr != (forward *)0x0);\n            ppVar36 = (proc_t *)(iVar29 - local_a0->ofile[0].iauxBase);\n          }\n          local_a0->forward[3].ifd_ptr = (aux_t *)ppVar36;\n          local_a0 = (page *)(local_a0->byte + 0x294);\n        } while (local_a0 < local_9c);\n        plVar18 = (lineno_list_t *)local_94->file;\n      } while ((vlinks *)local_94->file != (vlinks *)0x0);\n      local_68 = local_68 + iVar29 * 4;\n    }\n    goto LAB_00024eaa;\n  }" if (parenthesized_expression "(plVar7 != (localsym *)0x0)" ( (binary_expression "plVar7 != (localsym *)0x0" identifier != (cast_expression "(localsym *)0x0" ( (type_descriptor "localsym *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar3 = 0;\nLAB_00024474:\n    do {\n      local_70 = plVar7;\n      local_a4 = *(page **)&local_70->addend;\n      if ((vlinks *)local_70->as_sym == (vlinks *)0x0) {\n        local_7c = (page *)(local_a4->file + file_desc.objects_last_page);\n        if (local_7c <= local_a4) break;\n      }\n      else {\n        local_7c = (page *)(local_a4->file + file_desc.objects_per_page);\n        plVar7 = (localsym *)local_70->as_sym;\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }\n      do {\n        bVar62 = true;\n        local_a4->ofile[0].ipdFirst = uVar3;\n        pvVar35 = local_a4->file[0].procs.first;\n        if (pvVar35 != (vlinks_t *)0x0) {\nLAB_000244d8:\n          do {\n            local_88 = pvVar35;\n            if (local_88->next == (vlinks *)0x0) {\n              ppVar50 = local_88->datum;\n              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xb0) * 0x44);\n              if (local_a0 <= ppVar50) break;\n            }\n            else {\n              ppVar50 = local_88->datum;\n              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xae) * 0x44);\n              pvVar35 = local_88->next;\n              if (local_a0 <= ppVar50) goto LAB_000244d8;\n            }\n            do {\n              psVar38 = (ppVar50->proc[0].sym)->as_sym;\n              vVar65 = S_GET_VALUE(psVar38);\n              paVar23 = S_GET_SEGMENT(psVar38);\n              plVar45 = (localsym_t *)((int)vVar65 + (int)paVar23->vma);\n              if (bVar62) {\n                iVar29 = 0;\n                local_a4->proc[0].sym = plVar45;\n                iVar46 = 0;\n                local_a4->sym[0].as_sym = (symbolS *)0x0;\n              }\n              else {\n                iVar29 = (int)plVar45 - local_a4->aux[0].type;\n                iVar46 = -(uint)(plVar45 < local_a4->proc[0].sym) - local_a4->dense[0].index;\n              }\n              *(int *)((int)ppVar50 + 4) = iVar29;\n              *(int *)((int)ppVar50 + 8) = iVar46;\n              uVar44 = (int)bufend - (int)pcVar22 >> 0x1f;\n              if (uVar44 < uVar24 ||\n                  uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)pcVar22) < uVar54)) {\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }\n              pPVar2 = (PDR *)((int)ppVar50 + 4);\n              ppVar50 = (page *)((int)ppVar50 + 0x44);\n              (*p_Var13)(stdoutput,pPVar2,pcVar22);\n              pcVar22 = pcVar22 + uVar54;\n              bVar62 = false;\n              uVar3 = uVar3 + 1;\n            } while (ppVar50 < local_a0);\n            pvVar35 = local_88->next;\n          } while (local_88->next != (vlinks *)0x0);\n          pvVar35 = (vlinks_t *)(uint)(ushort)(uVar3 - local_a4->ofile[0].ipdFirst);\n        }\n        local_a4->ofile[0].cpd = (short)pvVar35;\n        local_a4 = (page *)(local_a4->byte + 0x294);\n      } while (local_a4 < local_7c);\n      plVar7 = (localsym *)local_70->as_sym;\n    } while ((vlinks *)local_70->as_sym != (vlinks *)0x0);\n    plVar18 = (lineno_list_t *)file_desc.first;\n    hdr->ioptMax = 0;\n    *(undefined4 *)&hdr->cbOptOffset = 0;\n    *(undefined4 *)((int)&hdr->cbOptOffset + 4) = 0;\n    *(undefined4 *)((int)&hdr->cbAuxOffset + 4) = 0;\n    *(uint *)&hdr->cbAuxOffset = local_68;\n    bVar14 = stdoutput->xvec->byteorder;\n    bufptr_00 = (tir_ext *)(buf + local_68);\n    if (plVar18 != (lineno_list_t *)0x0) {\n      iVar29 = 0;\nLAB_00024d54:\n      do {\n        local_94 = plVar18;\n        local_a0 = (page *)local_94->proc;\n        if ((vlinks *)local_94->file == (vlinks *)0x0) {\n          local_9c = (page *)(local_a0->file + file_desc.objects_last_page);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (page *)(local_a0->file + file_desc.objects_per_page);\n          plVar18 = (lineno_list_t *)local_94->file;\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          local_a0->ofile[0].iauxBase = iVar29;\n          local_a0->ubyte[0x44] = local_a0->ubyte[0x44] & 0x7f | (bVar14 == BFD_ENDIAN_BIG) << 7;\n          ppVar36 = (proc_t *)local_a0->forward[0xb].free;\n          if (ppVar36 != (proc_t *)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppVar36;\n              paVar53 = *(aux_t **)((int)local_a8 + 8);\n              if (*(forward **)&local_a8->pdr == (forward *)0x0) {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc4);\n                if (local_ac <= paVar53) break;\n              }\n              else {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc2);\n                ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n                if (local_ac <= paVar53) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)bufend - (int)bufptr_00) < 4) {\n                  bufptr_00 = (tir_ext *)ecoff_add_bytes(local_78,local_74,(char *)bufptr_00,4);\n                }\n                iVar46 = SUB14(bVar14 == BFD_ENDIAN_BIG,0);\n                switch(paVar53->type) {\n                case aux_tir:\n                  (*backend->swap_tir_out)(iVar46,&(paVar53->data).ti,bufptr_00);\n                  break;\n                case aux_rndx:\n                  (*backend->swap_rndx_out)(iVar46,&(paVar53->data).rndx,(rndx_ext *)bufptr_00);\n                  break;\n                case aux_dnLow:\n                case aux_dnHigh:\n                case aux_isym:\n                case aux_iss:\n                case aux_width:\n                case aux_count:\n                  iVar46 = (paVar53->data).dnLow;\n                  if (bVar14 == BFD_ENDIAN_BIG) {\n                    bfd_putb32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                  else {\n                    bfd_putl32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                }\n                bufptr_00 = bufptr_00 + 1;\n                iVar29 = iVar29 + 1;\n                paVar53 = paVar53 + 1;\n              } while (paVar53 < local_ac);\n              ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n            } while (*(forward **)&local_a8->pdr != (forward *)0x0);\n            ppVar36 = (proc_t *)(iVar29 - local_a0->ofile[0].iauxBase);\n          }\n          local_a0->forward[3].ifd_ptr = (aux_t *)ppVar36;\n          local_a0 = (page *)(local_a0->byte + 0x294);\n        } while (local_a0 < local_9c);\n        plVar18 = (lineno_list_t *)local_94->file;\n      } while ((vlinks *)local_94->file != (vlinks *)0x0);\n      local_68 = local_68 + iVar29 * 4;\n    }\n    goto LAB_00024eaa;\n  }" { (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00024474:\n    do {\n      local_70 = plVar7;\n      local_a4 = *(page **)&local_70->addend;\n      if ((vlinks *)local_70->as_sym == (vlinks *)0x0) {\n        local_7c = (page *)(local_a4->file + file_desc.objects_last_page);\n        if (local_7c <= local_a4) break;\n      }\n      else {\n        local_7c = (page *)(local_a4->file + file_desc.objects_per_page);\n        plVar7 = (localsym *)local_70->as_sym;\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }\n      do {\n        bVar62 = true;\n        local_a4->ofile[0].ipdFirst = uVar3;\n        pvVar35 = local_a4->file[0].procs.first;\n        if (pvVar35 != (vlinks_t *)0x0) {\nLAB_000244d8:\n          do {\n            local_88 = pvVar35;\n            if (local_88->next == (vlinks *)0x0) {\n              ppVar50 = local_88->datum;\n              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xb0) * 0x44);\n              if (local_a0 <= ppVar50) break;\n            }\n            else {\n              ppVar50 = local_88->datum;\n              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xae) * 0x44);\n              pvVar35 = local_88->next;\n              if (local_a0 <= ppVar50) goto LAB_000244d8;\n            }\n            do {\n              psVar38 = (ppVar50->proc[0].sym)->as_sym;\n              vVar65 = S_GET_VALUE(psVar38);\n              paVar23 = S_GET_SEGMENT(psVar38);\n              plVar45 = (localsym_t *)((int)vVar65 + (int)paVar23->vma);\n              if (bVar62) {\n                iVar29 = 0;\n                local_a4->proc[0].sym = plVar45;\n                iVar46 = 0;\n                local_a4->sym[0].as_sym = (symbolS *)0x0;\n              }\n              else {\n                iVar29 = (int)plVar45 - local_a4->aux[0].type;\n                iVar46 = -(uint)(plVar45 < local_a4->proc[0].sym) - local_a4->dense[0].index;\n              }\n              *(int *)((int)ppVar50 + 4) = iVar29;\n              *(int *)((int)ppVar50 + 8) = iVar46;\n              uVar44 = (int)bufend - (int)pcVar22 >> 0x1f;\n              if (uVar44 < uVar24 ||\n                  uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)pcVar22) < uVar54)) {\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }\n              pPVar2 = (PDR *)((int)ppVar50 + 4);\n              ppVar50 = (page *)((int)ppVar50 + 0x44);\n              (*p_Var13)(stdoutput,pPVar2,pcVar22);\n              pcVar22 = pcVar22 + uVar54;\n              bVar62 = false;\n              uVar3 = uVar3 + 1;\n            } while (ppVar50 < local_a0);\n            pvVar35 = local_88->next;\n          } while (local_88->next != (vlinks *)0x0);\n          pvVar35 = (vlinks_t *)(uint)(ushort)(uVar3 - local_a4->ofile[0].ipdFirst);\n        }\n        local_a4->ofile[0].cpd = (short)pvVar35;\n        local_a4 = (page *)(local_a4->byte + 0x294);\n      } while (local_a4 < local_7c);\n      plVar7 = (localsym *)local_70->as_sym;\n    } while ((vlinks *)local_70->as_sym != (vlinks *)0x0);" statement_identifier : (do_statement "do {\n      local_70 = plVar7;\n      local_a4 = *(page **)&local_70->addend;\n      if ((vlinks *)local_70->as_sym == (vlinks *)0x0) {\n        local_7c = (page *)(local_a4->file + file_desc.objects_last_page);\n        if (local_7c <= local_a4) break;\n      }\n      else {\n        local_7c = (page *)(local_a4->file + file_desc.objects_per_page);\n        plVar7 = (localsym *)local_70->as_sym;\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }\n      do {\n        bVar62 = true;\n        local_a4->ofile[0].ipdFirst = uVar3;\n        pvVar35 = local_a4->file[0].procs.first;\n        if (pvVar35 != (vlinks_t *)0x0) {\nLAB_000244d8:\n          do {\n            local_88 = pvVar35;\n            if (local_88->next == (vlinks *)0x0) {\n              ppVar50 = local_88->datum;\n              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xb0) * 0x44);\n              if (local_a0 <= ppVar50) break;\n            }\n            else {\n              ppVar50 = local_88->datum;\n              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xae) * 0x44);\n              pvVar35 = local_88->next;\n              if (local_a0 <= ppVar50) goto LAB_000244d8;\n            }\n            do {\n              psVar38 = (ppVar50->proc[0].sym)->as_sym;\n              vVar65 = S_GET_VALUE(psVar38);\n              paVar23 = S_GET_SEGMENT(psVar38);\n              plVar45 = (localsym_t *)((int)vVar65 + (int)paVar23->vma);\n              if (bVar62) {\n                iVar29 = 0;\n                local_a4->proc[0].sym = plVar45;\n                iVar46 = 0;\n                local_a4->sym[0].as_sym = (symbolS *)0x0;\n              }\n              else {\n                iVar29 = (int)plVar45 - local_a4->aux[0].type;\n                iVar46 = -(uint)(plVar45 < local_a4->proc[0].sym) - local_a4->dense[0].index;\n              }\n              *(int *)((int)ppVar50 + 4) = iVar29;\n              *(int *)((int)ppVar50 + 8) = iVar46;\n              uVar44 = (int)bufend - (int)pcVar22 >> 0x1f;\n              if (uVar44 < uVar24 ||\n                  uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)pcVar22) < uVar54)) {\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }\n              pPVar2 = (PDR *)((int)ppVar50 + 4);\n              ppVar50 = (page *)((int)ppVar50 + 0x44);\n              (*p_Var13)(stdoutput,pPVar2,pcVar22);\n              pcVar22 = pcVar22 + uVar54;\n              bVar62 = false;\n              uVar3 = uVar3 + 1;\n            } while (ppVar50 < local_a0);\n            pvVar35 = local_88->next;\n          } while (local_88->next != (vlinks *)0x0);\n          pvVar35 = (vlinks_t *)(uint)(ushort)(uVar3 - local_a4->ofile[0].ipdFirst);\n        }\n        local_a4->ofile[0].cpd = (short)pvVar35;\n        local_a4 = (page *)(local_a4->byte + 0x294);\n      } while (local_a4 < local_7c);\n      plVar7 = (localsym *)local_70->as_sym;\n    } while ((vlinks *)local_70->as_sym != (vlinks *)0x0);" do (compound_statement "{\n      local_70 = plVar7;\n      local_a4 = *(page **)&local_70->addend;\n      if ((vlinks *)local_70->as_sym == (vlinks *)0x0) {\n        local_7c = (page *)(local_a4->file + file_desc.objects_last_page);\n        if (local_7c <= local_a4) break;\n      }\n      else {\n        local_7c = (page *)(local_a4->file + file_desc.objects_per_page);\n        plVar7 = (localsym *)local_70->as_sym;\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }\n      do {\n        bVar62 = true;\n        local_a4->ofile[0].ipdFirst = uVar3;\n        pvVar35 = local_a4->file[0].procs.first;\n        if (pvVar35 != (vlinks_t *)0x0) {\nLAB_000244d8:\n          do {\n            local_88 = pvVar35;\n            if (local_88->next == (vlinks *)0x0) {\n              ppVar50 = local_88->datum;\n              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xb0) * 0x44);\n              if (local_a0 <= ppVar50) break;\n            }\n            else {\n              ppVar50 = local_88->datum;\n              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xae) * 0x44);\n              pvVar35 = local_88->next;\n              if (local_a0 <= ppVar50) goto LAB_000244d8;\n            }\n            do {\n              psVar38 = (ppVar50->proc[0].sym)->as_sym;\n              vVar65 = S_GET_VALUE(psVar38);\n              paVar23 = S_GET_SEGMENT(psVar38);\n              plVar45 = (localsym_t *)((int)vVar65 + (int)paVar23->vma);\n              if (bVar62) {\n                iVar29 = 0;\n                local_a4->proc[0].sym = plVar45;\n                iVar46 = 0;\n                local_a4->sym[0].as_sym = (symbolS *)0x0;\n              }\n              else {\n                iVar29 = (int)plVar45 - local_a4->aux[0].type;\n                iVar46 = -(uint)(plVar45 < local_a4->proc[0].sym) - local_a4->dense[0].index;\n              }\n              *(int *)((int)ppVar50 + 4) = iVar29;\n              *(int *)((int)ppVar50 + 8) = iVar46;\n              uVar44 = (int)bufend - (int)pcVar22 >> 0x1f;\n              if (uVar44 < uVar24 ||\n                  uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)pcVar22) < uVar54)) {\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }\n              pPVar2 = (PDR *)((int)ppVar50 + 4);\n              ppVar50 = (page *)((int)ppVar50 + 0x44);\n              (*p_Var13)(stdoutput,pPVar2,pcVar22);\n              pcVar22 = pcVar22 + uVar54;\n              bVar62 = false;\n              uVar3 = uVar3 + 1;\n            } while (ppVar50 < local_a0);\n            pvVar35 = local_88->next;\n          } while (local_88->next != (vlinks *)0x0);\n          pvVar35 = (vlinks_t *)(uint)(ushort)(uVar3 - local_a4->ofile[0].ipdFirst);\n        }\n        local_a4->ofile[0].cpd = (short)pvVar35;\n        local_a4 = (page *)(local_a4->byte + 0x294);\n      } while (local_a4 < local_7c);\n      plVar7 = (localsym *)local_70->as_sym;\n    }" { (expression_statement "local_70 = plVar7;" (assignment_expression "local_70 = plVar7" identifier = identifier) ;) (expression_statement "local_a4 = *(page **)&local_70->addend;" (assignment_expression "local_a4 = *(page **)&local_70->addend" identifier = (pointer_expression "*(page **)&local_70->addend" * (cast_expression "(page **)&local_70->addend" ( (type_descriptor "page **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_70->addend" & (field_expression "local_70->addend" identifier -> field_identifier))))) ;) (if_statement "if ((vlinks *)local_70->as_sym == (vlinks *)0x0) {\n        local_7c = (page *)(local_a4->file + file_desc.objects_last_page);\n        if (local_7c <= local_a4) break;\n      }\n      else {\n        local_7c = (page *)(local_a4->file + file_desc.objects_per_page);\n        plVar7 = (localsym *)local_70->as_sym;\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }" if (parenthesized_expression "((vlinks *)local_70->as_sym == (vlinks *)0x0)" ( (binary_expression "(vlinks *)local_70->as_sym == (vlinks *)0x0" (cast_expression "(vlinks *)local_70->as_sym" ( (type_descriptor "vlinks *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_70->as_sym" identifier -> field_identifier)) == (cast_expression "(vlinks *)0x0" ( (type_descriptor "vlinks *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_7c = (page *)(local_a4->file + file_desc.objects_last_page);\n        if (local_7c <= local_a4) break;\n      }" { (expression_statement "local_7c = (page *)(local_a4->file + file_desc.objects_last_page);" (assignment_expression "local_7c = (page *)(local_a4->file + file_desc.objects_last_page)" identifier = (cast_expression "(page *)(local_a4->file + file_desc.objects_last_page)" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a4->file + file_desc.objects_last_page)" ( (binary_expression "local_a4->file + file_desc.objects_last_page" (field_expression "local_a4->file" identifier -> field_identifier) + (field_expression "file_desc.objects_last_page" identifier . field_identifier)) )))) ;) (if_statement "if (local_7c <= local_a4) break;" if (parenthesized_expression "(local_7c <= local_a4)" ( (binary_expression "local_7c <= local_a4" identifier <= identifier) )) (break_statement "break;" break ;)) }) (else_clause "else {\n        local_7c = (page *)(local_a4->file + file_desc.objects_per_page);\n        plVar7 = (localsym *)local_70->as_sym;\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }" else (compound_statement "{\n        local_7c = (page *)(local_a4->file + file_desc.objects_per_page);\n        plVar7 = (localsym *)local_70->as_sym;\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }" { (expression_statement "local_7c = (page *)(local_a4->file + file_desc.objects_per_page);" (assignment_expression "local_7c = (page *)(local_a4->file + file_desc.objects_per_page)" identifier = (cast_expression "(page *)(local_a4->file + file_desc.objects_per_page)" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a4->file + file_desc.objects_per_page)" ( (binary_expression "local_a4->file + file_desc.objects_per_page" (field_expression "local_a4->file" identifier -> field_identifier) + (field_expression "file_desc.objects_per_page" identifier . field_identifier)) )))) ;) (expression_statement "plVar7 = (localsym *)local_70->as_sym;" (assignment_expression "plVar7 = (localsym *)local_70->as_sym" identifier = (cast_expression "(localsym *)local_70->as_sym" ( (type_descriptor "localsym *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_70->as_sym" identifier -> field_identifier))) ;) (if_statement "if (local_7c <= local_a4) goto LAB_00024474;" if (parenthesized_expression "(local_7c <= local_a4)" ( (binary_expression "local_7c <= local_a4" identifier <= identifier) )) (goto_statement "goto LAB_00024474;" goto statement_identifier ;)) }))) (do_statement "do {\n        bVar62 = true;\n        local_a4->ofile[0].ipdFirst = uVar3;\n        pvVar35 = local_a4->file[0].procs.first;\n        if (pvVar35 != (vlinks_t *)0x0) {\nLAB_000244d8:\n          do {\n            local_88 = pvVar35;\n            if (local_88->next == (vlinks *)0x0) {\n              ppVar50 = local_88->datum;\n              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xb0) * 0x44);\n              if (local_a0 <= ppVar50) break;\n            }\n            else {\n              ppVar50 = local_88->datum;\n              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xae) * 0x44);\n              pvVar35 = local_88->next;\n              if (local_a0 <= ppVar50) goto LAB_000244d8;\n            }\n            do {\n              psVar38 = (ppVar50->proc[0].sym)->as_sym;\n              vVar65 = S_GET_VALUE(psVar38);\n              paVar23 = S_GET_SEGMENT(psVar38);\n              plVar45 = (localsym_t *)((int)vVar65 + (int)paVar23->vma);\n              if (bVar62) {\n                iVar29 = 0;\n                local_a4->proc[0].sym = plVar45;\n                iVar46 = 0;\n                local_a4->sym[0].as_sym = (symbolS *)0x0;\n              }\n              else {\n                iVar29 = (int)plVar45 - local_a4->aux[0].type;\n                iVar46 = -(uint)(plVar45 < local_a4->proc[0].sym) - local_a4->dense[0].index;\n              }\n              *(int *)((int)ppVar50 + 4) = iVar29;\n              *(int *)((int)ppVar50 + 8) = iVar46;\n              uVar44 = (int)bufend - (int)pcVar22 >> 0x1f;\n              if (uVar44 < uVar24 ||\n                  uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)pcVar22) < uVar54)) {\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }\n              pPVar2 = (PDR *)((int)ppVar50 + 4);\n              ppVar50 = (page *)((int)ppVar50 + 0x44);\n              (*p_Var13)(stdoutput,pPVar2,pcVar22);\n              pcVar22 = pcVar22 + uVar54;\n              bVar62 = false;\n              uVar3 = uVar3 + 1;\n            } while (ppVar50 < local_a0);\n            pvVar35 = local_88->next;\n          } while (local_88->next != (vlinks *)0x0);\n          pvVar35 = (vlinks_t *)(uint)(ushort)(uVar3 - local_a4->ofile[0].ipdFirst);\n        }\n        local_a4->ofile[0].cpd = (short)pvVar35;\n        local_a4 = (page *)(local_a4->byte + 0x294);\n      } while (local_a4 < local_7c);" do (compound_statement "{\n        bVar62 = true;\n        local_a4->ofile[0].ipdFirst = uVar3;\n        pvVar35 = local_a4->file[0].procs.first;\n        if (pvVar35 != (vlinks_t *)0x0) {\nLAB_000244d8:\n          do {\n            local_88 = pvVar35;\n            if (local_88->next == (vlinks *)0x0) {\n              ppVar50 = local_88->datum;\n              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xb0) * 0x44);\n              if (local_a0 <= ppVar50) break;\n            }\n            else {\n              ppVar50 = local_88->datum;\n              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xae) * 0x44);\n              pvVar35 = local_88->next;\n              if (local_a0 <= ppVar50) goto LAB_000244d8;\n            }\n            do {\n              psVar38 = (ppVar50->proc[0].sym)->as_sym;\n              vVar65 = S_GET_VALUE(psVar38);\n              paVar23 = S_GET_SEGMENT(psVar38);\n              plVar45 = (localsym_t *)((int)vVar65 + (int)paVar23->vma);\n              if (bVar62) {\n                iVar29 = 0;\n                local_a4->proc[0].sym = plVar45;\n                iVar46 = 0;\n                local_a4->sym[0].as_sym = (symbolS *)0x0;\n              }\n              else {\n                iVar29 = (int)plVar45 - local_a4->aux[0].type;\n                iVar46 = -(uint)(plVar45 < local_a4->proc[0].sym) - local_a4->dense[0].index;\n              }\n              *(int *)((int)ppVar50 + 4) = iVar29;\n              *(int *)((int)ppVar50 + 8) = iVar46;\n              uVar44 = (int)bufend - (int)pcVar22 >> 0x1f;\n              if (uVar44 < uVar24 ||\n                  uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)pcVar22) < uVar54)) {\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }\n              pPVar2 = (PDR *)((int)ppVar50 + 4);\n              ppVar50 = (page *)((int)ppVar50 + 0x44);\n              (*p_Var13)(stdoutput,pPVar2,pcVar22);\n              pcVar22 = pcVar22 + uVar54;\n              bVar62 = false;\n              uVar3 = uVar3 + 1;\n            } while (ppVar50 < local_a0);\n            pvVar35 = local_88->next;\n          } while (local_88->next != (vlinks *)0x0);\n          pvVar35 = (vlinks_t *)(uint)(ushort)(uVar3 - local_a4->ofile[0].ipdFirst);\n        }\n        local_a4->ofile[0].cpd = (short)pvVar35;\n        local_a4 = (page *)(local_a4->byte + 0x294);\n      }" { (expression_statement "bVar62 = true;" (assignment_expression "bVar62 = true" identifier = true) ;) (expression_statement "local_a4->ofile[0].ipdFirst = uVar3;" (assignment_expression "local_a4->ofile[0].ipdFirst = uVar3" (field_expression "local_a4->ofile[0].ipdFirst" (subscript_expression "local_a4->ofile[0]" (field_expression "local_a4->ofile" identifier -> field_identifier) [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "pvVar35 = local_a4->file[0].procs.first;" (assignment_expression "pvVar35 = local_a4->file[0].procs.first" identifier = (field_expression "local_a4->file[0].procs.first" (field_expression "local_a4->file[0].procs" (subscript_expression "local_a4->file[0]" (field_expression "local_a4->file" identifier -> field_identifier) [ number_literal ]) . field_identifier) . field_identifier)) ;) (if_statement "if (pvVar35 != (vlinks_t *)0x0) {\nLAB_000244d8:\n          do {\n            local_88 = pvVar35;\n            if (local_88->next == (vlinks *)0x0) {\n              ppVar50 = local_88->datum;\n              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xb0) * 0x44);\n              if (local_a0 <= ppVar50) break;\n            }\n            else {\n              ppVar50 = local_88->datum;\n              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xae) * 0x44);\n              pvVar35 = local_88->next;\n              if (local_a0 <= ppVar50) goto LAB_000244d8;\n            }\n            do {\n              psVar38 = (ppVar50->proc[0].sym)->as_sym;\n              vVar65 = S_GET_VALUE(psVar38);\n              paVar23 = S_GET_SEGMENT(psVar38);\n              plVar45 = (localsym_t *)((int)vVar65 + (int)paVar23->vma);\n              if (bVar62) {\n                iVar29 = 0;\n                local_a4->proc[0].sym = plVar45;\n                iVar46 = 0;\n                local_a4->sym[0].as_sym = (symbolS *)0x0;\n              }\n              else {\n                iVar29 = (int)plVar45 - local_a4->aux[0].type;\n                iVar46 = -(uint)(plVar45 < local_a4->proc[0].sym) - local_a4->dense[0].index;\n              }\n              *(int *)((int)ppVar50 + 4) = iVar29;\n              *(int *)((int)ppVar50 + 8) = iVar46;\n              uVar44 = (int)bufend - (int)pcVar22 >> 0x1f;\n              if (uVar44 < uVar24 ||\n                  uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)pcVar22) < uVar54)) {\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }\n              pPVar2 = (PDR *)((int)ppVar50 + 4);\n              ppVar50 = (page *)((int)ppVar50 + 0x44);\n              (*p_Var13)(stdoutput,pPVar2,pcVar22);\n              pcVar22 = pcVar22 + uVar54;\n              bVar62 = false;\n              uVar3 = uVar3 + 1;\n            } while (ppVar50 < local_a0);\n            pvVar35 = local_88->next;\n          } while (local_88->next != (vlinks *)0x0);\n          pvVar35 = (vlinks_t *)(uint)(ushort)(uVar3 - local_a4->ofile[0].ipdFirst);\n        }" if (parenthesized_expression "(pvVar35 != (vlinks_t *)0x0)" ( (binary_expression "pvVar35 != (vlinks_t *)0x0" identifier != (cast_expression "(vlinks_t *)0x0" ( (type_descriptor "vlinks_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000244d8:\n          do {\n            local_88 = pvVar35;\n            if (local_88->next == (vlinks *)0x0) {\n              ppVar50 = local_88->datum;\n              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xb0) * 0x44);\n              if (local_a0 <= ppVar50) break;\n            }\n            else {\n              ppVar50 = local_88->datum;\n              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xae) * 0x44);\n              pvVar35 = local_88->next;\n              if (local_a0 <= ppVar50) goto LAB_000244d8;\n            }\n            do {\n              psVar38 = (ppVar50->proc[0].sym)->as_sym;\n              vVar65 = S_GET_VALUE(psVar38);\n              paVar23 = S_GET_SEGMENT(psVar38);\n              plVar45 = (localsym_t *)((int)vVar65 + (int)paVar23->vma);\n              if (bVar62) {\n                iVar29 = 0;\n                local_a4->proc[0].sym = plVar45;\n                iVar46 = 0;\n                local_a4->sym[0].as_sym = (symbolS *)0x0;\n              }\n              else {\n                iVar29 = (int)plVar45 - local_a4->aux[0].type;\n                iVar46 = -(uint)(plVar45 < local_a4->proc[0].sym) - local_a4->dense[0].index;\n              }\n              *(int *)((int)ppVar50 + 4) = iVar29;\n              *(int *)((int)ppVar50 + 8) = iVar46;\n              uVar44 = (int)bufend - (int)pcVar22 >> 0x1f;\n              if (uVar44 < uVar24 ||\n                  uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)pcVar22) < uVar54)) {\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }\n              pPVar2 = (PDR *)((int)ppVar50 + 4);\n              ppVar50 = (page *)((int)ppVar50 + 0x44);\n              (*p_Var13)(stdoutput,pPVar2,pcVar22);\n              pcVar22 = pcVar22 + uVar54;\n              bVar62 = false;\n              uVar3 = uVar3 + 1;\n            } while (ppVar50 < local_a0);\n            pvVar35 = local_88->next;\n          } while (local_88->next != (vlinks *)0x0);\n          pvVar35 = (vlinks_t *)(uint)(ushort)(uVar3 - local_a4->ofile[0].ipdFirst);\n        }" { (labeled_statement "LAB_000244d8:\n          do {\n            local_88 = pvVar35;\n            if (local_88->next == (vlinks *)0x0) {\n              ppVar50 = local_88->datum;\n              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xb0) * 0x44);\n              if (local_a0 <= ppVar50) break;\n            }\n            else {\n              ppVar50 = local_88->datum;\n              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xae) * 0x44);\n              pvVar35 = local_88->next;\n              if (local_a0 <= ppVar50) goto LAB_000244d8;\n            }\n            do {\n              psVar38 = (ppVar50->proc[0].sym)->as_sym;\n              vVar65 = S_GET_VALUE(psVar38);\n              paVar23 = S_GET_SEGMENT(psVar38);\n              plVar45 = (localsym_t *)((int)vVar65 + (int)paVar23->vma);\n              if (bVar62) {\n                iVar29 = 0;\n                local_a4->proc[0].sym = plVar45;\n                iVar46 = 0;\n                local_a4->sym[0].as_sym = (symbolS *)0x0;\n              }\n              else {\n                iVar29 = (int)plVar45 - local_a4->aux[0].type;\n                iVar46 = -(uint)(plVar45 < local_a4->proc[0].sym) - local_a4->dense[0].index;\n              }\n              *(int *)((int)ppVar50 + 4) = iVar29;\n              *(int *)((int)ppVar50 + 8) = iVar46;\n              uVar44 = (int)bufend - (int)pcVar22 >> 0x1f;\n              if (uVar44 < uVar24 ||\n                  uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)pcVar22) < uVar54)) {\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }\n              pPVar2 = (PDR *)((int)ppVar50 + 4);\n              ppVar50 = (page *)((int)ppVar50 + 0x44);\n              (*p_Var13)(stdoutput,pPVar2,pcVar22);\n              pcVar22 = pcVar22 + uVar54;\n              bVar62 = false;\n              uVar3 = uVar3 + 1;\n            } while (ppVar50 < local_a0);\n            pvVar35 = local_88->next;\n          } while (local_88->next != (vlinks *)0x0);" statement_identifier : (do_statement "do {\n            local_88 = pvVar35;\n            if (local_88->next == (vlinks *)0x0) {\n              ppVar50 = local_88->datum;\n              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xb0) * 0x44);\n              if (local_a0 <= ppVar50) break;\n            }\n            else {\n              ppVar50 = local_88->datum;\n              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xae) * 0x44);\n              pvVar35 = local_88->next;\n              if (local_a0 <= ppVar50) goto LAB_000244d8;\n            }\n            do {\n              psVar38 = (ppVar50->proc[0].sym)->as_sym;\n              vVar65 = S_GET_VALUE(psVar38);\n              paVar23 = S_GET_SEGMENT(psVar38);\n              plVar45 = (localsym_t *)((int)vVar65 + (int)paVar23->vma);\n              if (bVar62) {\n                iVar29 = 0;\n                local_a4->proc[0].sym = plVar45;\n                iVar46 = 0;\n                local_a4->sym[0].as_sym = (symbolS *)0x0;\n              }\n              else {\n                iVar29 = (int)plVar45 - local_a4->aux[0].type;\n                iVar46 = -(uint)(plVar45 < local_a4->proc[0].sym) - local_a4->dense[0].index;\n              }\n              *(int *)((int)ppVar50 + 4) = iVar29;\n              *(int *)((int)ppVar50 + 8) = iVar46;\n              uVar44 = (int)bufend - (int)pcVar22 >> 0x1f;\n              if (uVar44 < uVar24 ||\n                  uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)pcVar22) < uVar54)) {\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }\n              pPVar2 = (PDR *)((int)ppVar50 + 4);\n              ppVar50 = (page *)((int)ppVar50 + 0x44);\n              (*p_Var13)(stdoutput,pPVar2,pcVar22);\n              pcVar22 = pcVar22 + uVar54;\n              bVar62 = false;\n              uVar3 = uVar3 + 1;\n            } while (ppVar50 < local_a0);\n            pvVar35 = local_88->next;\n          } while (local_88->next != (vlinks *)0x0);" do (compound_statement "{\n            local_88 = pvVar35;\n            if (local_88->next == (vlinks *)0x0) {\n              ppVar50 = local_88->datum;\n              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xb0) * 0x44);\n              if (local_a0 <= ppVar50) break;\n            }\n            else {\n              ppVar50 = local_88->datum;\n              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xae) * 0x44);\n              pvVar35 = local_88->next;\n              if (local_a0 <= ppVar50) goto LAB_000244d8;\n            }\n            do {\n              psVar38 = (ppVar50->proc[0].sym)->as_sym;\n              vVar65 = S_GET_VALUE(psVar38);\n              paVar23 = S_GET_SEGMENT(psVar38);\n              plVar45 = (localsym_t *)((int)vVar65 + (int)paVar23->vma);\n              if (bVar62) {\n                iVar29 = 0;\n                local_a4->proc[0].sym = plVar45;\n                iVar46 = 0;\n                local_a4->sym[0].as_sym = (symbolS *)0x0;\n              }\n              else {\n                iVar29 = (int)plVar45 - local_a4->aux[0].type;\n                iVar46 = -(uint)(plVar45 < local_a4->proc[0].sym) - local_a4->dense[0].index;\n              }\n              *(int *)((int)ppVar50 + 4) = iVar29;\n              *(int *)((int)ppVar50 + 8) = iVar46;\n              uVar44 = (int)bufend - (int)pcVar22 >> 0x1f;\n              if (uVar44 < uVar24 ||\n                  uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)pcVar22) < uVar54)) {\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }\n              pPVar2 = (PDR *)((int)ppVar50 + 4);\n              ppVar50 = (page *)((int)ppVar50 + 0x44);\n              (*p_Var13)(stdoutput,pPVar2,pcVar22);\n              pcVar22 = pcVar22 + uVar54;\n              bVar62 = false;\n              uVar3 = uVar3 + 1;\n            } while (ppVar50 < local_a0);\n            pvVar35 = local_88->next;\n          }" { (expression_statement "local_88 = pvVar35;" (assignment_expression "local_88 = pvVar35" identifier = identifier) ;) (if_statement "if (local_88->next == (vlinks *)0x0) {\n              ppVar50 = local_88->datum;\n              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xb0) * 0x44);\n              if (local_a0 <= ppVar50) break;\n            }\n            else {\n              ppVar50 = local_88->datum;\n              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xae) * 0x44);\n              pvVar35 = local_88->next;\n              if (local_a0 <= ppVar50) goto LAB_000244d8;\n            }" if (parenthesized_expression "(local_88->next == (vlinks *)0x0)" ( (binary_expression "local_88->next == (vlinks *)0x0" (field_expression "local_88->next" identifier -> field_identifier) == (cast_expression "(vlinks *)0x0" ( (type_descriptor "vlinks *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              ppVar50 = local_88->datum;\n              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xb0) * 0x44);\n              if (local_a0 <= ppVar50) break;\n            }" { (expression_statement "ppVar50 = local_88->datum;" (assignment_expression "ppVar50 = local_88->datum" identifier = (field_expression "local_88->datum" identifier -> field_identifier)) ;) (expression_statement "local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xb0) * 0x44);" (assignment_expression "local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xb0) * 0x44)" identifier = (cast_expression "(page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xb0) * 0x44)" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xb0) * 0x44)" ( (binary_expression "(int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xb0) * 0x44" (cast_expression "(int)ppVar50" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)*(ushort *)(local_a4->byte + 0xb0) * 0x44" (binary_expression "(uint)*(ushort *)(local_a4->byte + 0xb0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(local_a4->byte + 0xb0)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a4->byte + 0xb0)" ( (binary_expression "local_a4->byte + 0xb0" (field_expression "local_a4->byte" identifier -> field_identifier) + number_literal) )))) * number_literal)) )))) ;) (if_statement "if (local_a0 <= ppVar50) break;" if (parenthesized_expression "(local_a0 <= ppVar50)" ( (binary_expression "local_a0 <= ppVar50" identifier <= identifier) )) (break_statement "break;" break ;)) }) (else_clause "else {\n              ppVar50 = local_88->datum;\n              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xae) * 0x44);\n              pvVar35 = local_88->next;\n              if (local_a0 <= ppVar50) goto LAB_000244d8;\n            }" else (compound_statement "{\n              ppVar50 = local_88->datum;\n              local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xae) * 0x44);\n              pvVar35 = local_88->next;\n              if (local_a0 <= ppVar50) goto LAB_000244d8;\n            }" { (expression_statement "ppVar50 = local_88->datum;" (assignment_expression "ppVar50 = local_88->datum" identifier = (field_expression "local_88->datum" identifier -> field_identifier)) ;) (expression_statement "local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xae) * 0x44);" (assignment_expression "local_a0 = (page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xae) * 0x44)" identifier = (cast_expression "(page *)((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xae) * 0x44)" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xae) * 0x44)" ( (binary_expression "(int)ppVar50 + (uint)*(ushort *)(local_a4->byte + 0xae) * 0x44" (cast_expression "(int)ppVar50" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)*(ushort *)(local_a4->byte + 0xae) * 0x44" (binary_expression "(uint)*(ushort *)(local_a4->byte + 0xae)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(local_a4->byte + 0xae)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a4->byte + 0xae)" ( (binary_expression "local_a4->byte + 0xae" (field_expression "local_a4->byte" identifier -> field_identifier) + number_literal) )))) * number_literal)) )))) ;) (expression_statement "pvVar35 = local_88->next;" (assignment_expression "pvVar35 = local_88->next" identifier = (field_expression "local_88->next" identifier -> field_identifier)) ;) (if_statement "if (local_a0 <= ppVar50) goto LAB_000244d8;" if (parenthesized_expression "(local_a0 <= ppVar50)" ( (binary_expression "local_a0 <= ppVar50" identifier <= identifier) )) (goto_statement "goto LAB_000244d8;" goto statement_identifier ;)) }))) (do_statement "do {\n              psVar38 = (ppVar50->proc[0].sym)->as_sym;\n              vVar65 = S_GET_VALUE(psVar38);\n              paVar23 = S_GET_SEGMENT(psVar38);\n              plVar45 = (localsym_t *)((int)vVar65 + (int)paVar23->vma);\n              if (bVar62) {\n                iVar29 = 0;\n                local_a4->proc[0].sym = plVar45;\n                iVar46 = 0;\n                local_a4->sym[0].as_sym = (symbolS *)0x0;\n              }\n              else {\n                iVar29 = (int)plVar45 - local_a4->aux[0].type;\n                iVar46 = -(uint)(plVar45 < local_a4->proc[0].sym) - local_a4->dense[0].index;\n              }\n              *(int *)((int)ppVar50 + 4) = iVar29;\n              *(int *)((int)ppVar50 + 8) = iVar46;\n              uVar44 = (int)bufend - (int)pcVar22 >> 0x1f;\n              if (uVar44 < uVar24 ||\n                  uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)pcVar22) < uVar54)) {\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }\n              pPVar2 = (PDR *)((int)ppVar50 + 4);\n              ppVar50 = (page *)((int)ppVar50 + 0x44);\n              (*p_Var13)(stdoutput,pPVar2,pcVar22);\n              pcVar22 = pcVar22 + uVar54;\n              bVar62 = false;\n              uVar3 = uVar3 + 1;\n            } while (ppVar50 < local_a0);" do (compound_statement "{\n              psVar38 = (ppVar50->proc[0].sym)->as_sym;\n              vVar65 = S_GET_VALUE(psVar38);\n              paVar23 = S_GET_SEGMENT(psVar38);\n              plVar45 = (localsym_t *)((int)vVar65 + (int)paVar23->vma);\n              if (bVar62) {\n                iVar29 = 0;\n                local_a4->proc[0].sym = plVar45;\n                iVar46 = 0;\n                local_a4->sym[0].as_sym = (symbolS *)0x0;\n              }\n              else {\n                iVar29 = (int)plVar45 - local_a4->aux[0].type;\n                iVar46 = -(uint)(plVar45 < local_a4->proc[0].sym) - local_a4->dense[0].index;\n              }\n              *(int *)((int)ppVar50 + 4) = iVar29;\n              *(int *)((int)ppVar50 + 8) = iVar46;\n              uVar44 = (int)bufend - (int)pcVar22 >> 0x1f;\n              if (uVar44 < uVar24 ||\n                  uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)pcVar22) < uVar54)) {\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }\n              pPVar2 = (PDR *)((int)ppVar50 + 4);\n              ppVar50 = (page *)((int)ppVar50 + 0x44);\n              (*p_Var13)(stdoutput,pPVar2,pcVar22);\n              pcVar22 = pcVar22 + uVar54;\n              bVar62 = false;\n              uVar3 = uVar3 + 1;\n            }" { (expression_statement "psVar38 = (ppVar50->proc[0].sym)->as_sym;" (assignment_expression "psVar38 = (ppVar50->proc[0].sym)->as_sym" identifier = (field_expression "(ppVar50->proc[0].sym)->as_sym" (parenthesized_expression "(ppVar50->proc[0].sym)" ( (field_expression "ppVar50->proc[0].sym" (subscript_expression "ppVar50->proc[0]" (field_expression "ppVar50->proc" identifier -> field_identifier) [ number_literal ]) . field_identifier) )) -> field_identifier)) ;) (expression_statement "vVar65 = S_GET_VALUE(psVar38);" (assignment_expression "vVar65 = S_GET_VALUE(psVar38)" identifier = (call_expression "S_GET_VALUE(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) ;) (expression_statement "paVar23 = S_GET_SEGMENT(psVar38);" (assignment_expression "paVar23 = S_GET_SEGMENT(psVar38)" identifier = (call_expression "S_GET_SEGMENT(psVar38)" identifier (argument_list "(psVar38)" ( identifier )))) ;) (expression_statement "plVar45 = (localsym_t *)((int)vVar65 + (int)paVar23->vma);" (assignment_expression "plVar45 = (localsym_t *)((int)vVar65 + (int)paVar23->vma)" identifier = (cast_expression "(localsym_t *)((int)vVar65 + (int)paVar23->vma)" ( (type_descriptor "localsym_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)vVar65 + (int)paVar23->vma)" ( (binary_expression "(int)vVar65 + (int)paVar23->vma" (cast_expression "(int)vVar65" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)paVar23->vma" ( (type_descriptor "int" primitive_type) ) (field_expression "paVar23->vma" identifier -> field_identifier))) )))) ;) (if_statement "if (bVar62) {\n                iVar29 = 0;\n                local_a4->proc[0].sym = plVar45;\n                iVar46 = 0;\n                local_a4->sym[0].as_sym = (symbolS *)0x0;\n              }\n              else {\n                iVar29 = (int)plVar45 - local_a4->aux[0].type;\n                iVar46 = -(uint)(plVar45 < local_a4->proc[0].sym) - local_a4->dense[0].index;\n              }" if (parenthesized_expression "(bVar62)" ( identifier )) (compound_statement "{\n                iVar29 = 0;\n                local_a4->proc[0].sym = plVar45;\n                iVar46 = 0;\n                local_a4->sym[0].as_sym = (symbolS *)0x0;\n              }" { (expression_statement "iVar29 = 0;" (assignment_expression "iVar29 = 0" identifier = number_literal) ;) (expression_statement "local_a4->proc[0].sym = plVar45;" (assignment_expression "local_a4->proc[0].sym = plVar45" (field_expression "local_a4->proc[0].sym" (subscript_expression "local_a4->proc[0]" (field_expression "local_a4->proc" identifier -> field_identifier) [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "iVar46 = 0;" (assignment_expression "iVar46 = 0" identifier = number_literal) ;) (expression_statement "local_a4->sym[0].as_sym = (symbolS *)0x0;" (assignment_expression "local_a4->sym[0].as_sym = (symbolS *)0x0" (field_expression "local_a4->sym[0].as_sym" (subscript_expression "local_a4->sym[0]" (field_expression "local_a4->sym" identifier -> field_identifier) [ number_literal ]) . field_identifier) = (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n                iVar29 = (int)plVar45 - local_a4->aux[0].type;\n                iVar46 = -(uint)(plVar45 < local_a4->proc[0].sym) - local_a4->dense[0].index;\n              }" else (compound_statement "{\n                iVar29 = (int)plVar45 - local_a4->aux[0].type;\n                iVar46 = -(uint)(plVar45 < local_a4->proc[0].sym) - local_a4->dense[0].index;\n              }" { (expression_statement "iVar29 = (int)plVar45 - local_a4->aux[0].type;" (assignment_expression "iVar29 = (int)plVar45 - local_a4->aux[0].type" identifier = (binary_expression "(int)plVar45 - local_a4->aux[0].type" (cast_expression "(int)plVar45" ( (type_descriptor "int" primitive_type) ) identifier) - (field_expression "local_a4->aux[0].type" (subscript_expression "local_a4->aux[0]" (field_expression "local_a4->aux" identifier -> field_identifier) [ number_literal ]) . field_identifier))) ;) (expression_statement "iVar46 = -(uint)(plVar45 < local_a4->proc[0].sym) - local_a4->dense[0].index;" (assignment_expression "iVar46 = -(uint)(plVar45 < local_a4->proc[0].sym) - local_a4->dense[0].index" identifier = (binary_expression "-(uint)(plVar45 < local_a4->proc[0].sym) - local_a4->dense[0].index" (unary_expression "-(uint)(plVar45 < local_a4->proc[0].sym)" - (call_expression "(uint)(plVar45 < local_a4->proc[0].sym)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(plVar45 < local_a4->proc[0].sym)" ( (binary_expression "plVar45 < local_a4->proc[0].sym" identifier < (field_expression "local_a4->proc[0].sym" (subscript_expression "local_a4->proc[0]" (field_expression "local_a4->proc" identifier -> field_identifier) [ number_literal ]) . field_identifier)) )))) - (field_expression "local_a4->dense[0].index" (subscript_expression "local_a4->dense[0]" (field_expression "local_a4->dense" identifier -> field_identifier) [ number_literal ]) . field_identifier))) ;) }))) (expression_statement "*(int *)((int)ppVar50 + 4) = iVar29;" (assignment_expression "*(int *)((int)ppVar50 + 4) = iVar29" (pointer_expression "*(int *)((int)ppVar50 + 4)" * (cast_expression "(int *)((int)ppVar50 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppVar50 + 4)" ( (binary_expression "(int)ppVar50 + 4" (cast_expression "(int)ppVar50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)ppVar50 + 8) = iVar46;" (assignment_expression "*(int *)((int)ppVar50 + 8) = iVar46" (pointer_expression "*(int *)((int)ppVar50 + 8)" * (cast_expression "(int *)((int)ppVar50 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppVar50 + 8)" ( (binary_expression "(int)ppVar50 + 8" (cast_expression "(int)ppVar50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "uVar44 = (int)bufend - (int)pcVar22 >> 0x1f;" (assignment_expression "uVar44 = (int)bufend - (int)pcVar22 >> 0x1f" identifier = (binary_expression "(int)bufend - (int)pcVar22 >> 0x1f" (binary_expression "(int)bufend - (int)pcVar22" (cast_expression "(int)bufend" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar22" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (if_statement "if (uVar44 < uVar24 ||\n                  uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)pcVar22) < uVar54)) {\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }" if (parenthesized_expression "(uVar44 < uVar24 ||\n                  uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)pcVar22) < uVar54))" ( (binary_expression "uVar44 < uVar24 ||\n                  uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)pcVar22) < uVar54)" (binary_expression "uVar44 < uVar24" identifier < identifier) || (binary_expression "uVar44 - uVar24 < (uint)((uint)((int)bufend - (int)pcVar22) < uVar54)" (binary_expression "uVar44 - uVar24" identifier - identifier) < (call_expression "(uint)((uint)((int)bufend - (int)pcVar22) < uVar54)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)((int)bufend - (int)pcVar22) < uVar54)" ( (binary_expression "(uint)((int)bufend - (int)pcVar22) < uVar54" (call_expression "(uint)((int)bufend - (int)pcVar22)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)bufend - (int)pcVar22)" ( (binary_expression "(int)bufend - (int)pcVar22" (cast_expression "(int)bufend" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar22" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < identifier) ))))) )) (compound_statement "{\n                pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);\n              }" { (expression_statement "pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54);" (assignment_expression "pcVar22 = ecoff_add_bytes(local_78,local_74,pcVar22,uVar54)" identifier = (call_expression "ecoff_add_bytes(local_78,local_74,pcVar22,uVar54)" identifier (argument_list "(local_78,local_74,pcVar22,uVar54)" ( identifier , identifier , identifier , identifier )))) ;) })) (expression_statement "pPVar2 = (PDR *)((int)ppVar50 + 4);" (assignment_expression "pPVar2 = (PDR *)((int)ppVar50 + 4)" identifier = (cast_expression "(PDR *)((int)ppVar50 + 4)" ( (type_descriptor "PDR *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppVar50 + 4)" ( (binary_expression "(int)ppVar50 + 4" (cast_expression "(int)ppVar50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "ppVar50 = (page *)((int)ppVar50 + 0x44);" (assignment_expression "ppVar50 = (page *)((int)ppVar50 + 0x44)" identifier = (cast_expression "(page *)((int)ppVar50 + 0x44)" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppVar50 + 0x44)" ( (binary_expression "(int)ppVar50 + 0x44" (cast_expression "(int)ppVar50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "(*p_Var13)(stdoutput,pPVar2,pcVar22);" (call_expression "(*p_Var13)(stdoutput,pPVar2,pcVar22)" (parenthesized_expression "(*p_Var13)" ( (pointer_expression "*p_Var13" * identifier) )) (argument_list "(stdoutput,pPVar2,pcVar22)" ( identifier , identifier , identifier ))) ;) (expression_statement "pcVar22 = pcVar22 + uVar54;" (assignment_expression "pcVar22 = pcVar22 + uVar54" identifier = (binary_expression "pcVar22 + uVar54" identifier + identifier)) ;) (expression_statement "bVar62 = false;" (assignment_expression "bVar62 = false" identifier = false) ;) (expression_statement "uVar3 = uVar3 + 1;" (assignment_expression "uVar3 = uVar3 + 1" identifier = (binary_expression "uVar3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppVar50 < local_a0)" ( (binary_expression "ppVar50 < local_a0" identifier < identifier) )) ;) (expression_statement "pvVar35 = local_88->next;" (assignment_expression "pvVar35 = local_88->next" identifier = (field_expression "local_88->next" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(local_88->next != (vlinks *)0x0)" ( (binary_expression "local_88->next != (vlinks *)0x0" (field_expression "local_88->next" identifier -> field_identifier) != (cast_expression "(vlinks *)0x0" ( (type_descriptor "vlinks *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;)) (expression_statement "pvVar35 = (vlinks_t *)(uint)(ushort)(uVar3 - local_a4->ofile[0].ipdFirst);" (assignment_expression "pvVar35 = (vlinks_t *)(uint)(ushort)(uVar3 - local_a4->ofile[0].ipdFirst)" identifier = (cast_expression "(vlinks_t *)(uint)(ushort)(uVar3 - local_a4->ofile[0].ipdFirst)" ( (type_descriptor "vlinks_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(ushort)(uVar3 - local_a4->ofile[0].ipdFirst)" (call_expression "(uint)(ushort)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ushort)" ( identifier ))) (argument_list "(uVar3 - local_a4->ofile[0].ipdFirst)" ( (binary_expression "uVar3 - local_a4->ofile[0].ipdFirst" identifier - (field_expression "local_a4->ofile[0].ipdFirst" (subscript_expression "local_a4->ofile[0]" (field_expression "local_a4->ofile" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ))))) ;) })) (expression_statement "local_a4->ofile[0].cpd = (short)pvVar35;" (assignment_expression "local_a4->ofile[0].cpd = (short)pvVar35" (field_expression "local_a4->ofile[0].cpd" (subscript_expression "local_a4->ofile[0]" (field_expression "local_a4->ofile" identifier -> field_identifier) [ number_literal ]) . field_identifier) = (cast_expression "(short)pvVar35" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "local_a4 = (page *)(local_a4->byte + 0x294);" (assignment_expression "local_a4 = (page *)(local_a4->byte + 0x294)" identifier = (cast_expression "(page *)(local_a4->byte + 0x294)" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a4->byte + 0x294)" ( (binary_expression "local_a4->byte + 0x294" (field_expression "local_a4->byte" identifier -> field_identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(local_a4 < local_7c)" ( (binary_expression "local_a4 < local_7c" identifier < identifier) )) ;) (expression_statement "plVar7 = (localsym *)local_70->as_sym;" (assignment_expression "plVar7 = (localsym *)local_70->as_sym" identifier = (cast_expression "(localsym *)local_70->as_sym" ( (type_descriptor "localsym *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_70->as_sym" identifier -> field_identifier))) ;) }) while (parenthesized_expression "((vlinks *)local_70->as_sym != (vlinks *)0x0)" ( (binary_expression "(vlinks *)local_70->as_sym != (vlinks *)0x0" (cast_expression "(vlinks *)local_70->as_sym" ( (type_descriptor "vlinks *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_70->as_sym" identifier -> field_identifier)) != (cast_expression "(vlinks *)0x0" ( (type_descriptor "vlinks *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;)) (expression_statement "plVar18 = (lineno_list_t *)file_desc.first;" (assignment_expression "plVar18 = (lineno_list_t *)file_desc.first" identifier = (cast_expression "(lineno_list_t *)file_desc.first" ( (type_descriptor "lineno_list_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "file_desc.first" identifier . field_identifier))) ;) (expression_statement "hdr->ioptMax = 0;" (assignment_expression "hdr->ioptMax = 0" (field_expression "hdr->ioptMax" identifier -> field_identifier) = number_literal) ;) (expression_statement "*(undefined4 *)&hdr->cbOptOffset = 0;" (assignment_expression "*(undefined4 *)&hdr->cbOptOffset = 0" (pointer_expression "*(undefined4 *)&hdr->cbOptOffset" * (cast_expression "(undefined4 *)&hdr->cbOptOffset" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&hdr->cbOptOffset" & (field_expression "hdr->cbOptOffset" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&hdr->cbOptOffset + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&hdr->cbOptOffset + 4) = 0" (pointer_expression "*(undefined4 *)((int)&hdr->cbOptOffset + 4)" * (cast_expression "(undefined4 *)((int)&hdr->cbOptOffset + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&hdr->cbOptOffset + 4)" ( (binary_expression "(int)&hdr->cbOptOffset + 4" (cast_expression "(int)&hdr->cbOptOffset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&hdr->cbOptOffset" & (field_expression "hdr->cbOptOffset" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&hdr->cbAuxOffset + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&hdr->cbAuxOffset + 4) = 0" (pointer_expression "*(undefined4 *)((int)&hdr->cbAuxOffset + 4)" * (cast_expression "(undefined4 *)((int)&hdr->cbAuxOffset + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&hdr->cbAuxOffset + 4)" ( (binary_expression "(int)&hdr->cbAuxOffset + 4" (cast_expression "(int)&hdr->cbAuxOffset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&hdr->cbAuxOffset" & (field_expression "hdr->cbAuxOffset" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)&hdr->cbAuxOffset = local_68;" (assignment_expression "*(uint *)&hdr->cbAuxOffset = local_68" (pointer_expression "*(uint *)&hdr->cbAuxOffset" * (cast_expression "(uint *)&hdr->cbAuxOffset" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&hdr->cbAuxOffset" & (field_expression "hdr->cbAuxOffset" identifier -> field_identifier)))) = identifier) ;) (expression_statement "bVar14 = stdoutput->xvec->byteorder;" (assignment_expression "bVar14 = stdoutput->xvec->byteorder" identifier = (field_expression "stdoutput->xvec->byteorder" (field_expression "stdoutput->xvec" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "bufptr_00 = (tir_ext *)(buf + local_68);" (assignment_expression "bufptr_00 = (tir_ext *)(buf + local_68)" identifier = (cast_expression "(tir_ext *)(buf + local_68)" ( (type_descriptor "tir_ext *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(buf + local_68)" ( (binary_expression "buf + local_68" identifier + identifier) )))) ;) (if_statement "if (plVar18 != (lineno_list_t *)0x0) {\n      iVar29 = 0;\nLAB_00024d54:\n      do {\n        local_94 = plVar18;\n        local_a0 = (page *)local_94->proc;\n        if ((vlinks *)local_94->file == (vlinks *)0x0) {\n          local_9c = (page *)(local_a0->file + file_desc.objects_last_page);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (page *)(local_a0->file + file_desc.objects_per_page);\n          plVar18 = (lineno_list_t *)local_94->file;\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          local_a0->ofile[0].iauxBase = iVar29;\n          local_a0->ubyte[0x44] = local_a0->ubyte[0x44] & 0x7f | (bVar14 == BFD_ENDIAN_BIG) << 7;\n          ppVar36 = (proc_t *)local_a0->forward[0xb].free;\n          if (ppVar36 != (proc_t *)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppVar36;\n              paVar53 = *(aux_t **)((int)local_a8 + 8);\n              if (*(forward **)&local_a8->pdr == (forward *)0x0) {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc4);\n                if (local_ac <= paVar53) break;\n              }\n              else {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc2);\n                ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n                if (local_ac <= paVar53) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)bufend - (int)bufptr_00) < 4) {\n                  bufptr_00 = (tir_ext *)ecoff_add_bytes(local_78,local_74,(char *)bufptr_00,4);\n                }\n                iVar46 = SUB14(bVar14 == BFD_ENDIAN_BIG,0);\n                switch(paVar53->type) {\n                case aux_tir:\n                  (*backend->swap_tir_out)(iVar46,&(paVar53->data).ti,bufptr_00);\n                  break;\n                case aux_rndx:\n                  (*backend->swap_rndx_out)(iVar46,&(paVar53->data).rndx,(rndx_ext *)bufptr_00);\n                  break;\n                case aux_dnLow:\n                case aux_dnHigh:\n                case aux_isym:\n                case aux_iss:\n                case aux_width:\n                case aux_count:\n                  iVar46 = (paVar53->data).dnLow;\n                  if (bVar14 == BFD_ENDIAN_BIG) {\n                    bfd_putb32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                  else {\n                    bfd_putl32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                }\n                bufptr_00 = bufptr_00 + 1;\n                iVar29 = iVar29 + 1;\n                paVar53 = paVar53 + 1;\n              } while (paVar53 < local_ac);\n              ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n            } while (*(forward **)&local_a8->pdr != (forward *)0x0);\n            ppVar36 = (proc_t *)(iVar29 - local_a0->ofile[0].iauxBase);\n          }\n          local_a0->forward[3].ifd_ptr = (aux_t *)ppVar36;\n          local_a0 = (page *)(local_a0->byte + 0x294);\n        } while (local_a0 < local_9c);\n        plVar18 = (lineno_list_t *)local_94->file;\n      } while ((vlinks *)local_94->file != (vlinks *)0x0);\n      local_68 = local_68 + iVar29 * 4;\n    }" if (parenthesized_expression "(plVar18 != (lineno_list_t *)0x0)" ( (binary_expression "plVar18 != (lineno_list_t *)0x0" identifier != (cast_expression "(lineno_list_t *)0x0" ( (type_descriptor "lineno_list_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar29 = 0;\nLAB_00024d54:\n      do {\n        local_94 = plVar18;\n        local_a0 = (page *)local_94->proc;\n        if ((vlinks *)local_94->file == (vlinks *)0x0) {\n          local_9c = (page *)(local_a0->file + file_desc.objects_last_page);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (page *)(local_a0->file + file_desc.objects_per_page);\n          plVar18 = (lineno_list_t *)local_94->file;\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          local_a0->ofile[0].iauxBase = iVar29;\n          local_a0->ubyte[0x44] = local_a0->ubyte[0x44] & 0x7f | (bVar14 == BFD_ENDIAN_BIG) << 7;\n          ppVar36 = (proc_t *)local_a0->forward[0xb].free;\n          if (ppVar36 != (proc_t *)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppVar36;\n              paVar53 = *(aux_t **)((int)local_a8 + 8);\n              if (*(forward **)&local_a8->pdr == (forward *)0x0) {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc4);\n                if (local_ac <= paVar53) break;\n              }\n              else {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc2);\n                ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n                if (local_ac <= paVar53) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)bufend - (int)bufptr_00) < 4) {\n                  bufptr_00 = (tir_ext *)ecoff_add_bytes(local_78,local_74,(char *)bufptr_00,4);\n                }\n                iVar46 = SUB14(bVar14 == BFD_ENDIAN_BIG,0);\n                switch(paVar53->type) {\n                case aux_tir:\n                  (*backend->swap_tir_out)(iVar46,&(paVar53->data).ti,bufptr_00);\n                  break;\n                case aux_rndx:\n                  (*backend->swap_rndx_out)(iVar46,&(paVar53->data).rndx,(rndx_ext *)bufptr_00);\n                  break;\n                case aux_dnLow:\n                case aux_dnHigh:\n                case aux_isym:\n                case aux_iss:\n                case aux_width:\n                case aux_count:\n                  iVar46 = (paVar53->data).dnLow;\n                  if (bVar14 == BFD_ENDIAN_BIG) {\n                    bfd_putb32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                  else {\n                    bfd_putl32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                }\n                bufptr_00 = bufptr_00 + 1;\n                iVar29 = iVar29 + 1;\n                paVar53 = paVar53 + 1;\n              } while (paVar53 < local_ac);\n              ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n            } while (*(forward **)&local_a8->pdr != (forward *)0x0);\n            ppVar36 = (proc_t *)(iVar29 - local_a0->ofile[0].iauxBase);\n          }\n          local_a0->forward[3].ifd_ptr = (aux_t *)ppVar36;\n          local_a0 = (page *)(local_a0->byte + 0x294);\n        } while (local_a0 < local_9c);\n        plVar18 = (lineno_list_t *)local_94->file;\n      } while ((vlinks *)local_94->file != (vlinks *)0x0);\n      local_68 = local_68 + iVar29 * 4;\n    }" { (expression_statement "iVar29 = 0;" (assignment_expression "iVar29 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00024d54:\n      do {\n        local_94 = plVar18;\n        local_a0 = (page *)local_94->proc;\n        if ((vlinks *)local_94->file == (vlinks *)0x0) {\n          local_9c = (page *)(local_a0->file + file_desc.objects_last_page);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (page *)(local_a0->file + file_desc.objects_per_page);\n          plVar18 = (lineno_list_t *)local_94->file;\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          local_a0->ofile[0].iauxBase = iVar29;\n          local_a0->ubyte[0x44] = local_a0->ubyte[0x44] & 0x7f | (bVar14 == BFD_ENDIAN_BIG) << 7;\n          ppVar36 = (proc_t *)local_a0->forward[0xb].free;\n          if (ppVar36 != (proc_t *)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppVar36;\n              paVar53 = *(aux_t **)((int)local_a8 + 8);\n              if (*(forward **)&local_a8->pdr == (forward *)0x0) {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc4);\n                if (local_ac <= paVar53) break;\n              }\n              else {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc2);\n                ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n                if (local_ac <= paVar53) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)bufend - (int)bufptr_00) < 4) {\n                  bufptr_00 = (tir_ext *)ecoff_add_bytes(local_78,local_74,(char *)bufptr_00,4);\n                }\n                iVar46 = SUB14(bVar14 == BFD_ENDIAN_BIG,0);\n                switch(paVar53->type) {\n                case aux_tir:\n                  (*backend->swap_tir_out)(iVar46,&(paVar53->data).ti,bufptr_00);\n                  break;\n                case aux_rndx:\n                  (*backend->swap_rndx_out)(iVar46,&(paVar53->data).rndx,(rndx_ext *)bufptr_00);\n                  break;\n                case aux_dnLow:\n                case aux_dnHigh:\n                case aux_isym:\n                case aux_iss:\n                case aux_width:\n                case aux_count:\n                  iVar46 = (paVar53->data).dnLow;\n                  if (bVar14 == BFD_ENDIAN_BIG) {\n                    bfd_putb32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                  else {\n                    bfd_putl32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                }\n                bufptr_00 = bufptr_00 + 1;\n                iVar29 = iVar29 + 1;\n                paVar53 = paVar53 + 1;\n              } while (paVar53 < local_ac);\n              ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n            } while (*(forward **)&local_a8->pdr != (forward *)0x0);\n            ppVar36 = (proc_t *)(iVar29 - local_a0->ofile[0].iauxBase);\n          }\n          local_a0->forward[3].ifd_ptr = (aux_t *)ppVar36;\n          local_a0 = (page *)(local_a0->byte + 0x294);\n        } while (local_a0 < local_9c);\n        plVar18 = (lineno_list_t *)local_94->file;\n      } while ((vlinks *)local_94->file != (vlinks *)0x0);" statement_identifier : (do_statement "do {\n        local_94 = plVar18;\n        local_a0 = (page *)local_94->proc;\n        if ((vlinks *)local_94->file == (vlinks *)0x0) {\n          local_9c = (page *)(local_a0->file + file_desc.objects_last_page);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (page *)(local_a0->file + file_desc.objects_per_page);\n          plVar18 = (lineno_list_t *)local_94->file;\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          local_a0->ofile[0].iauxBase = iVar29;\n          local_a0->ubyte[0x44] = local_a0->ubyte[0x44] & 0x7f | (bVar14 == BFD_ENDIAN_BIG) << 7;\n          ppVar36 = (proc_t *)local_a0->forward[0xb].free;\n          if (ppVar36 != (proc_t *)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppVar36;\n              paVar53 = *(aux_t **)((int)local_a8 + 8);\n              if (*(forward **)&local_a8->pdr == (forward *)0x0) {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc4);\n                if (local_ac <= paVar53) break;\n              }\n              else {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc2);\n                ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n                if (local_ac <= paVar53) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)bufend - (int)bufptr_00) < 4) {\n                  bufptr_00 = (tir_ext *)ecoff_add_bytes(local_78,local_74,(char *)bufptr_00,4);\n                }\n                iVar46 = SUB14(bVar14 == BFD_ENDIAN_BIG,0);\n                switch(paVar53->type) {\n                case aux_tir:\n                  (*backend->swap_tir_out)(iVar46,&(paVar53->data).ti,bufptr_00);\n                  break;\n                case aux_rndx:\n                  (*backend->swap_rndx_out)(iVar46,&(paVar53->data).rndx,(rndx_ext *)bufptr_00);\n                  break;\n                case aux_dnLow:\n                case aux_dnHigh:\n                case aux_isym:\n                case aux_iss:\n                case aux_width:\n                case aux_count:\n                  iVar46 = (paVar53->data).dnLow;\n                  if (bVar14 == BFD_ENDIAN_BIG) {\n                    bfd_putb32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                  else {\n                    bfd_putl32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                }\n                bufptr_00 = bufptr_00 + 1;\n                iVar29 = iVar29 + 1;\n                paVar53 = paVar53 + 1;\n              } while (paVar53 < local_ac);\n              ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n            } while (*(forward **)&local_a8->pdr != (forward *)0x0);\n            ppVar36 = (proc_t *)(iVar29 - local_a0->ofile[0].iauxBase);\n          }\n          local_a0->forward[3].ifd_ptr = (aux_t *)ppVar36;\n          local_a0 = (page *)(local_a0->byte + 0x294);\n        } while (local_a0 < local_9c);\n        plVar18 = (lineno_list_t *)local_94->file;\n      } while ((vlinks *)local_94->file != (vlinks *)0x0);" do (compound_statement "{\n        local_94 = plVar18;\n        local_a0 = (page *)local_94->proc;\n        if ((vlinks *)local_94->file == (vlinks *)0x0) {\n          local_9c = (page *)(local_a0->file + file_desc.objects_last_page);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (page *)(local_a0->file + file_desc.objects_per_page);\n          plVar18 = (lineno_list_t *)local_94->file;\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          local_a0->ofile[0].iauxBase = iVar29;\n          local_a0->ubyte[0x44] = local_a0->ubyte[0x44] & 0x7f | (bVar14 == BFD_ENDIAN_BIG) << 7;\n          ppVar36 = (proc_t *)local_a0->forward[0xb].free;\n          if (ppVar36 != (proc_t *)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppVar36;\n              paVar53 = *(aux_t **)((int)local_a8 + 8);\n              if (*(forward **)&local_a8->pdr == (forward *)0x0) {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc4);\n                if (local_ac <= paVar53) break;\n              }\n              else {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc2);\n                ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n                if (local_ac <= paVar53) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)bufend - (int)bufptr_00) < 4) {\n                  bufptr_00 = (tir_ext *)ecoff_add_bytes(local_78,local_74,(char *)bufptr_00,4);\n                }\n                iVar46 = SUB14(bVar14 == BFD_ENDIAN_BIG,0);\n                switch(paVar53->type) {\n                case aux_tir:\n                  (*backend->swap_tir_out)(iVar46,&(paVar53->data).ti,bufptr_00);\n                  break;\n                case aux_rndx:\n                  (*backend->swap_rndx_out)(iVar46,&(paVar53->data).rndx,(rndx_ext *)bufptr_00);\n                  break;\n                case aux_dnLow:\n                case aux_dnHigh:\n                case aux_isym:\n                case aux_iss:\n                case aux_width:\n                case aux_count:\n                  iVar46 = (paVar53->data).dnLow;\n                  if (bVar14 == BFD_ENDIAN_BIG) {\n                    bfd_putb32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                  else {\n                    bfd_putl32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                }\n                bufptr_00 = bufptr_00 + 1;\n                iVar29 = iVar29 + 1;\n                paVar53 = paVar53 + 1;\n              } while (paVar53 < local_ac);\n              ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n            } while (*(forward **)&local_a8->pdr != (forward *)0x0);\n            ppVar36 = (proc_t *)(iVar29 - local_a0->ofile[0].iauxBase);\n          }\n          local_a0->forward[3].ifd_ptr = (aux_t *)ppVar36;\n          local_a0 = (page *)(local_a0->byte + 0x294);\n        } while (local_a0 < local_9c);\n        plVar18 = (lineno_list_t *)local_94->file;\n      }" { (expression_statement "local_94 = plVar18;" (assignment_expression "local_94 = plVar18" identifier = identifier) ;) (expression_statement "local_a0 = (page *)local_94->proc;" (assignment_expression "local_a0 = (page *)local_94->proc" identifier = (cast_expression "(page *)local_94->proc" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_94->proc" identifier -> field_identifier))) ;) (if_statement "if ((vlinks *)local_94->file == (vlinks *)0x0) {\n          local_9c = (page *)(local_a0->file + file_desc.objects_last_page);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (page *)(local_a0->file + file_desc.objects_per_page);\n          plVar18 = (lineno_list_t *)local_94->file;\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }" if (parenthesized_expression "((vlinks *)local_94->file == (vlinks *)0x0)" ( (binary_expression "(vlinks *)local_94->file == (vlinks *)0x0" (cast_expression "(vlinks *)local_94->file" ( (type_descriptor "vlinks *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_94->file" identifier -> field_identifier)) == (cast_expression "(vlinks *)0x0" ( (type_descriptor "vlinks *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_9c = (page *)(local_a0->file + file_desc.objects_last_page);\n          if (local_9c <= local_a0) break;\n        }" { (expression_statement "local_9c = (page *)(local_a0->file + file_desc.objects_last_page);" (assignment_expression "local_9c = (page *)(local_a0->file + file_desc.objects_last_page)" identifier = (cast_expression "(page *)(local_a0->file + file_desc.objects_last_page)" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a0->file + file_desc.objects_last_page)" ( (binary_expression "local_a0->file + file_desc.objects_last_page" (field_expression "local_a0->file" identifier -> field_identifier) + (field_expression "file_desc.objects_last_page" identifier . field_identifier)) )))) ;) (if_statement "if (local_9c <= local_a0) break;" if (parenthesized_expression "(local_9c <= local_a0)" ( (binary_expression "local_9c <= local_a0" identifier <= identifier) )) (break_statement "break;" break ;)) }) (else_clause "else {\n          local_9c = (page *)(local_a0->file + file_desc.objects_per_page);\n          plVar18 = (lineno_list_t *)local_94->file;\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }" else (compound_statement "{\n          local_9c = (page *)(local_a0->file + file_desc.objects_per_page);\n          plVar18 = (lineno_list_t *)local_94->file;\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }" { (expression_statement "local_9c = (page *)(local_a0->file + file_desc.objects_per_page);" (assignment_expression "local_9c = (page *)(local_a0->file + file_desc.objects_per_page)" identifier = (cast_expression "(page *)(local_a0->file + file_desc.objects_per_page)" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a0->file + file_desc.objects_per_page)" ( (binary_expression "local_a0->file + file_desc.objects_per_page" (field_expression "local_a0->file" identifier -> field_identifier) + (field_expression "file_desc.objects_per_page" identifier . field_identifier)) )))) ;) (expression_statement "plVar18 = (lineno_list_t *)local_94->file;" (assignment_expression "plVar18 = (lineno_list_t *)local_94->file" identifier = (cast_expression "(lineno_list_t *)local_94->file" ( (type_descriptor "lineno_list_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_94->file" identifier -> field_identifier))) ;) (if_statement "if (local_9c <= local_a0) goto LAB_00024d54;" if (parenthesized_expression "(local_9c <= local_a0)" ( (binary_expression "local_9c <= local_a0" identifier <= identifier) )) (goto_statement "goto LAB_00024d54;" goto statement_identifier ;)) }))) (do_statement "do {\n          local_a0->ofile[0].iauxBase = iVar29;\n          local_a0->ubyte[0x44] = local_a0->ubyte[0x44] & 0x7f | (bVar14 == BFD_ENDIAN_BIG) << 7;\n          ppVar36 = (proc_t *)local_a0->forward[0xb].free;\n          if (ppVar36 != (proc_t *)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppVar36;\n              paVar53 = *(aux_t **)((int)local_a8 + 8);\n              if (*(forward **)&local_a8->pdr == (forward *)0x0) {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc4);\n                if (local_ac <= paVar53) break;\n              }\n              else {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc2);\n                ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n                if (local_ac <= paVar53) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)bufend - (int)bufptr_00) < 4) {\n                  bufptr_00 = (tir_ext *)ecoff_add_bytes(local_78,local_74,(char *)bufptr_00,4);\n                }\n                iVar46 = SUB14(bVar14 == BFD_ENDIAN_BIG,0);\n                switch(paVar53->type) {\n                case aux_tir:\n                  (*backend->swap_tir_out)(iVar46,&(paVar53->data).ti,bufptr_00);\n                  break;\n                case aux_rndx:\n                  (*backend->swap_rndx_out)(iVar46,&(paVar53->data).rndx,(rndx_ext *)bufptr_00);\n                  break;\n                case aux_dnLow:\n                case aux_dnHigh:\n                case aux_isym:\n                case aux_iss:\n                case aux_width:\n                case aux_count:\n                  iVar46 = (paVar53->data).dnLow;\n                  if (bVar14 == BFD_ENDIAN_BIG) {\n                    bfd_putb32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                  else {\n                    bfd_putl32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                }\n                bufptr_00 = bufptr_00 + 1;\n                iVar29 = iVar29 + 1;\n                paVar53 = paVar53 + 1;\n              } while (paVar53 < local_ac);\n              ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n            } while (*(forward **)&local_a8->pdr != (forward *)0x0);\n            ppVar36 = (proc_t *)(iVar29 - local_a0->ofile[0].iauxBase);\n          }\n          local_a0->forward[3].ifd_ptr = (aux_t *)ppVar36;\n          local_a0 = (page *)(local_a0->byte + 0x294);\n        } while (local_a0 < local_9c);" do (compound_statement "{\n          local_a0->ofile[0].iauxBase = iVar29;\n          local_a0->ubyte[0x44] = local_a0->ubyte[0x44] & 0x7f | (bVar14 == BFD_ENDIAN_BIG) << 7;\n          ppVar36 = (proc_t *)local_a0->forward[0xb].free;\n          if (ppVar36 != (proc_t *)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppVar36;\n              paVar53 = *(aux_t **)((int)local_a8 + 8);\n              if (*(forward **)&local_a8->pdr == (forward *)0x0) {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc4);\n                if (local_ac <= paVar53) break;\n              }\n              else {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc2);\n                ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n                if (local_ac <= paVar53) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)bufend - (int)bufptr_00) < 4) {\n                  bufptr_00 = (tir_ext *)ecoff_add_bytes(local_78,local_74,(char *)bufptr_00,4);\n                }\n                iVar46 = SUB14(bVar14 == BFD_ENDIAN_BIG,0);\n                switch(paVar53->type) {\n                case aux_tir:\n                  (*backend->swap_tir_out)(iVar46,&(paVar53->data).ti,bufptr_00);\n                  break;\n                case aux_rndx:\n                  (*backend->swap_rndx_out)(iVar46,&(paVar53->data).rndx,(rndx_ext *)bufptr_00);\n                  break;\n                case aux_dnLow:\n                case aux_dnHigh:\n                case aux_isym:\n                case aux_iss:\n                case aux_width:\n                case aux_count:\n                  iVar46 = (paVar53->data).dnLow;\n                  if (bVar14 == BFD_ENDIAN_BIG) {\n                    bfd_putb32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                  else {\n                    bfd_putl32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                }\n                bufptr_00 = bufptr_00 + 1;\n                iVar29 = iVar29 + 1;\n                paVar53 = paVar53 + 1;\n              } while (paVar53 < local_ac);\n              ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n            } while (*(forward **)&local_a8->pdr != (forward *)0x0);\n            ppVar36 = (proc_t *)(iVar29 - local_a0->ofile[0].iauxBase);\n          }\n          local_a0->forward[3].ifd_ptr = (aux_t *)ppVar36;\n          local_a0 = (page *)(local_a0->byte + 0x294);\n        }" { (expression_statement "local_a0->ofile[0].iauxBase = iVar29;" (assignment_expression "local_a0->ofile[0].iauxBase = iVar29" (field_expression "local_a0->ofile[0].iauxBase" (subscript_expression "local_a0->ofile[0]" (field_expression "local_a0->ofile" identifier -> field_identifier) [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "local_a0->ubyte[0x44] = local_a0->ubyte[0x44] & 0x7f | (bVar14 == BFD_ENDIAN_BIG) << 7;" (assignment_expression "local_a0->ubyte[0x44] = local_a0->ubyte[0x44] & 0x7f | (bVar14 == BFD_ENDIAN_BIG) << 7" (subscript_expression "local_a0->ubyte[0x44]" (field_expression "local_a0->ubyte" identifier -> field_identifier) [ number_literal ]) = (binary_expression "local_a0->ubyte[0x44] & 0x7f | (bVar14 == BFD_ENDIAN_BIG) << 7" (binary_expression "local_a0->ubyte[0x44] & 0x7f" (subscript_expression "local_a0->ubyte[0x44]" (field_expression "local_a0->ubyte" identifier -> field_identifier) [ number_literal ]) & number_literal) | (binary_expression "(bVar14 == BFD_ENDIAN_BIG) << 7" (parenthesized_expression "(bVar14 == BFD_ENDIAN_BIG)" ( (binary_expression "bVar14 == BFD_ENDIAN_BIG" identifier == identifier) )) << number_literal))) ;) (expression_statement "ppVar36 = (proc_t *)local_a0->forward[0xb].free;" (assignment_expression "ppVar36 = (proc_t *)local_a0->forward[0xb].free" identifier = (cast_expression "(proc_t *)local_a0->forward[0xb].free" ( (type_descriptor "proc_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_a0->forward[0xb].free" (subscript_expression "local_a0->forward[0xb]" (field_expression "local_a0->forward" identifier -> field_identifier) [ number_literal ]) . field_identifier))) ;) (if_statement "if (ppVar36 != (proc_t *)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppVar36;\n              paVar53 = *(aux_t **)((int)local_a8 + 8);\n              if (*(forward **)&local_a8->pdr == (forward *)0x0) {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc4);\n                if (local_ac <= paVar53) break;\n              }\n              else {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc2);\n                ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n                if (local_ac <= paVar53) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)bufend - (int)bufptr_00) < 4) {\n                  bufptr_00 = (tir_ext *)ecoff_add_bytes(local_78,local_74,(char *)bufptr_00,4);\n                }\n                iVar46 = SUB14(bVar14 == BFD_ENDIAN_BIG,0);\n                switch(paVar53->type) {\n                case aux_tir:\n                  (*backend->swap_tir_out)(iVar46,&(paVar53->data).ti,bufptr_00);\n                  break;\n                case aux_rndx:\n                  (*backend->swap_rndx_out)(iVar46,&(paVar53->data).rndx,(rndx_ext *)bufptr_00);\n                  break;\n                case aux_dnLow:\n                case aux_dnHigh:\n                case aux_isym:\n                case aux_iss:\n                case aux_width:\n                case aux_count:\n                  iVar46 = (paVar53->data).dnLow;\n                  if (bVar14 == BFD_ENDIAN_BIG) {\n                    bfd_putb32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                  else {\n                    bfd_putl32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                }\n                bufptr_00 = bufptr_00 + 1;\n                iVar29 = iVar29 + 1;\n                paVar53 = paVar53 + 1;\n              } while (paVar53 < local_ac);\n              ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n            } while (*(forward **)&local_a8->pdr != (forward *)0x0);\n            ppVar36 = (proc_t *)(iVar29 - local_a0->ofile[0].iauxBase);\n          }" if (parenthesized_expression "(ppVar36 != (proc_t *)0x0)" ( (binary_expression "ppVar36 != (proc_t *)0x0" identifier != (cast_expression "(proc_t *)0x0" ( (type_descriptor "proc_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00024dd0:\n            do {\n              local_a8 = ppVar36;\n              paVar53 = *(aux_t **)((int)local_a8 + 8);\n              if (*(forward **)&local_a8->pdr == (forward *)0x0) {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc4);\n                if (local_ac <= paVar53) break;\n              }\n              else {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc2);\n                ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n                if (local_ac <= paVar53) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)bufend - (int)bufptr_00) < 4) {\n                  bufptr_00 = (tir_ext *)ecoff_add_bytes(local_78,local_74,(char *)bufptr_00,4);\n                }\n                iVar46 = SUB14(bVar14 == BFD_ENDIAN_BIG,0);\n                switch(paVar53->type) {\n                case aux_tir:\n                  (*backend->swap_tir_out)(iVar46,&(paVar53->data).ti,bufptr_00);\n                  break;\n                case aux_rndx:\n                  (*backend->swap_rndx_out)(iVar46,&(paVar53->data).rndx,(rndx_ext *)bufptr_00);\n                  break;\n                case aux_dnLow:\n                case aux_dnHigh:\n                case aux_isym:\n                case aux_iss:\n                case aux_width:\n                case aux_count:\n                  iVar46 = (paVar53->data).dnLow;\n                  if (bVar14 == BFD_ENDIAN_BIG) {\n                    bfd_putb32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                  else {\n                    bfd_putl32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                }\n                bufptr_00 = bufptr_00 + 1;\n                iVar29 = iVar29 + 1;\n                paVar53 = paVar53 + 1;\n              } while (paVar53 < local_ac);\n              ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n            } while (*(forward **)&local_a8->pdr != (forward *)0x0);\n            ppVar36 = (proc_t *)(iVar29 - local_a0->ofile[0].iauxBase);\n          }" { (labeled_statement "LAB_00024dd0:\n            do {\n              local_a8 = ppVar36;\n              paVar53 = *(aux_t **)((int)local_a8 + 8);\n              if (*(forward **)&local_a8->pdr == (forward *)0x0) {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc4);\n                if (local_ac <= paVar53) break;\n              }\n              else {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc2);\n                ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n                if (local_ac <= paVar53) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)bufend - (int)bufptr_00) < 4) {\n                  bufptr_00 = (tir_ext *)ecoff_add_bytes(local_78,local_74,(char *)bufptr_00,4);\n                }\n                iVar46 = SUB14(bVar14 == BFD_ENDIAN_BIG,0);\n                switch(paVar53->type) {\n                case aux_tir:\n                  (*backend->swap_tir_out)(iVar46,&(paVar53->data).ti,bufptr_00);\n                  break;\n                case aux_rndx:\n                  (*backend->swap_rndx_out)(iVar46,&(paVar53->data).rndx,(rndx_ext *)bufptr_00);\n                  break;\n                case aux_dnLow:\n                case aux_dnHigh:\n                case aux_isym:\n                case aux_iss:\n                case aux_width:\n                case aux_count:\n                  iVar46 = (paVar53->data).dnLow;\n                  if (bVar14 == BFD_ENDIAN_BIG) {\n                    bfd_putb32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                  else {\n                    bfd_putl32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                }\n                bufptr_00 = bufptr_00 + 1;\n                iVar29 = iVar29 + 1;\n                paVar53 = paVar53 + 1;\n              } while (paVar53 < local_ac);\n              ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n            } while (*(forward **)&local_a8->pdr != (forward *)0x0);" statement_identifier : (do_statement "do {\n              local_a8 = ppVar36;\n              paVar53 = *(aux_t **)((int)local_a8 + 8);\n              if (*(forward **)&local_a8->pdr == (forward *)0x0) {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc4);\n                if (local_ac <= paVar53) break;\n              }\n              else {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc2);\n                ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n                if (local_ac <= paVar53) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)bufend - (int)bufptr_00) < 4) {\n                  bufptr_00 = (tir_ext *)ecoff_add_bytes(local_78,local_74,(char *)bufptr_00,4);\n                }\n                iVar46 = SUB14(bVar14 == BFD_ENDIAN_BIG,0);\n                switch(paVar53->type) {\n                case aux_tir:\n                  (*backend->swap_tir_out)(iVar46,&(paVar53->data).ti,bufptr_00);\n                  break;\n                case aux_rndx:\n                  (*backend->swap_rndx_out)(iVar46,&(paVar53->data).rndx,(rndx_ext *)bufptr_00);\n                  break;\n                case aux_dnLow:\n                case aux_dnHigh:\n                case aux_isym:\n                case aux_iss:\n                case aux_width:\n                case aux_count:\n                  iVar46 = (paVar53->data).dnLow;\n                  if (bVar14 == BFD_ENDIAN_BIG) {\n                    bfd_putb32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                  else {\n                    bfd_putl32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                }\n                bufptr_00 = bufptr_00 + 1;\n                iVar29 = iVar29 + 1;\n                paVar53 = paVar53 + 1;\n              } while (paVar53 < local_ac);\n              ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n            } while (*(forward **)&local_a8->pdr != (forward *)0x0);" do (compound_statement "{\n              local_a8 = ppVar36;\n              paVar53 = *(aux_t **)((int)local_a8 + 8);\n              if (*(forward **)&local_a8->pdr == (forward *)0x0) {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc4);\n                if (local_ac <= paVar53) break;\n              }\n              else {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc2);\n                ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n                if (local_ac <= paVar53) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)bufend - (int)bufptr_00) < 4) {\n                  bufptr_00 = (tir_ext *)ecoff_add_bytes(local_78,local_74,(char *)bufptr_00,4);\n                }\n                iVar46 = SUB14(bVar14 == BFD_ENDIAN_BIG,0);\n                switch(paVar53->type) {\n                case aux_tir:\n                  (*backend->swap_tir_out)(iVar46,&(paVar53->data).ti,bufptr_00);\n                  break;\n                case aux_rndx:\n                  (*backend->swap_rndx_out)(iVar46,&(paVar53->data).rndx,(rndx_ext *)bufptr_00);\n                  break;\n                case aux_dnLow:\n                case aux_dnHigh:\n                case aux_isym:\n                case aux_iss:\n                case aux_width:\n                case aux_count:\n                  iVar46 = (paVar53->data).dnLow;\n                  if (bVar14 == BFD_ENDIAN_BIG) {\n                    bfd_putb32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                  else {\n                    bfd_putl32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                }\n                bufptr_00 = bufptr_00 + 1;\n                iVar29 = iVar29 + 1;\n                paVar53 = paVar53 + 1;\n              } while (paVar53 < local_ac);\n              ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n            }" { (expression_statement "local_a8 = ppVar36;" (assignment_expression "local_a8 = ppVar36" identifier = identifier) ;) (expression_statement "paVar53 = *(aux_t **)((int)local_a8 + 8);" (assignment_expression "paVar53 = *(aux_t **)((int)local_a8 + 8)" identifier = (pointer_expression "*(aux_t **)((int)local_a8 + 8)" * (cast_expression "(aux_t **)((int)local_a8 + 8)" ( (type_descriptor "aux_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_a8 + 8)" ( (binary_expression "(int)local_a8 + 8" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (*(forward **)&local_a8->pdr == (forward *)0x0) {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc4);\n                if (local_ac <= paVar53) break;\n              }\n              else {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc2);\n                ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n                if (local_ac <= paVar53) goto LAB_00024dd0;\n              }" if (parenthesized_expression "(*(forward **)&local_a8->pdr == (forward *)0x0)" ( (binary_expression "*(forward **)&local_a8->pdr == (forward *)0x0" (pointer_expression "*(forward **)&local_a8->pdr" * (cast_expression "(forward **)&local_a8->pdr" ( (type_descriptor "forward **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_a8->pdr" & (field_expression "local_a8->pdr" identifier -> field_identifier)))) == (cast_expression "(forward *)0x0" ( (type_descriptor "forward *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc4);\n                if (local_ac <= paVar53) break;\n              }" { (expression_statement "local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc4);" (assignment_expression "local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc4)" identifier = (binary_expression "paVar53 + *(ushort *)(local_a0->byte + 0xc4)" identifier + (pointer_expression "*(ushort *)(local_a0->byte + 0xc4)" * (cast_expression "(ushort *)(local_a0->byte + 0xc4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a0->byte + 0xc4)" ( (binary_expression "local_a0->byte + 0xc4" (field_expression "local_a0->byte" identifier -> field_identifier) + number_literal) )))))) ;) (if_statement "if (local_ac <= paVar53) break;" if (parenthesized_expression "(local_ac <= paVar53)" ( (binary_expression "local_ac <= paVar53" identifier <= identifier) )) (break_statement "break;" break ;)) }) (else_clause "else {\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc2);\n                ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n                if (local_ac <= paVar53) goto LAB_00024dd0;\n              }" else (compound_statement "{\n                local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc2);\n                ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;\n                if (local_ac <= paVar53) goto LAB_00024dd0;\n              }" { (expression_statement "local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc2);" (assignment_expression "local_ac = paVar53 + *(ushort *)(local_a0->byte + 0xc2)" identifier = (binary_expression "paVar53 + *(ushort *)(local_a0->byte + 0xc2)" identifier + (pointer_expression "*(ushort *)(local_a0->byte + 0xc2)" * (cast_expression "(ushort *)(local_a0->byte + 0xc2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a0->byte + 0xc2)" ( (binary_expression "local_a0->byte + 0xc2" (field_expression "local_a0->byte" identifier -> field_identifier) + number_literal) )))))) ;) (expression_statement "ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;" (assignment_expression "ppVar36 = (proc_t *)*(forward **)&local_a8->pdr" identifier = (cast_expression "(proc_t *)*(forward **)&local_a8->pdr" ( (type_descriptor "proc_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*(forward **)&local_a8->pdr" * (cast_expression "(forward **)&local_a8->pdr" ( (type_descriptor "forward **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_a8->pdr" & (field_expression "local_a8->pdr" identifier -> field_identifier)))))) ;) (if_statement "if (local_ac <= paVar53) goto LAB_00024dd0;" if (parenthesized_expression "(local_ac <= paVar53)" ( (binary_expression "local_ac <= paVar53" identifier <= identifier) )) (goto_statement "goto LAB_00024dd0;" goto statement_identifier ;)) }))) (do_statement "do {\n                if ((uint)((int)bufend - (int)bufptr_00) < 4) {\n                  bufptr_00 = (tir_ext *)ecoff_add_bytes(local_78,local_74,(char *)bufptr_00,4);\n                }\n                iVar46 = SUB14(bVar14 == BFD_ENDIAN_BIG,0);\n                switch(paVar53->type) {\n                case aux_tir:\n                  (*backend->swap_tir_out)(iVar46,&(paVar53->data).ti,bufptr_00);\n                  break;\n                case aux_rndx:\n                  (*backend->swap_rndx_out)(iVar46,&(paVar53->data).rndx,(rndx_ext *)bufptr_00);\n                  break;\n                case aux_dnLow:\n                case aux_dnHigh:\n                case aux_isym:\n                case aux_iss:\n                case aux_width:\n                case aux_count:\n                  iVar46 = (paVar53->data).dnLow;\n                  if (bVar14 == BFD_ENDIAN_BIG) {\n                    bfd_putb32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                  else {\n                    bfd_putl32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                }\n                bufptr_00 = bufptr_00 + 1;\n                iVar29 = iVar29 + 1;\n                paVar53 = paVar53 + 1;\n              } while (paVar53 < local_ac);" do (compound_statement "{\n                if ((uint)((int)bufend - (int)bufptr_00) < 4) {\n                  bufptr_00 = (tir_ext *)ecoff_add_bytes(local_78,local_74,(char *)bufptr_00,4);\n                }\n                iVar46 = SUB14(bVar14 == BFD_ENDIAN_BIG,0);\n                switch(paVar53->type) {\n                case aux_tir:\n                  (*backend->swap_tir_out)(iVar46,&(paVar53->data).ti,bufptr_00);\n                  break;\n                case aux_rndx:\n                  (*backend->swap_rndx_out)(iVar46,&(paVar53->data).rndx,(rndx_ext *)bufptr_00);\n                  break;\n                case aux_dnLow:\n                case aux_dnHigh:\n                case aux_isym:\n                case aux_iss:\n                case aux_width:\n                case aux_count:\n                  iVar46 = (paVar53->data).dnLow;\n                  if (bVar14 == BFD_ENDIAN_BIG) {\n                    bfd_putb32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                  else {\n                    bfd_putl32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                }\n                bufptr_00 = bufptr_00 + 1;\n                iVar29 = iVar29 + 1;\n                paVar53 = paVar53 + 1;\n              }" { (if_statement "if ((uint)((int)bufend - (int)bufptr_00) < 4) {\n                  bufptr_00 = (tir_ext *)ecoff_add_bytes(local_78,local_74,(char *)bufptr_00,4);\n                }" if (parenthesized_expression "((uint)((int)bufend - (int)bufptr_00) < 4)" ( (binary_expression "(uint)((int)bufend - (int)bufptr_00) < 4" (call_expression "(uint)((int)bufend - (int)bufptr_00)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)bufend - (int)bufptr_00)" ( (binary_expression "(int)bufend - (int)bufptr_00" (cast_expression "(int)bufend" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)bufptr_00" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < number_literal) )) (compound_statement "{\n                  bufptr_00 = (tir_ext *)ecoff_add_bytes(local_78,local_74,(char *)bufptr_00,4);\n                }" { (expression_statement "bufptr_00 = (tir_ext *)ecoff_add_bytes(local_78,local_74,(char *)bufptr_00,4);" (assignment_expression "bufptr_00 = (tir_ext *)ecoff_add_bytes(local_78,local_74,(char *)bufptr_00,4)" identifier = (cast_expression "(tir_ext *)ecoff_add_bytes(local_78,local_74,(char *)bufptr_00,4)" ( (type_descriptor "tir_ext *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "ecoff_add_bytes(local_78,local_74,(char *)bufptr_00,4)" identifier (argument_list "(local_78,local_74,(char *)bufptr_00,4)" ( identifier , identifier , (cast_expression "(char *)bufptr_00" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))))) ;) })) (expression_statement "iVar46 = SUB14(bVar14 == BFD_ENDIAN_BIG,0);" (assignment_expression "iVar46 = SUB14(bVar14 == BFD_ENDIAN_BIG,0)" identifier = (call_expression "SUB14(bVar14 == BFD_ENDIAN_BIG,0)" identifier (argument_list "(bVar14 == BFD_ENDIAN_BIG,0)" ( (binary_expression "bVar14 == BFD_ENDIAN_BIG" identifier == identifier) , number_literal )))) ;) (switch_statement "switch(paVar53->type) {\n                case aux_tir:\n                  (*backend->swap_tir_out)(iVar46,&(paVar53->data).ti,bufptr_00);\n                  break;\n                case aux_rndx:\n                  (*backend->swap_rndx_out)(iVar46,&(paVar53->data).rndx,(rndx_ext *)bufptr_00);\n                  break;\n                case aux_dnLow:\n                case aux_dnHigh:\n                case aux_isym:\n                case aux_iss:\n                case aux_width:\n                case aux_count:\n                  iVar46 = (paVar53->data).dnLow;\n                  if (bVar14 == BFD_ENDIAN_BIG) {\n                    bfd_putb32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                  else {\n                    bfd_putl32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                }" switch (parenthesized_expression "(paVar53->type)" ( (field_expression "paVar53->type" identifier -> field_identifier) )) (compound_statement "{\n                case aux_tir:\n                  (*backend->swap_tir_out)(iVar46,&(paVar53->data).ti,bufptr_00);\n                  break;\n                case aux_rndx:\n                  (*backend->swap_rndx_out)(iVar46,&(paVar53->data).rndx,(rndx_ext *)bufptr_00);\n                  break;\n                case aux_dnLow:\n                case aux_dnHigh:\n                case aux_isym:\n                case aux_iss:\n                case aux_width:\n                case aux_count:\n                  iVar46 = (paVar53->data).dnLow;\n                  if (bVar14 == BFD_ENDIAN_BIG) {\n                    bfd_putb32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                  else {\n                    bfd_putl32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                }" { (case_statement "case aux_tir:\n                  (*backend->swap_tir_out)(iVar46,&(paVar53->data).ti,bufptr_00);\n                  break;" case identifier : (expression_statement "(*backend->swap_tir_out)(iVar46,&(paVar53->data).ti,bufptr_00);" (call_expression "(*backend->swap_tir_out)(iVar46,&(paVar53->data).ti,bufptr_00)" (parenthesized_expression "(*backend->swap_tir_out)" ( (pointer_expression "*backend->swap_tir_out" * (field_expression "backend->swap_tir_out" identifier -> field_identifier)) )) (argument_list "(iVar46,&(paVar53->data).ti,bufptr_00)" ( identifier , (pointer_expression "&(paVar53->data).ti" & (field_expression "(paVar53->data).ti" (parenthesized_expression "(paVar53->data)" ( (field_expression "paVar53->data" identifier -> field_identifier) )) . field_identifier)) , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case aux_rndx:\n                  (*backend->swap_rndx_out)(iVar46,&(paVar53->data).rndx,(rndx_ext *)bufptr_00);\n                  break;" case identifier : (expression_statement "(*backend->swap_rndx_out)(iVar46,&(paVar53->data).rndx,(rndx_ext *)bufptr_00);" (call_expression "(*backend->swap_rndx_out)(iVar46,&(paVar53->data).rndx,(rndx_ext *)bufptr_00)" (parenthesized_expression "(*backend->swap_rndx_out)" ( (pointer_expression "*backend->swap_rndx_out" * (field_expression "backend->swap_rndx_out" identifier -> field_identifier)) )) (argument_list "(iVar46,&(paVar53->data).rndx,(rndx_ext *)bufptr_00)" ( identifier , (pointer_expression "&(paVar53->data).rndx" & (field_expression "(paVar53->data).rndx" (parenthesized_expression "(paVar53->data)" ( (field_expression "paVar53->data" identifier -> field_identifier) )) . field_identifier)) , (cast_expression "(rndx_ext *)bufptr_00" ( (type_descriptor "rndx_ext *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (break_statement "break;" break ;)) (case_statement "case aux_dnLow:" case identifier :) (case_statement "case aux_dnHigh:" case identifier :) (case_statement "case aux_isym:" case identifier :) (case_statement "case aux_iss:" case identifier :) (case_statement "case aux_width:" case identifier :) (case_statement "case aux_count:\n                  iVar46 = (paVar53->data).dnLow;\n                  if (bVar14 == BFD_ENDIAN_BIG) {\n                    bfd_putb32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                  else {\n                    bfd_putl32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }" case identifier : (expression_statement "iVar46 = (paVar53->data).dnLow;" (assignment_expression "iVar46 = (paVar53->data).dnLow" identifier = (field_expression "(paVar53->data).dnLow" (parenthesized_expression "(paVar53->data)" ( (field_expression "paVar53->data" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (bVar14 == BFD_ENDIAN_BIG) {\n                    bfd_putb32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }\n                  else {\n                    bfd_putl32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }" if (parenthesized_expression "(bVar14 == BFD_ENDIAN_BIG)" ( (binary_expression "bVar14 == BFD_ENDIAN_BIG" identifier == identifier) )) (compound_statement "{\n                    bfd_putb32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }" { (expression_statement "bfd_putb32(iVar46,iVar46 >> 0x1f,bufptr_00);" (call_expression "bfd_putb32(iVar46,iVar46 >> 0x1f,bufptr_00)" identifier (argument_list "(iVar46,iVar46 >> 0x1f,bufptr_00)" ( identifier , (binary_expression "iVar46 >> 0x1f" identifier >> number_literal) , identifier ))) ;) }) (else_clause "else {\n                    bfd_putl32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }" else (compound_statement "{\n                    bfd_putl32(iVar46,iVar46 >> 0x1f,bufptr_00);\n                  }" { (expression_statement "bfd_putl32(iVar46,iVar46 >> 0x1f,bufptr_00);" (call_expression "bfd_putl32(iVar46,iVar46 >> 0x1f,bufptr_00)" identifier (argument_list "(iVar46,iVar46 >> 0x1f,bufptr_00)" ( identifier , (binary_expression "iVar46 >> 0x1f" identifier >> number_literal) , identifier ))) ;) })))) })) (expression_statement "bufptr_00 = bufptr_00 + 1;" (assignment_expression "bufptr_00 = bufptr_00 + 1" identifier = (binary_expression "bufptr_00 + 1" identifier + number_literal)) ;) (expression_statement "iVar29 = iVar29 + 1;" (assignment_expression "iVar29 = iVar29 + 1" identifier = (binary_expression "iVar29 + 1" identifier + number_literal)) ;) (expression_statement "paVar53 = paVar53 + 1;" (assignment_expression "paVar53 = paVar53 + 1" identifier = (binary_expression "paVar53 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(paVar53 < local_ac)" ( (binary_expression "paVar53 < local_ac" identifier < identifier) )) ;) (expression_statement "ppVar36 = (proc_t *)*(forward **)&local_a8->pdr;" (assignment_expression "ppVar36 = (proc_t *)*(forward **)&local_a8->pdr" identifier = (cast_expression "(proc_t *)*(forward **)&local_a8->pdr" ( (type_descriptor "proc_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*(forward **)&local_a8->pdr" * (cast_expression "(forward **)&local_a8->pdr" ( (type_descriptor "forward **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_a8->pdr" & (field_expression "local_a8->pdr" identifier -> field_identifier)))))) ;) }) while (parenthesized_expression "(*(forward **)&local_a8->pdr != (forward *)0x0)" ( (binary_expression "*(forward **)&local_a8->pdr != (forward *)0x0" (pointer_expression "*(forward **)&local_a8->pdr" * (cast_expression "(forward **)&local_a8->pdr" ( (type_descriptor "forward **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_a8->pdr" & (field_expression "local_a8->pdr" identifier -> field_identifier)))) != (cast_expression "(forward *)0x0" ( (type_descriptor "forward *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;)) (expression_statement "ppVar36 = (proc_t *)(iVar29 - local_a0->ofile[0].iauxBase);" (assignment_expression "ppVar36 = (proc_t *)(iVar29 - local_a0->ofile[0].iauxBase)" identifier = (cast_expression "(proc_t *)(iVar29 - local_a0->ofile[0].iauxBase)" ( (type_descriptor "proc_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 - local_a0->ofile[0].iauxBase)" ( (binary_expression "iVar29 - local_a0->ofile[0].iauxBase" identifier - (field_expression "local_a0->ofile[0].iauxBase" (subscript_expression "local_a0->ofile[0]" (field_expression "local_a0->ofile" identifier -> field_identifier) [ number_literal ]) . field_identifier)) )))) ;) })) (expression_statement "local_a0->forward[3].ifd_ptr = (aux_t *)ppVar36;" (assignment_expression "local_a0->forward[3].ifd_ptr = (aux_t *)ppVar36" (field_expression "local_a0->forward[3].ifd_ptr" (subscript_expression "local_a0->forward[3]" (field_expression "local_a0->forward" identifier -> field_identifier) [ number_literal ]) . field_identifier) = (cast_expression "(aux_t *)ppVar36" ( (type_descriptor "aux_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_a0 = (page *)(local_a0->byte + 0x294);" (assignment_expression "local_a0 = (page *)(local_a0->byte + 0x294)" identifier = (cast_expression "(page *)(local_a0->byte + 0x294)" ( (type_descriptor "page *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a0->byte + 0x294)" ( (binary_expression "local_a0->byte + 0x294" (field_expression "local_a0->byte" identifier -> field_identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(local_a0 < local_9c)" ( (binary_expression "local_a0 < local_9c" identifier < identifier) )) ;) (expression_statement "plVar18 = (lineno_list_t *)local_94->file;" (assignment_expression "plVar18 = (lineno_list_t *)local_94->file" identifier = (cast_expression "(lineno_list_t *)local_94->file" ( (type_descriptor "lineno_list_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_94->file" identifier -> field_identifier))) ;) }) while (parenthesized_expression "((vlinks *)local_94->file != (vlinks *)0x0)" ( (binary_expression "(vlinks *)local_94->file != (vlinks *)0x0" (cast_expression "(vlinks *)local_94->file" ( (type_descriptor "vlinks *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_94->file" identifier -> field_identifier)) != (cast_expression "(vlinks *)0x0" ( (type_descriptor "vlinks *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;)) (expression_statement "local_68 = local_68 + iVar29 * 4;" (assignment_expression "local_68 = local_68 + iVar29 * 4" identifier = (binary_expression "local_68 + iVar29 * 4" identifier + (binary_expression "iVar29 * 4" identifier * number_literal))) ;) })) (goto_statement "goto LAB_00024eaa;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002554e;" goto statement_identifier ;) })))
(translation_unit "uint FUN_00023460(int param_1,undefined4 *param_2,int param_3)\n\n{\n  char *pcVar1;\n  ushort uVar2;\n  int *piVar3;\n  undefined4 *****pppppuVar4;\n  code *pcVar5;\n  undefined4 *puVar6;\n  uint *puVar7;\n  undefined1 uVar8;\n  short sVar9;\n  ulonglong uVar10;\n  byte bVar11;\n  int iVar12;\n  undefined4 uVar13;\n  char *pcVar14;\n  int iVar15;\n  uint uVar16;\n  undefined4 *****pppppuVar17;\n  undefined4 *****pppppuVar18;\n  char *pcVar19;\n  undefined4 *puVar20;\n  int iVar21;\n  undefined4 uVar22;\n  undefined4 *puVar23;\n  char *pcVar24;\n  int *piVar25;\n  int iVar26;\n  undefined4 ******ppppppuVar27;\n  char cVar28;\n  undefined4 *******pppppppuVar29;\n  undefined4 *******pppppppuVar30;\n  byte bVar31;\n  uint uVar32;\n  uint uVar33;\n  byte *pbVar34;\n  byte *pbVar35;\n  uint uVar36;\n  char cVar37;\n  uint uVar38;\n  byte *pbVar39;\n  bool bVar40;\n  bool bVar41;\n  bool bVar42;\n  byte bVar43;\n  undefined8 uVar44;\n  longlong lVar45;\n  longlong lVar46;\n  undefined4 *******local_b4;\n  undefined4 *****local_ac;\n  undefined4 ******local_a8;\n  undefined4 *****local_a4;\n  undefined4 ******local_a0;\n  undefined4 *****local_9c;\n  undefined4 ******local_98;\n  undefined4 *******local_94;\n  int local_8c;\n  uint local_88;\n  uint *local_7c;\n  undefined4 *local_70;\n  uint local_68;\n  int local_64;\n  int local_5c;\n  uint local_54;\n  char *local_38;\n  undefined4 *******local_34;\n  undefined4 ******local_30;\n  undefined4 ******local_2c;\n  undefined4 *local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar43 = 0;\n  uStack_14 = 0x23469;\n  uVar36 = *(uint *)(param_3 + 0x1c);\n  iVar26 = *(int *)(param_3 + 0x20);\n  if (DAT_00080ca0 == 0) {\n    FUN_00020ec0();\n  }\n  piVar25 = *(int **)(DAT_000809e4 + 8);\n  uVar13 = DAT_000809ec;\n  while (DAT_000809ec = uVar13, piVar25 != (int *)0x0) {\n    iVar15 = piVar25[1];\n    if (piVar25[4] != 0) {\n      FUN_00020e40();\n      iVar15 = piVar25[1];\n    }\n    piVar3 = (int *)piVar25[3];\n    DAT_00080aa0 = DAT_00080aa0 + 1;\n    *(int *)(iVar15 + 0x14) = piVar25[2];\n    *piVar25 = DAT_00080a94;\n    DAT_00080a94 = (int)piVar25;\n    piVar25 = piVar3;\n    uVar13 = DAT_000809ec;\n  }\n  DAT_00080ad8 = DAT_00080ad8 + 1;\n  iVar15 = DAT_000809e4;\n  *(int *)(DAT_000809e4 + 4) = DAT_00080acc;\n  DAT_00080acc = iVar15;\n  iVar21 = DAT_000809f0;\n  DAT_000809ec = 0;\n  for (iVar15 = DAT_000816a4; iVar15 != 0; iVar15 = FUN_00040c00(iVar15)) {\n    iVar12 = FUN_00041590(iVar15);\n    if (((*(int *)(iVar12 + 0x10) == 0) &&\n        (iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0)) &&\n       (iVar12 = FUN_000414f0(iVar15), (*(byte *)(iVar12 + 0x11) & 1) == 0)) {\n      iVar12 = FUN_00041590(iVar15);\n      DAT_000809f0 = *(int *)(iVar12 + 0xc);\n      uVar22 = FUN_0003fad0(iVar15);\n      FUN_00020930(iVar15,0,0,uVar22,0xfffff);\n    }\n  }\n  uVar8 = false;\n  DAT_000809ec = uVar13;\n  DAT_000809f0 = iVar21;\n  iVar15 = DAT_00080ca0;\njoined_r0x000235e4:\n  if (iVar15 != 0) {\n    piVar25 = *(int **)(iVar15 + 0x6c);\n    iVar21 = iVar15;\n    DAT_000809f0 = iVar15;\n    while (piVar25 != (int *)0x0) {\n      while( true ) {\n        piVar25 = (int *)*piVar25;\n        if (piVar25 == (int *)0x0) {\n          FUN_00020930(0,0,0,0,0);\n          iVar15 = *(int *)(iVar15 + 200);\n          goto joined_r0x000235e4;\n        }\n        *(int **)(iVar21 + 0x6c) = piVar25;\n        if (((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)) break;\n        uVar8 = true;\n        uVar13 = dcgettext(0,"missing .end or .bend at end of file",5);\n        FUN_00031540(uVar13);\n        piVar25 = *(int **)(DAT_000809f0 + 0x6c);\n        iVar21 = DAT_000809f0;\n        if (piVar25 == (int *)0x0) goto LAB_00023650;\n      }\n    }\nLAB_00023650:\n    iVar15 = *(int *)(iVar15 + 200);\n    goto joined_r0x000235e4;\n  }\n  pcVar14 = (char *)xmalloc(0x2000);\n  pppppppuVar29 = DAT_00080c9c;\n  pcVar1 = pcVar14 + 0x2000;\n  bVar41 = DAT_00080758 == 3;\n  *(undefined4 *)(param_1 + 0x10) = 0;\n  *(undefined4 *)(param_1 + 0x14) = 0;\n  *(undefined4 *)(param_1 + 4) = 0;\n  local_38 = pcVar14;\n  local_b4 = pppppppuVar29;\n  if ((bVar41) || (DAT_000809e8 == (int *)0x0)) {\n    if (pppppppuVar29 != (undefined4 *******)0x0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n      goto LAB_00023764;\n    }\n  }\n  else if (pppppppuVar29 != (undefined4 *******)0x0) {\n    uVar44 = FUN_0003fad0(*(undefined4 *)(*DAT_000809e8 + 4));\n    iVar15 = FUN_0003e1d0(*(undefined4 *)(*DAT_000809e8 + 4));\n    if ((int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +\n        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c)) == 0 &&\n        (uint)uVar44 + *(uint *)(iVar15 + 0x1c) == 0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n    }\n    else {\n      local_30 = pppppppuVar29[1];\n      local_24 = 0;\n      local_2c = pppppppuVar29[2];\n      local_20 = 0;\n      local_28 = &DAT_000813a0;\n      local_b4 = &local_34;\n      local_34 = pppppppuVar29;\n    }\nLAB_00023764:\n    local_9c = (undefined4 *****)0x0;\n    local_ac = (undefined4 *****)0x0;\n    local_94 = (undefined4 *******)0x0;\n    local_a0 = (undefined4 ******)0x0;\n    local_98 = (undefined4 ******)0x0;\nLAB_000237a6:\n    pppppppuVar30 = pppppppuVar29;\n    if (pppppppuVar30 == (undefined4 *******)0x0) {\n      pppppuVar17 = (undefined4 *****)0x1;\nLAB_000237e1:\n      ppppppuVar27 = local_b4[1];\n      local_a8 = local_b4[2];\n      local_a4 = (undefined4 *****)((int)local_9c + (int)pppppuVar17);\n      if (ppppppuVar27 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }\n      }\n      else {\n        bVar41 = local_98 != local_a8;\n        if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }\n        pppppuVar18 = (undefined4 *****)0x0;\n        if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }\n        ppppppuVar27[8] = pppppuVar18;\n        ppppppuVar27[0x12] = local_ac;\n        ppppppuVar27[0x13] = (undefined4 *****)0x0;\n        local_a0 = ppppppuVar27;\n        if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }\n      goto LAB_000238d0;\n    }\n    ppppppuVar27 = pppppppuVar30[3];\n    uVar33 = (int)pppppppuVar30[4] + (int)*ppppppuVar27;\n    uVar38 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27);\n    ppppppuVar27 = local_b4[3];\n    uVar16 = (int)local_b4[4] + (int)*ppppppuVar27;\n    uVar32 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)local_b4[4],(uint)*ppppppuVar27);\n    if (uVar32 < uVar38 || uVar32 - uVar38 < (uint)(uVar16 < uVar33)) {\n      pppppuVar17 = (undefined4 *****)\n                    (uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000);\n      goto LAB_000237e1;\n    }\n    goto LAB_000237a0;\n  }\n  local_a4 = (undefined4 *****)0x0;\n  local_ac = (undefined4 *****)0x0;\nLAB_00023a3f:\n  *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n  local_68 = FUN_0001ff70(local_ac,&local_38);\n  *(uint *)(param_1 + 0x28) = local_68;\n  *(uint *)(param_1 + 8) = local_68 - *(uint *)(param_1 + 0x10);\n  uVar16 = DAT_00080ca4;\n  *(uint *)(param_1 + 0xc) =\n       -(uint)(local_68 < *(uint *)(param_1 + 0x10)) - *(int *)(param_1 + 0x14);\n  *(undefined4 *)(param_1 + 0x2c) = 0;\n  *(undefined4 *)(param_1 + 0x18) = 0;\n  *(undefined4 *)(param_1 + 0x1c) = 0;\n  *(undefined4 *)(param_1 + 0x20) = 0;\n  *(uint *)(param_1 + 0x24) = uVar16;\n  uVar32 = (int)pcVar1 - (int)(pcVar14 + local_68) >> 0x1f;\n  uVar33 = (int)((ulonglong)uVar36 * (ulonglong)uVar16 >> 0x20) + iVar26 * uVar16;\n  if (uVar32 < uVar33 ||\n      uVar32 - uVar33 <\n      (uint)((uint)((int)pcVar1 - (int)(pcVar14 + local_68)) <\n            (uint)((ulonglong)uVar36 * (ulonglong)uVar16))) {\n    FUN_0001ff00(uVar16 * uVar36);\n    uVar16 = DAT_00080ca4;\n  }\n  local_68 = uVar16 * uVar36 + local_68;\n  uVar36 = *(uint *)(param_3 + 0x24);\n  local_a0 = (undefined4 ******)(pcVar14 + local_68);\n  *(uint *)(param_1 + 0x34) = local_68;\n  uVar16 = *(uint *)(param_3 + 0x28);\n  *(undefined4 *)(param_1 + 0x38) = 0;\n  pcVar5 = *(code **)(param_3 + 0x80);\n  if (DAT_00078240 != 0) {\n    local_8c = 0;\n    puVar20 = (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0x180);\n    iVar26 = DAT_00078240;\nLAB_00023b80:\n    local_5c = iVar26;\n    local_9c = *(undefined4 ******)(local_5c + 8);\n    if (*(int *)(local_5c + 4) == 0) {\n      local_54 = (uint)DAT_00078250 * 0x294 + (int)local_9c;\n      if (local_54 <= local_9c) {\n        local_68 = local_68 + local_8c * uVar36;\n        uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28));\n        goto LAB_0002441d;\n      }\n    }\n    else {\n      local_54 = (uint)DAT_0007824e * 0x294 + (int)local_9c;\n      iVar26 = *(int *)(local_5c + 4);\n      if (local_54 <= local_9c) goto LAB_00023b80;\n    }\nLAB_00023bb7:\n    *(int *)((int)local_9c + 0x18) = local_8c;\n    iVar26 = *(int *)((int)local_9c + 0x8c);\n    if (iVar26 != 0) {\n      local_a8 = (undefined4 ******)local_8c;\nLAB_00023bdc:\n      local_64 = iVar26;\n      puVar6 = *(undefined4 **)(local_64 + 8);\n      if (*(int *)(local_64 + 4) == 0) {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10;\n        if (local_70 <= puVar6) {\n          local_8c = (int)local_a8;\n          iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n          goto LAB_000243a4;\n        }\n      }\n      else {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10;\n        iVar26 = *(int *)(local_64 + 4);\n        if (local_70 <= puVar6) goto LAB_00023bdc;\n      }\n      uVar32 = puVar6[4];\n      do {\n        if ((undefined4 *****)uVar32 != local_9c) {\n                    \n          FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }\n        iVar26 = puVar6[1];\n        if (iVar26 == 0) {\n          local_b4 = (undefined4 *******)puVar6[6];\n          if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n          piVar25 = (int *)puVar6[8];\n          if (piVar25 == (int *)0x0) goto LAB_0002402d;\nLAB_00024237:\n          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n          goto LAB_00023ff8;\n        }\n        if ((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47) {\n          if ((int *)puVar6[5] == (int *)0x0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }\n          uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n          iVar15 = FUN_0003e1d0(iVar26);\n          iVar21 = FUN_0003e1d0(uVar13);\n          if (iVar15 != iVar21) {\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }\n          lVar45 = FUN_0003fad0(iVar26);\n          lVar46 = FUN_0003fad0(uVar13);\n          *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n        }\n        else {\n          uVar44 = FUN_0003fad0(iVar26);\n          iVar21 = FUN_0003e1d0(iVar26);\n          uVar33 = (uint)uVar44 + puVar6[2];\n          uVar32 = *(uint *)(iVar21 + 0x1c);\n          iVar15 = *(int *)(iVar21 + 0x20);\n          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);\n          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);\n        }\n        bVar11 = FUN_0003dc90(iVar26);\n        *(byte *)(puVar6 + 10) = *(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04';\n        if (((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&\n           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) {\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;\n        }\n        if (((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&\n           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))) {\n          puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);\n          pbVar35 = (byte *)*puVar23;\n          if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }\n          else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }\n          iVar15 = FUN_0003ddd0(iVar26);\n          if (iVar15 == 0) {\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }\n          else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }\nLAB_00023df1:\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;\n          *(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);\n        }\n        iVar15 = FUN_0003dc20(iVar26);\n        if (((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||\n           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)) {\n          iVar15 = FUN_0003dd80(iVar26);\n          if (iVar15 != 0) goto LAB_0002410f;\n          if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }\n          else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }\nLAB_0002402d:\n          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;\n          if (uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }\n          (*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);\n          local_a0 = (undefined4 ******)((int)local_a0 + uVar36);\n          puVar6[9] = local_a8;\n          puVar7 = (uint *)puVar6[5];\n          if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {\n            puVar7[3] = (int)local_a8 - local_8c;\n          }\n          local_a8 = (undefined4 ******)((int)local_a8 + 1);\n          if ((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          FUN_0003dd80(iVar26);\nLAB_0002410f:\n          if (puVar6[6] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (puVar6[8] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          iVar15 = FUN_00041590(iVar26);\n          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }\n        }\n        if (local_70 <= puVar6 + 0x10) goto LAB_00024380;\n        uVar32 = puVar6[0x14];\n        puVar6 = puVar6 + 0x10;\n      } while( true );\n    }\n    goto LAB_000243a4;\n  }\n  *(undefined4 *)(param_1 + 0x30) = 0;\nLAB_0002554e:\n  *(undefined4 *)(param_1 + 0x3c) = 0;\n  *(undefined4 *)(param_1 + 0x40) = 0;\n  *(undefined4 *)(param_1 + 0x44) = 0;\n  *(undefined4 *)(param_1 + 0x50) = 0;\n  *(uint *)(param_1 + 0x4c) = local_68;\nLAB_00024eaa:\n  uVar16 = FUN_0001ff70(local_68,0);\n  *(uint *)(param_1 + 0x48) =\n       uVar16 - *(uint *)(param_1 + 0x4c) >> 2 |\n       (-(uint)(uVar16 < *(uint *)(param_1 + 0x4c)) - *(int *)(param_1 + 0x50)) * 0x40000000;\n  *(uint *)(param_1 + 0x58) = uVar16;\n  iVar26 = DAT_00078240;\n  local_9c = (undefined4 *****)DAT_00078240;\n  *(undefined4 *)(param_1 + 0x5c) = 0;\n  uVar36 = uVar16;\n  if (iVar26 != 0) {\n    local_a8 = (undefined4 ******)0x0;\n    do {\n      uVar2 = DAT_00078250;\n      if (*(int *)((int)local_9c + 4) != 0) {\n        uVar2 = DAT_0007824e;\n      }\n      local_b4 = *(undefined4 ********)((int)local_9c + 8);\n      uVar32 = (uint)uVar2 * 0x294 + (int)local_b4;\n      pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      if (local_b4 < uVar32) {\n        do {\n          *(undefined4 *******)((int)local_b4 + 0xc) = local_a8;\n          iVar26 = *(int *)((int)local_b4 + 0x78);\n          pcVar24 = pcVar14 + uVar36;\n          if (iVar26 == 0) {\n            iVar15 = 0;\n            iVar26 = 0;\n          }\n          else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }\n          *(int *)((int)local_b4 + 0x10) = iVar15;\n          uVar33 = (int)local_b4 + 0x294;\n          *(int *)((int)local_b4 + 0x14) = iVar26;\n          local_b4 = (undefined4 *******)uVar33;\n        } while (uVar33 < uVar32);\n        pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      }\n      local_9c = pppppuVar17;\n    } while (local_9c != (undefined4 *****)0x0);\n  }\n  local_9c = (undefined4 *****)FUN_0001ff70(uVar36,0);\n  uVar36 = *(uint *)(param_3 + 0x38);\n  *(undefined4 *)(param_1 + 0x78) = 0;\n  *(int *)(param_1 + 0x54) = (int)local_9c - *(int *)(param_1 + 0x58);\n  *(undefined4 *)(param_1 + 0x7c) = 0;\n  *(undefined4 *)(param_1 + 0x80) = 0;\n  *(undefined4 ******)(param_1 + 0x70) = local_9c;\n  pcVar24 = pcVar14 + (int)local_9c;\n  *(undefined4 *)(param_1 + 0x74) = 0;\n  pcVar5 = *(code **)(param_3 + 0x88);\n  uVar16 = *(uint *)(param_3 + 0x34);\n  if (DAT_00078240 == 0) {\n    uVar13 = 0;\n  }\n  else {\n    local_ac = (undefined4 *****)0x0;\n    ppppppuVar27 = (undefined4 ******)DAT_00078240;\nLAB_000251e2:\n    do {\n      local_98 = ppppppuVar27;\n      uVar32 = *(uint *)((int)local_98 + 8);\n      pcVar19 = pcVar24;\n      if (*(int *)((int)local_98 + 4) == 0) {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);\n        if (local_b4 <= uVar32) {\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);\n        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n        if (local_b4 <= uVar32) goto LAB_000251e2;\n      }\n      do {\n        uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;\n        if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           ) {\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }\n        pcVar24 = pcVar19 + uVar16;\n        uVar33 = uVar32 + 0x294;\n        (*pcVar5)(DAT_00081544,uVar32,pcVar19);\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        pcVar19 = pcVar24;\n        uVar32 = uVar33;\n      } while (uVar33 < local_b4);\n      ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n    } while (*(int *)((int)local_98 + 4) != 0);\n    local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n    uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                          -(uint)(local_9c < *(uint *)(param_1 + 0x70)) - *(int *)(param_1 + 0x74),\n                          *(undefined4 *)(param_3 + 0x34),*(undefined4 *)(param_3 + 0x38));\n  }\nLAB_000252e8:\n  *(undefined4 *)(param_1 + 0x6c) = uVar13;\n  *(undefined4 *)(param_1 + 0x60) = 0;\n  iVar26 = DAT_000816a4;\n  *(undefined4 *)(param_1 + 100) = 0;\n  *(undefined4 *)(param_1 + 0x68) = 0;\n  *(undefined4 *)(param_1 + 0x84) = 0;\n  *(undefined4 *)(param_1 + 0x88) = 0;\n  *(undefined4 *)(param_1 + 0x8c) = 0;\n  for (; iVar26 != 0; iVar26 = FUN_00040c00(iVar26)) {\n    iVar15 = FUN_00041590(iVar26);\n    if (*(int *)(iVar15 + 0x10) != 0) {\n      iVar15 = FUN_0003dc20(iVar26);\n      if (((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n         (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) {\n        iVar15 = FUN_00041590(iVar26);\n        iVar15 = *(int *)(iVar15 + 0x10);\n        *(undefined4 *)(iVar15 + 0x34) = 0;\n        *(undefined4 *)(iVar15 + 0x38) = 0;\n        *(uint *)(iVar15 + 0x3c) = *(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000;\n      }\n      iVar15 = FUN_00041590(iVar26);\n      FUN_0004ed20(iVar26,*(int *)(iVar15 + 0x10) + 0x28);\n    }\n  }\n  if ((*(int *)(param_3 + 4) - 1U & (uint)local_9c) == 0) {\n    *(undefined2 *)(param_1 + 2) = 0x30b;\n    *param_2 = pcVar14;\n    return (uint)local_9c;\n  }\n                    \n  FUN_00031740("../../gas/ecoff.c",0x129d,"ecoff_build_debug",local_9c);\ncode_r0x00024a60:\n  local_ac = (undefined4 *****)((int)local_ac + 3);\n  pcVar24 = local_38 + 2;\n  local_38[1] = (char)((uint)iVar15 >> 8);\n  local_38 = local_38 + 3;\n  *pcVar24 = (char)iVar15;\nLAB_000238d0:\n  if (0 < (int)pppppuVar17) {\n    uVar16 = (int)pppppuVar17 - 1;\n    local_ac = (undefined4 *****)((int)local_ac + 1);\n    pppppuVar17 = (undefined4 *****)((uVar16 >> 4) + (int)local_ac);\n    if (pcVar1 <= local_38) goto LAB_00023925;\n    while (pcVar24 = local_38 + 1, pcVar19 = local_38, local_38 = pcVar24, 0xf < uVar16) {\n      while( true ) {\n        uVar16 = uVar16 - 0x10;\n        *pcVar19 = '\x0f';\n        if (pppppuVar17 == local_ac) goto LAB_00023953;\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        if (local_38 < pcVar1) break;\nLAB_00023925:\n        pcVar19 = (char *)FUN_0001ff00(1);\n        local_38 = pcVar19 + 1;\n        if (uVar16 < 0x10) goto LAB_00023944;\n      }\n    }\nLAB_00023944:\n    *pcVar19 = (char)uVar16;\n  }\nLAB_00023953:\n  pppppppuVar30 = (undefined4 *******)*local_b4;\n  if (pppppppuVar30 == (undefined4 *******)0x0) goto LAB_00023a10;\n  local_9c = local_a4;\n  local_94 = local_b4;\n  local_98 = local_a8;\nLAB_000237a0:\n  pppppppuVar29 = (undefined4 *******)*pppppppuVar30;\n  local_b4 = pppppppuVar30;\n  goto LAB_000237a6;\nLAB_00023a10:\n  if (local_a8 != (undefined4 ******)0x0) {\n    local_a8[0xd] = local_b4[5];\n  }\n  if (local_a0 != (undefined4 ******)0x0) {\n    local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n    local_a0[0x15] = (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n    local_a0[9] = local_a4;\n  }\n  goto LAB_00023a3f;\nLAB_00024380:\n  iVar26 = *(int *)(local_64 + 4);\n  if (*(int *)(local_64 + 4) == 0) goto code_r0x00024393;\n  goto LAB_00023bdc;\ncode_r0x00024393:\n  iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n  local_8c = (int)local_a8;\nLAB_000243a4:\n  *(int *)((int)local_9c + 0x1c) = iVar26;\n  local_9c = (undefined4 *****)((int)local_9c + 0x294);\n  if (local_54 <= local_9c) goto code_r0x000243bf;\n  goto LAB_00023bb7;\ncode_r0x000243bf:\n  iVar26 = *(int *)(local_5c + 4);\n  if (*(int *)(local_5c + 4) == 0) goto code_r0x000243ce;\n  goto LAB_00023b80;\ncode_r0x000243ce:\n  local_68 = local_68 + local_8c * uVar36;\n  uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                        -(uint)(local_68 < *(uint *)(param_1 + 0x34)) - *(int *)(param_1 + 0x38),\n                        *(undefined4 *)(param_3 + 0x24),*(undefined4 *)(param_3 + 0x28));\nLAB_0002441d:\n  puVar20 = (undefined4 *)DAT_00078240;\n  *(undefined4 *)(param_1 + 0x30) = uVar13;\n  pcVar24 = pcVar14 + *(int *)(param_1 + 0x28);\n  uVar36 = *(uint *)(param_3 + 0x1c);\n  uVar16 = *(uint *)(param_3 + 0x20);\n  pcVar5 = *(code **)(param_3 + 0x7c);\n  if (puVar20 != (undefined4 *)0x0) {\n    sVar9 = 0;\nLAB_00024474:\n    do {\n      local_70 = puVar20;\n      local_a4 = *(undefined4 ******)((int)local_70 + 8);\n      if (*(int *)((int)local_70 + 4) == 0) {\n        local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5);\n        if (local_7c <= local_a4) break;\n      }\n      else {\n        local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);\n        puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }\n      do {\n        bVar41 = true;\n        *(short *)(local_a4 + 0xc) = sVar9;\n        uVar32 = (uint)local_a4[0x28];\n        if (uVar32 != 0) {\nLAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);\n          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);\n        }\n        *(short *)((int)local_a4 + 0x32) = (short)uVar32;\n        local_a4 = local_a4 + 0xa5;\n      } while (local_a4 < local_7c);\n      puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n    } while (*(int *)((int)local_70 + 4) != 0);\n    pppppppuVar29 = (undefined4 *******)DAT_00078240;\n    *(undefined4 *)(param_1 + 0x3c) = 0;\n    *(undefined4 *)(param_1 + 0x40) = 0;\n    *(undefined4 *)(param_1 + 0x44) = 0;\n    *(undefined4 *)(param_1 + 0x50) = 0;\n    *(uint *)(param_1 + 0x4c) = local_68;\n    iVar26 = *(int *)(*(int *)(DAT_00081544 + 4) + 8);\n    bVar41 = iVar26 == 0;\n    pcVar24 = pcVar14 + local_68;\n    if (pppppppuVar29 != (undefined4 *******)0x0) {\n      iVar15 = 0;\nLAB_00024d54:\n      do {\n        local_94 = pppppppuVar29;\n        local_a0 = *(undefined4 *******)((int)local_94 + 8);\n        if (*(int *)((int)local_94 + 4) == 0) {\n          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          *(int *)((int)local_a0 + 0x34) = iVar15;\n          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;\n          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);\n          if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }\n          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;\n          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);\n        } while (local_a0 < local_9c);\n        pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n      } while (*(int *)((int)local_94 + 4) != 0);\n      local_68 = local_68 + iVar15 * 4;\n    }\n    goto LAB_00024eaa;\n  }\n  goto LAB_0002554e;\n}\n\n" (function_definition "uint FUN_00023460(int param_1,undefined4 *param_2,int param_3)\n\n{\n  char *pcVar1;\n  ushort uVar2;\n  int *piVar3;\n  undefined4 *****pppppuVar4;\n  code *pcVar5;\n  undefined4 *puVar6;\n  uint *puVar7;\n  undefined1 uVar8;\n  short sVar9;\n  ulonglong uVar10;\n  byte bVar11;\n  int iVar12;\n  undefined4 uVar13;\n  char *pcVar14;\n  int iVar15;\n  uint uVar16;\n  undefined4 *****pppppuVar17;\n  undefined4 *****pppppuVar18;\n  char *pcVar19;\n  undefined4 *puVar20;\n  int iVar21;\n  undefined4 uVar22;\n  undefined4 *puVar23;\n  char *pcVar24;\n  int *piVar25;\n  int iVar26;\n  undefined4 ******ppppppuVar27;\n  char cVar28;\n  undefined4 *******pppppppuVar29;\n  undefined4 *******pppppppuVar30;\n  byte bVar31;\n  uint uVar32;\n  uint uVar33;\n  byte *pbVar34;\n  byte *pbVar35;\n  uint uVar36;\n  char cVar37;\n  uint uVar38;\n  byte *pbVar39;\n  bool bVar40;\n  bool bVar41;\n  bool bVar42;\n  byte bVar43;\n  undefined8 uVar44;\n  longlong lVar45;\n  longlong lVar46;\n  undefined4 *******local_b4;\n  undefined4 *****local_ac;\n  undefined4 ******local_a8;\n  undefined4 *****local_a4;\n  undefined4 ******local_a0;\n  undefined4 *****local_9c;\n  undefined4 ******local_98;\n  undefined4 *******local_94;\n  int local_8c;\n  uint local_88;\n  uint *local_7c;\n  undefined4 *local_70;\n  uint local_68;\n  int local_64;\n  int local_5c;\n  uint local_54;\n  char *local_38;\n  undefined4 *******local_34;\n  undefined4 ******local_30;\n  undefined4 ******local_2c;\n  undefined4 *local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar43 = 0;\n  uStack_14 = 0x23469;\n  uVar36 = *(uint *)(param_3 + 0x1c);\n  iVar26 = *(int *)(param_3 + 0x20);\n  if (DAT_00080ca0 == 0) {\n    FUN_00020ec0();\n  }\n  piVar25 = *(int **)(DAT_000809e4 + 8);\n  uVar13 = DAT_000809ec;\n  while (DAT_000809ec = uVar13, piVar25 != (int *)0x0) {\n    iVar15 = piVar25[1];\n    if (piVar25[4] != 0) {\n      FUN_00020e40();\n      iVar15 = piVar25[1];\n    }\n    piVar3 = (int *)piVar25[3];\n    DAT_00080aa0 = DAT_00080aa0 + 1;\n    *(int *)(iVar15 + 0x14) = piVar25[2];\n    *piVar25 = DAT_00080a94;\n    DAT_00080a94 = (int)piVar25;\n    piVar25 = piVar3;\n    uVar13 = DAT_000809ec;\n  }\n  DAT_00080ad8 = DAT_00080ad8 + 1;\n  iVar15 = DAT_000809e4;\n  *(int *)(DAT_000809e4 + 4) = DAT_00080acc;\n  DAT_00080acc = iVar15;\n  iVar21 = DAT_000809f0;\n  DAT_000809ec = 0;\n  for (iVar15 = DAT_000816a4; iVar15 != 0; iVar15 = FUN_00040c00(iVar15)) {\n    iVar12 = FUN_00041590(iVar15);\n    if (((*(int *)(iVar12 + 0x10) == 0) &&\n        (iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0)) &&\n       (iVar12 = FUN_000414f0(iVar15), (*(byte *)(iVar12 + 0x11) & 1) == 0)) {\n      iVar12 = FUN_00041590(iVar15);\n      DAT_000809f0 = *(int *)(iVar12 + 0xc);\n      uVar22 = FUN_0003fad0(iVar15);\n      FUN_00020930(iVar15,0,0,uVar22,0xfffff);\n    }\n  }\n  uVar8 = false;\n  DAT_000809ec = uVar13;\n  DAT_000809f0 = iVar21;\n  iVar15 = DAT_00080ca0;\njoined_r0x000235e4:\n  if (iVar15 != 0) {\n    piVar25 = *(int **)(iVar15 + 0x6c);\n    iVar21 = iVar15;\n    DAT_000809f0 = iVar15;\n    while (piVar25 != (int *)0x0) {\n      while( true ) {\n        piVar25 = (int *)*piVar25;\n        if (piVar25 == (int *)0x0) {\n          FUN_00020930(0,0,0,0,0);\n          iVar15 = *(int *)(iVar15 + 200);\n          goto joined_r0x000235e4;\n        }\n        *(int **)(iVar21 + 0x6c) = piVar25;\n        if (((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)) break;\n        uVar8 = true;\n        uVar13 = dcgettext(0,"missing .end or .bend at end of file",5);\n        FUN_00031540(uVar13);\n        piVar25 = *(int **)(DAT_000809f0 + 0x6c);\n        iVar21 = DAT_000809f0;\n        if (piVar25 == (int *)0x0) goto LAB_00023650;\n      }\n    }\nLAB_00023650:\n    iVar15 = *(int *)(iVar15 + 200);\n    goto joined_r0x000235e4;\n  }\n  pcVar14 = (char *)xmalloc(0x2000);\n  pppppppuVar29 = DAT_00080c9c;\n  pcVar1 = pcVar14 + 0x2000;\n  bVar41 = DAT_00080758 == 3;\n  *(undefined4 *)(param_1 + 0x10) = 0;\n  *(undefined4 *)(param_1 + 0x14) = 0;\n  *(undefined4 *)(param_1 + 4) = 0;\n  local_38 = pcVar14;\n  local_b4 = pppppppuVar29;\n  if ((bVar41) || (DAT_000809e8 == (int *)0x0)) {\n    if (pppppppuVar29 != (undefined4 *******)0x0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n      goto LAB_00023764;\n    }\n  }\n  else if (pppppppuVar29 != (undefined4 *******)0x0) {\n    uVar44 = FUN_0003fad0(*(undefined4 *)(*DAT_000809e8 + 4));\n    iVar15 = FUN_0003e1d0(*(undefined4 *)(*DAT_000809e8 + 4));\n    if ((int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +\n        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c)) == 0 &&\n        (uint)uVar44 + *(uint *)(iVar15 + 0x1c) == 0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n    }\n    else {\n      local_30 = pppppppuVar29[1];\n      local_24 = 0;\n      local_2c = pppppppuVar29[2];\n      local_20 = 0;\n      local_28 = &DAT_000813a0;\n      local_b4 = &local_34;\n      local_34 = pppppppuVar29;\n    }\nLAB_00023764:\n    local_9c = (undefined4 *****)0x0;\n    local_ac = (undefined4 *****)0x0;\n    local_94 = (undefined4 *******)0x0;\n    local_a0 = (undefined4 ******)0x0;\n    local_98 = (undefined4 ******)0x0;\nLAB_000237a6:\n    pppppppuVar30 = pppppppuVar29;\n    if (pppppppuVar30 == (undefined4 *******)0x0) {\n      pppppuVar17 = (undefined4 *****)0x1;\nLAB_000237e1:\n      ppppppuVar27 = local_b4[1];\n      local_a8 = local_b4[2];\n      local_a4 = (undefined4 *****)((int)local_9c + (int)pppppuVar17);\n      if (ppppppuVar27 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }\n      }\n      else {\n        bVar41 = local_98 != local_a8;\n        if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }\n        pppppuVar18 = (undefined4 *****)0x0;\n        if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }\n        ppppppuVar27[8] = pppppuVar18;\n        ppppppuVar27[0x12] = local_ac;\n        ppppppuVar27[0x13] = (undefined4 *****)0x0;\n        local_a0 = ppppppuVar27;\n        if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }\n      goto LAB_000238d0;\n    }\n    ppppppuVar27 = pppppppuVar30[3];\n    uVar33 = (int)pppppppuVar30[4] + (int)*ppppppuVar27;\n    uVar38 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27);\n    ppppppuVar27 = local_b4[3];\n    uVar16 = (int)local_b4[4] + (int)*ppppppuVar27;\n    uVar32 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)local_b4[4],(uint)*ppppppuVar27);\n    if (uVar32 < uVar38 || uVar32 - uVar38 < (uint)(uVar16 < uVar33)) {\n      pppppuVar17 = (undefined4 *****)\n                    (uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000);\n      goto LAB_000237e1;\n    }\n    goto LAB_000237a0;\n  }\n  local_a4 = (undefined4 *****)0x0;\n  local_ac = (undefined4 *****)0x0;\nLAB_00023a3f:\n  *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n  local_68 = FUN_0001ff70(local_ac,&local_38);\n  *(uint *)(param_1 + 0x28) = local_68;\n  *(uint *)(param_1 + 8) = local_68 - *(uint *)(param_1 + 0x10);\n  uVar16 = DAT_00080ca4;\n  *(uint *)(param_1 + 0xc) =\n       -(uint)(local_68 < *(uint *)(param_1 + 0x10)) - *(int *)(param_1 + 0x14);\n  *(undefined4 *)(param_1 + 0x2c) = 0;\n  *(undefined4 *)(param_1 + 0x18) = 0;\n  *(undefined4 *)(param_1 + 0x1c) = 0;\n  *(undefined4 *)(param_1 + 0x20) = 0;\n  *(uint *)(param_1 + 0x24) = uVar16;\n  uVar32 = (int)pcVar1 - (int)(pcVar14 + local_68) >> 0x1f;\n  uVar33 = (int)((ulonglong)uVar36 * (ulonglong)uVar16 >> 0x20) + iVar26 * uVar16;\n  if (uVar32 < uVar33 ||\n      uVar32 - uVar33 <\n      (uint)((uint)((int)pcVar1 - (int)(pcVar14 + local_68)) <\n            (uint)((ulonglong)uVar36 * (ulonglong)uVar16))) {\n    FUN_0001ff00(uVar16 * uVar36);\n    uVar16 = DAT_00080ca4;\n  }\n  local_68 = uVar16 * uVar36 + local_68;\n  uVar36 = *(uint *)(param_3 + 0x24);\n  local_a0 = (undefined4 ******)(pcVar14 + local_68);\n  *(uint *)(param_1 + 0x34) = local_68;\n  uVar16 = *(uint *)(param_3 + 0x28);\n  *(undefined4 *)(param_1 + 0x38) = 0;\n  pcVar5 = *(code **)(param_3 + 0x80);\n  if (DAT_00078240 != 0) {\n    local_8c = 0;\n    puVar20 = (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0x180);\n    iVar26 = DAT_00078240;\nLAB_00023b80:\n    local_5c = iVar26;\n    local_9c = *(undefined4 ******)(local_5c + 8);\n    if (*(int *)(local_5c + 4) == 0) {\n      local_54 = (uint)DAT_00078250 * 0x294 + (int)local_9c;\n      if (local_54 <= local_9c) {\n        local_68 = local_68 + local_8c * uVar36;\n        uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28));\n        goto LAB_0002441d;\n      }\n    }\n    else {\n      local_54 = (uint)DAT_0007824e * 0x294 + (int)local_9c;\n      iVar26 = *(int *)(local_5c + 4);\n      if (local_54 <= local_9c) goto LAB_00023b80;\n    }\nLAB_00023bb7:\n    *(int *)((int)local_9c + 0x18) = local_8c;\n    iVar26 = *(int *)((int)local_9c + 0x8c);\n    if (iVar26 != 0) {\n      local_a8 = (undefined4 ******)local_8c;\nLAB_00023bdc:\n      local_64 = iVar26;\n      puVar6 = *(undefined4 **)(local_64 + 8);\n      if (*(int *)(local_64 + 4) == 0) {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10;\n        if (local_70 <= puVar6) {\n          local_8c = (int)local_a8;\n          iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n          goto LAB_000243a4;\n        }\n      }\n      else {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10;\n        iVar26 = *(int *)(local_64 + 4);\n        if (local_70 <= puVar6) goto LAB_00023bdc;\n      }\n      uVar32 = puVar6[4];\n      do {\n        if ((undefined4 *****)uVar32 != local_9c) {\n                    \n          FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }\n        iVar26 = puVar6[1];\n        if (iVar26 == 0) {\n          local_b4 = (undefined4 *******)puVar6[6];\n          if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n          piVar25 = (int *)puVar6[8];\n          if (piVar25 == (int *)0x0) goto LAB_0002402d;\nLAB_00024237:\n          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n          goto LAB_00023ff8;\n        }\n        if ((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47) {\n          if ((int *)puVar6[5] == (int *)0x0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }\n          uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n          iVar15 = FUN_0003e1d0(iVar26);\n          iVar21 = FUN_0003e1d0(uVar13);\n          if (iVar15 != iVar21) {\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }\n          lVar45 = FUN_0003fad0(iVar26);\n          lVar46 = FUN_0003fad0(uVar13);\n          *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n        }\n        else {\n          uVar44 = FUN_0003fad0(iVar26);\n          iVar21 = FUN_0003e1d0(iVar26);\n          uVar33 = (uint)uVar44 + puVar6[2];\n          uVar32 = *(uint *)(iVar21 + 0x1c);\n          iVar15 = *(int *)(iVar21 + 0x20);\n          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);\n          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);\n        }\n        bVar11 = FUN_0003dc90(iVar26);\n        *(byte *)(puVar6 + 10) = *(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04';\n        if (((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&\n           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) {\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;\n        }\n        if (((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&\n           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))) {\n          puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);\n          pbVar35 = (byte *)*puVar23;\n          if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }\n          else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }\n          iVar15 = FUN_0003ddd0(iVar26);\n          if (iVar15 == 0) {\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }\n          else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }\nLAB_00023df1:\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;\n          *(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);\n        }\n        iVar15 = FUN_0003dc20(iVar26);\n        if (((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||\n           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)) {\n          iVar15 = FUN_0003dd80(iVar26);\n          if (iVar15 != 0) goto LAB_0002410f;\n          if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }\n          else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }\nLAB_0002402d:\n          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;\n          if (uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }\n          (*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);\n          local_a0 = (undefined4 ******)((int)local_a0 + uVar36);\n          puVar6[9] = local_a8;\n          puVar7 = (uint *)puVar6[5];\n          if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {\n            puVar7[3] = (int)local_a8 - local_8c;\n          }\n          local_a8 = (undefined4 ******)((int)local_a8 + 1);\n          if ((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          FUN_0003dd80(iVar26);\nLAB_0002410f:\n          if (puVar6[6] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (puVar6[8] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          iVar15 = FUN_00041590(iVar26);\n          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }\n        }\n        if (local_70 <= puVar6 + 0x10) goto LAB_00024380;\n        uVar32 = puVar6[0x14];\n        puVar6 = puVar6 + 0x10;\n      } while( true );\n    }\n    goto LAB_000243a4;\n  }\n  *(undefined4 *)(param_1 + 0x30) = 0;\nLAB_0002554e:\n  *(undefined4 *)(param_1 + 0x3c) = 0;\n  *(undefined4 *)(param_1 + 0x40) = 0;\n  *(undefined4 *)(param_1 + 0x44) = 0;\n  *(undefined4 *)(param_1 + 0x50) = 0;\n  *(uint *)(param_1 + 0x4c) = local_68;\nLAB_00024eaa:\n  uVar16 = FUN_0001ff70(local_68,0);\n  *(uint *)(param_1 + 0x48) =\n       uVar16 - *(uint *)(param_1 + 0x4c) >> 2 |\n       (-(uint)(uVar16 < *(uint *)(param_1 + 0x4c)) - *(int *)(param_1 + 0x50)) * 0x40000000;\n  *(uint *)(param_1 + 0x58) = uVar16;\n  iVar26 = DAT_00078240;\n  local_9c = (undefined4 *****)DAT_00078240;\n  *(undefined4 *)(param_1 + 0x5c) = 0;\n  uVar36 = uVar16;\n  if (iVar26 != 0) {\n    local_a8 = (undefined4 ******)0x0;\n    do {\n      uVar2 = DAT_00078250;\n      if (*(int *)((int)local_9c + 4) != 0) {\n        uVar2 = DAT_0007824e;\n      }\n      local_b4 = *(undefined4 ********)((int)local_9c + 8);\n      uVar32 = (uint)uVar2 * 0x294 + (int)local_b4;\n      pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      if (local_b4 < uVar32) {\n        do {\n          *(undefined4 *******)((int)local_b4 + 0xc) = local_a8;\n          iVar26 = *(int *)((int)local_b4 + 0x78);\n          pcVar24 = pcVar14 + uVar36;\n          if (iVar26 == 0) {\n            iVar15 = 0;\n            iVar26 = 0;\n          }\n          else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }\n          *(int *)((int)local_b4 + 0x10) = iVar15;\n          uVar33 = (int)local_b4 + 0x294;\n          *(int *)((int)local_b4 + 0x14) = iVar26;\n          local_b4 = (undefined4 *******)uVar33;\n        } while (uVar33 < uVar32);\n        pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      }\n      local_9c = pppppuVar17;\n    } while (local_9c != (undefined4 *****)0x0);\n  }\n  local_9c = (undefined4 *****)FUN_0001ff70(uVar36,0);\n  uVar36 = *(uint *)(param_3 + 0x38);\n  *(undefined4 *)(param_1 + 0x78) = 0;\n  *(int *)(param_1 + 0x54) = (int)local_9c - *(int *)(param_1 + 0x58);\n  *(undefined4 *)(param_1 + 0x7c) = 0;\n  *(undefined4 *)(param_1 + 0x80) = 0;\n  *(undefined4 ******)(param_1 + 0x70) = local_9c;\n  pcVar24 = pcVar14 + (int)local_9c;\n  *(undefined4 *)(param_1 + 0x74) = 0;\n  pcVar5 = *(code **)(param_3 + 0x88);\n  uVar16 = *(uint *)(param_3 + 0x34);\n  if (DAT_00078240 == 0) {\n    uVar13 = 0;\n  }\n  else {\n    local_ac = (undefined4 *****)0x0;\n    ppppppuVar27 = (undefined4 ******)DAT_00078240;\nLAB_000251e2:\n    do {\n      local_98 = ppppppuVar27;\n      uVar32 = *(uint *)((int)local_98 + 8);\n      pcVar19 = pcVar24;\n      if (*(int *)((int)local_98 + 4) == 0) {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);\n        if (local_b4 <= uVar32) {\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);\n        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n        if (local_b4 <= uVar32) goto LAB_000251e2;\n      }\n      do {\n        uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;\n        if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           ) {\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }\n        pcVar24 = pcVar19 + uVar16;\n        uVar33 = uVar32 + 0x294;\n        (*pcVar5)(DAT_00081544,uVar32,pcVar19);\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        pcVar19 = pcVar24;\n        uVar32 = uVar33;\n      } while (uVar33 < local_b4);\n      ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n    } while (*(int *)((int)local_98 + 4) != 0);\n    local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n    uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                          -(uint)(local_9c < *(uint *)(param_1 + 0x70)) - *(int *)(param_1 + 0x74),\n                          *(undefined4 *)(param_3 + 0x34),*(undefined4 *)(param_3 + 0x38));\n  }\nLAB_000252e8:\n  *(undefined4 *)(param_1 + 0x6c) = uVar13;\n  *(undefined4 *)(param_1 + 0x60) = 0;\n  iVar26 = DAT_000816a4;\n  *(undefined4 *)(param_1 + 100) = 0;\n  *(undefined4 *)(param_1 + 0x68) = 0;\n  *(undefined4 *)(param_1 + 0x84) = 0;\n  *(undefined4 *)(param_1 + 0x88) = 0;\n  *(undefined4 *)(param_1 + 0x8c) = 0;\n  for (; iVar26 != 0; iVar26 = FUN_00040c00(iVar26)) {\n    iVar15 = FUN_00041590(iVar26);\n    if (*(int *)(iVar15 + 0x10) != 0) {\n      iVar15 = FUN_0003dc20(iVar26);\n      if (((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n         (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) {\n        iVar15 = FUN_00041590(iVar26);\n        iVar15 = *(int *)(iVar15 + 0x10);\n        *(undefined4 *)(iVar15 + 0x34) = 0;\n        *(undefined4 *)(iVar15 + 0x38) = 0;\n        *(uint *)(iVar15 + 0x3c) = *(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000;\n      }\n      iVar15 = FUN_00041590(iVar26);\n      FUN_0004ed20(iVar26,*(int *)(iVar15 + 0x10) + 0x28);\n    }\n  }\n  if ((*(int *)(param_3 + 4) - 1U & (uint)local_9c) == 0) {\n    *(undefined2 *)(param_1 + 2) = 0x30b;\n    *param_2 = pcVar14;\n    return (uint)local_9c;\n  }\n                    \n  FUN_00031740("../../gas/ecoff.c",0x129d,"ecoff_build_debug",local_9c);\ncode_r0x00024a60:\n  local_ac = (undefined4 *****)((int)local_ac + 3);\n  pcVar24 = local_38 + 2;\n  local_38[1] = (char)((uint)iVar15 >> 8);\n  local_38 = local_38 + 3;\n  *pcVar24 = (char)iVar15;\nLAB_000238d0:\n  if (0 < (int)pppppuVar17) {\n    uVar16 = (int)pppppuVar17 - 1;\n    local_ac = (undefined4 *****)((int)local_ac + 1);\n    pppppuVar17 = (undefined4 *****)((uVar16 >> 4) + (int)local_ac);\n    if (pcVar1 <= local_38) goto LAB_00023925;\n    while (pcVar24 = local_38 + 1, pcVar19 = local_38, local_38 = pcVar24, 0xf < uVar16) {\n      while( true ) {\n        uVar16 = uVar16 - 0x10;\n        *pcVar19 = '\x0f';\n        if (pppppuVar17 == local_ac) goto LAB_00023953;\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        if (local_38 < pcVar1) break;\nLAB_00023925:\n        pcVar19 = (char *)FUN_0001ff00(1);\n        local_38 = pcVar19 + 1;\n        if (uVar16 < 0x10) goto LAB_00023944;\n      }\n    }\nLAB_00023944:\n    *pcVar19 = (char)uVar16;\n  }\nLAB_00023953:\n  pppppppuVar30 = (undefined4 *******)*local_b4;\n  if (pppppppuVar30 == (undefined4 *******)0x0) goto LAB_00023a10;\n  local_9c = local_a4;\n  local_94 = local_b4;\n  local_98 = local_a8;\nLAB_000237a0:\n  pppppppuVar29 = (undefined4 *******)*pppppppuVar30;\n  local_b4 = pppppppuVar30;\n  goto LAB_000237a6;\nLAB_00023a10:\n  if (local_a8 != (undefined4 ******)0x0) {\n    local_a8[0xd] = local_b4[5];\n  }\n  if (local_a0 != (undefined4 ******)0x0) {\n    local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n    local_a0[0x15] = (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n    local_a0[9] = local_a4;\n  }\n  goto LAB_00023a3f;\nLAB_00024380:\n  iVar26 = *(int *)(local_64 + 4);\n  if (*(int *)(local_64 + 4) == 0) goto code_r0x00024393;\n  goto LAB_00023bdc;\ncode_r0x00024393:\n  iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n  local_8c = (int)local_a8;\nLAB_000243a4:\n  *(int *)((int)local_9c + 0x1c) = iVar26;\n  local_9c = (undefined4 *****)((int)local_9c + 0x294);\n  if (local_54 <= local_9c) goto code_r0x000243bf;\n  goto LAB_00023bb7;\ncode_r0x000243bf:\n  iVar26 = *(int *)(local_5c + 4);\n  if (*(int *)(local_5c + 4) == 0) goto code_r0x000243ce;\n  goto LAB_00023b80;\ncode_r0x000243ce:\n  local_68 = local_68 + local_8c * uVar36;\n  uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                        -(uint)(local_68 < *(uint *)(param_1 + 0x34)) - *(int *)(param_1 + 0x38),\n                        *(undefined4 *)(param_3 + 0x24),*(undefined4 *)(param_3 + 0x28));\nLAB_0002441d:\n  puVar20 = (undefined4 *)DAT_00078240;\n  *(undefined4 *)(param_1 + 0x30) = uVar13;\n  pcVar24 = pcVar14 + *(int *)(param_1 + 0x28);\n  uVar36 = *(uint *)(param_3 + 0x1c);\n  uVar16 = *(uint *)(param_3 + 0x20);\n  pcVar5 = *(code **)(param_3 + 0x7c);\n  if (puVar20 != (undefined4 *)0x0) {\n    sVar9 = 0;\nLAB_00024474:\n    do {\n      local_70 = puVar20;\n      local_a4 = *(undefined4 ******)((int)local_70 + 8);\n      if (*(int *)((int)local_70 + 4) == 0) {\n        local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5);\n        if (local_7c <= local_a4) break;\n      }\n      else {\n        local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);\n        puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }\n      do {\n        bVar41 = true;\n        *(short *)(local_a4 + 0xc) = sVar9;\n        uVar32 = (uint)local_a4[0x28];\n        if (uVar32 != 0) {\nLAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);\n          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);\n        }\n        *(short *)((int)local_a4 + 0x32) = (short)uVar32;\n        local_a4 = local_a4 + 0xa5;\n      } while (local_a4 < local_7c);\n      puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n    } while (*(int *)((int)local_70 + 4) != 0);\n    pppppppuVar29 = (undefined4 *******)DAT_00078240;\n    *(undefined4 *)(param_1 + 0x3c) = 0;\n    *(undefined4 *)(param_1 + 0x40) = 0;\n    *(undefined4 *)(param_1 + 0x44) = 0;\n    *(undefined4 *)(param_1 + 0x50) = 0;\n    *(uint *)(param_1 + 0x4c) = local_68;\n    iVar26 = *(int *)(*(int *)(DAT_00081544 + 4) + 8);\n    bVar41 = iVar26 == 0;\n    pcVar24 = pcVar14 + local_68;\n    if (pppppppuVar29 != (undefined4 *******)0x0) {\n      iVar15 = 0;\nLAB_00024d54:\n      do {\n        local_94 = pppppppuVar29;\n        local_a0 = *(undefined4 *******)((int)local_94 + 8);\n        if (*(int *)((int)local_94 + 4) == 0) {\n          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          *(int *)((int)local_a0 + 0x34) = iVar15;\n          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;\n          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);\n          if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }\n          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;\n          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);\n        } while (local_a0 < local_9c);\n        pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n      } while (*(int *)((int)local_94 + 4) != 0);\n      local_68 = local_68 + iVar15 * 4;\n    }\n    goto LAB_00024eaa;\n  }\n  goto LAB_0002554e;\n}" type_identifier (function_declarator "FUN_00023460(int param_1,undefined4 *param_2,int param_3)" identifier (parameter_list "(int param_1,undefined4 *param_2,int param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  char *pcVar1;\n  ushort uVar2;\n  int *piVar3;\n  undefined4 *****pppppuVar4;\n  code *pcVar5;\n  undefined4 *puVar6;\n  uint *puVar7;\n  undefined1 uVar8;\n  short sVar9;\n  ulonglong uVar10;\n  byte bVar11;\n  int iVar12;\n  undefined4 uVar13;\n  char *pcVar14;\n  int iVar15;\n  uint uVar16;\n  undefined4 *****pppppuVar17;\n  undefined4 *****pppppuVar18;\n  char *pcVar19;\n  undefined4 *puVar20;\n  int iVar21;\n  undefined4 uVar22;\n  undefined4 *puVar23;\n  char *pcVar24;\n  int *piVar25;\n  int iVar26;\n  undefined4 ******ppppppuVar27;\n  char cVar28;\n  undefined4 *******pppppppuVar29;\n  undefined4 *******pppppppuVar30;\n  byte bVar31;\n  uint uVar32;\n  uint uVar33;\n  byte *pbVar34;\n  byte *pbVar35;\n  uint uVar36;\n  char cVar37;\n  uint uVar38;\n  byte *pbVar39;\n  bool bVar40;\n  bool bVar41;\n  bool bVar42;\n  byte bVar43;\n  undefined8 uVar44;\n  longlong lVar45;\n  longlong lVar46;\n  undefined4 *******local_b4;\n  undefined4 *****local_ac;\n  undefined4 ******local_a8;\n  undefined4 *****local_a4;\n  undefined4 ******local_a0;\n  undefined4 *****local_9c;\n  undefined4 ******local_98;\n  undefined4 *******local_94;\n  int local_8c;\n  uint local_88;\n  uint *local_7c;\n  undefined4 *local_70;\n  uint local_68;\n  int local_64;\n  int local_5c;\n  uint local_54;\n  char *local_38;\n  undefined4 *******local_34;\n  undefined4 ******local_30;\n  undefined4 ******local_2c;\n  undefined4 *local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar43 = 0;\n  uStack_14 = 0x23469;\n  uVar36 = *(uint *)(param_3 + 0x1c);\n  iVar26 = *(int *)(param_3 + 0x20);\n  if (DAT_00080ca0 == 0) {\n    FUN_00020ec0();\n  }\n  piVar25 = *(int **)(DAT_000809e4 + 8);\n  uVar13 = DAT_000809ec;\n  while (DAT_000809ec = uVar13, piVar25 != (int *)0x0) {\n    iVar15 = piVar25[1];\n    if (piVar25[4] != 0) {\n      FUN_00020e40();\n      iVar15 = piVar25[1];\n    }\n    piVar3 = (int *)piVar25[3];\n    DAT_00080aa0 = DAT_00080aa0 + 1;\n    *(int *)(iVar15 + 0x14) = piVar25[2];\n    *piVar25 = DAT_00080a94;\n    DAT_00080a94 = (int)piVar25;\n    piVar25 = piVar3;\n    uVar13 = DAT_000809ec;\n  }\n  DAT_00080ad8 = DAT_00080ad8 + 1;\n  iVar15 = DAT_000809e4;\n  *(int *)(DAT_000809e4 + 4) = DAT_00080acc;\n  DAT_00080acc = iVar15;\n  iVar21 = DAT_000809f0;\n  DAT_000809ec = 0;\n  for (iVar15 = DAT_000816a4; iVar15 != 0; iVar15 = FUN_00040c00(iVar15)) {\n    iVar12 = FUN_00041590(iVar15);\n    if (((*(int *)(iVar12 + 0x10) == 0) &&\n        (iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0)) &&\n       (iVar12 = FUN_000414f0(iVar15), (*(byte *)(iVar12 + 0x11) & 1) == 0)) {\n      iVar12 = FUN_00041590(iVar15);\n      DAT_000809f0 = *(int *)(iVar12 + 0xc);\n      uVar22 = FUN_0003fad0(iVar15);\n      FUN_00020930(iVar15,0,0,uVar22,0xfffff);\n    }\n  }\n  uVar8 = false;\n  DAT_000809ec = uVar13;\n  DAT_000809f0 = iVar21;\n  iVar15 = DAT_00080ca0;\njoined_r0x000235e4:\n  if (iVar15 != 0) {\n    piVar25 = *(int **)(iVar15 + 0x6c);\n    iVar21 = iVar15;\n    DAT_000809f0 = iVar15;\n    while (piVar25 != (int *)0x0) {\n      while( true ) {\n        piVar25 = (int *)*piVar25;\n        if (piVar25 == (int *)0x0) {\n          FUN_00020930(0,0,0,0,0);\n          iVar15 = *(int *)(iVar15 + 200);\n          goto joined_r0x000235e4;\n        }\n        *(int **)(iVar21 + 0x6c) = piVar25;\n        if (((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)) break;\n        uVar8 = true;\n        uVar13 = dcgettext(0,"missing .end or .bend at end of file",5);\n        FUN_00031540(uVar13);\n        piVar25 = *(int **)(DAT_000809f0 + 0x6c);\n        iVar21 = DAT_000809f0;\n        if (piVar25 == (int *)0x0) goto LAB_00023650;\n      }\n    }\nLAB_00023650:\n    iVar15 = *(int *)(iVar15 + 200);\n    goto joined_r0x000235e4;\n  }\n  pcVar14 = (char *)xmalloc(0x2000);\n  pppppppuVar29 = DAT_00080c9c;\n  pcVar1 = pcVar14 + 0x2000;\n  bVar41 = DAT_00080758 == 3;\n  *(undefined4 *)(param_1 + 0x10) = 0;\n  *(undefined4 *)(param_1 + 0x14) = 0;\n  *(undefined4 *)(param_1 + 4) = 0;\n  local_38 = pcVar14;\n  local_b4 = pppppppuVar29;\n  if ((bVar41) || (DAT_000809e8 == (int *)0x0)) {\n    if (pppppppuVar29 != (undefined4 *******)0x0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n      goto LAB_00023764;\n    }\n  }\n  else if (pppppppuVar29 != (undefined4 *******)0x0) {\n    uVar44 = FUN_0003fad0(*(undefined4 *)(*DAT_000809e8 + 4));\n    iVar15 = FUN_0003e1d0(*(undefined4 *)(*DAT_000809e8 + 4));\n    if ((int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +\n        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c)) == 0 &&\n        (uint)uVar44 + *(uint *)(iVar15 + 0x1c) == 0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n    }\n    else {\n      local_30 = pppppppuVar29[1];\n      local_24 = 0;\n      local_2c = pppppppuVar29[2];\n      local_20 = 0;\n      local_28 = &DAT_000813a0;\n      local_b4 = &local_34;\n      local_34 = pppppppuVar29;\n    }\nLAB_00023764:\n    local_9c = (undefined4 *****)0x0;\n    local_ac = (undefined4 *****)0x0;\n    local_94 = (undefined4 *******)0x0;\n    local_a0 = (undefined4 ******)0x0;\n    local_98 = (undefined4 ******)0x0;\nLAB_000237a6:\n    pppppppuVar30 = pppppppuVar29;\n    if (pppppppuVar30 == (undefined4 *******)0x0) {\n      pppppuVar17 = (undefined4 *****)0x1;\nLAB_000237e1:\n      ppppppuVar27 = local_b4[1];\n      local_a8 = local_b4[2];\n      local_a4 = (undefined4 *****)((int)local_9c + (int)pppppuVar17);\n      if (ppppppuVar27 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }\n      }\n      else {\n        bVar41 = local_98 != local_a8;\n        if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }\n        pppppuVar18 = (undefined4 *****)0x0;\n        if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }\n        ppppppuVar27[8] = pppppuVar18;\n        ppppppuVar27[0x12] = local_ac;\n        ppppppuVar27[0x13] = (undefined4 *****)0x0;\n        local_a0 = ppppppuVar27;\n        if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }\n      goto LAB_000238d0;\n    }\n    ppppppuVar27 = pppppppuVar30[3];\n    uVar33 = (int)pppppppuVar30[4] + (int)*ppppppuVar27;\n    uVar38 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27);\n    ppppppuVar27 = local_b4[3];\n    uVar16 = (int)local_b4[4] + (int)*ppppppuVar27;\n    uVar32 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)local_b4[4],(uint)*ppppppuVar27);\n    if (uVar32 < uVar38 || uVar32 - uVar38 < (uint)(uVar16 < uVar33)) {\n      pppppuVar17 = (undefined4 *****)\n                    (uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000);\n      goto LAB_000237e1;\n    }\n    goto LAB_000237a0;\n  }\n  local_a4 = (undefined4 *****)0x0;\n  local_ac = (undefined4 *****)0x0;\nLAB_00023a3f:\n  *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n  local_68 = FUN_0001ff70(local_ac,&local_38);\n  *(uint *)(param_1 + 0x28) = local_68;\n  *(uint *)(param_1 + 8) = local_68 - *(uint *)(param_1 + 0x10);\n  uVar16 = DAT_00080ca4;\n  *(uint *)(param_1 + 0xc) =\n       -(uint)(local_68 < *(uint *)(param_1 + 0x10)) - *(int *)(param_1 + 0x14);\n  *(undefined4 *)(param_1 + 0x2c) = 0;\n  *(undefined4 *)(param_1 + 0x18) = 0;\n  *(undefined4 *)(param_1 + 0x1c) = 0;\n  *(undefined4 *)(param_1 + 0x20) = 0;\n  *(uint *)(param_1 + 0x24) = uVar16;\n  uVar32 = (int)pcVar1 - (int)(pcVar14 + local_68) >> 0x1f;\n  uVar33 = (int)((ulonglong)uVar36 * (ulonglong)uVar16 >> 0x20) + iVar26 * uVar16;\n  if (uVar32 < uVar33 ||\n      uVar32 - uVar33 <\n      (uint)((uint)((int)pcVar1 - (int)(pcVar14 + local_68)) <\n            (uint)((ulonglong)uVar36 * (ulonglong)uVar16))) {\n    FUN_0001ff00(uVar16 * uVar36);\n    uVar16 = DAT_00080ca4;\n  }\n  local_68 = uVar16 * uVar36 + local_68;\n  uVar36 = *(uint *)(param_3 + 0x24);\n  local_a0 = (undefined4 ******)(pcVar14 + local_68);\n  *(uint *)(param_1 + 0x34) = local_68;\n  uVar16 = *(uint *)(param_3 + 0x28);\n  *(undefined4 *)(param_1 + 0x38) = 0;\n  pcVar5 = *(code **)(param_3 + 0x80);\n  if (DAT_00078240 != 0) {\n    local_8c = 0;\n    puVar20 = (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0x180);\n    iVar26 = DAT_00078240;\nLAB_00023b80:\n    local_5c = iVar26;\n    local_9c = *(undefined4 ******)(local_5c + 8);\n    if (*(int *)(local_5c + 4) == 0) {\n      local_54 = (uint)DAT_00078250 * 0x294 + (int)local_9c;\n      if (local_54 <= local_9c) {\n        local_68 = local_68 + local_8c * uVar36;\n        uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28));\n        goto LAB_0002441d;\n      }\n    }\n    else {\n      local_54 = (uint)DAT_0007824e * 0x294 + (int)local_9c;\n      iVar26 = *(int *)(local_5c + 4);\n      if (local_54 <= local_9c) goto LAB_00023b80;\n    }\nLAB_00023bb7:\n    *(int *)((int)local_9c + 0x18) = local_8c;\n    iVar26 = *(int *)((int)local_9c + 0x8c);\n    if (iVar26 != 0) {\n      local_a8 = (undefined4 ******)local_8c;\nLAB_00023bdc:\n      local_64 = iVar26;\n      puVar6 = *(undefined4 **)(local_64 + 8);\n      if (*(int *)(local_64 + 4) == 0) {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10;\n        if (local_70 <= puVar6) {\n          local_8c = (int)local_a8;\n          iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n          goto LAB_000243a4;\n        }\n      }\n      else {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10;\n        iVar26 = *(int *)(local_64 + 4);\n        if (local_70 <= puVar6) goto LAB_00023bdc;\n      }\n      uVar32 = puVar6[4];\n      do {\n        if ((undefined4 *****)uVar32 != local_9c) {\n                    \n          FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }\n        iVar26 = puVar6[1];\n        if (iVar26 == 0) {\n          local_b4 = (undefined4 *******)puVar6[6];\n          if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n          piVar25 = (int *)puVar6[8];\n          if (piVar25 == (int *)0x0) goto LAB_0002402d;\nLAB_00024237:\n          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n          goto LAB_00023ff8;\n        }\n        if ((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47) {\n          if ((int *)puVar6[5] == (int *)0x0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }\n          uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n          iVar15 = FUN_0003e1d0(iVar26);\n          iVar21 = FUN_0003e1d0(uVar13);\n          if (iVar15 != iVar21) {\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }\n          lVar45 = FUN_0003fad0(iVar26);\n          lVar46 = FUN_0003fad0(uVar13);\n          *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n        }\n        else {\n          uVar44 = FUN_0003fad0(iVar26);\n          iVar21 = FUN_0003e1d0(iVar26);\n          uVar33 = (uint)uVar44 + puVar6[2];\n          uVar32 = *(uint *)(iVar21 + 0x1c);\n          iVar15 = *(int *)(iVar21 + 0x20);\n          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);\n          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);\n        }\n        bVar11 = FUN_0003dc90(iVar26);\n        *(byte *)(puVar6 + 10) = *(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04';\n        if (((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&\n           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) {\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;\n        }\n        if (((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&\n           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))) {\n          puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);\n          pbVar35 = (byte *)*puVar23;\n          if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }\n          else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }\n          iVar15 = FUN_0003ddd0(iVar26);\n          if (iVar15 == 0) {\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }\n          else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }\nLAB_00023df1:\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;\n          *(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);\n        }\n        iVar15 = FUN_0003dc20(iVar26);\n        if (((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||\n           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)) {\n          iVar15 = FUN_0003dd80(iVar26);\n          if (iVar15 != 0) goto LAB_0002410f;\n          if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }\n          else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }\nLAB_0002402d:\n          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;\n          if (uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }\n          (*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);\n          local_a0 = (undefined4 ******)((int)local_a0 + uVar36);\n          puVar6[9] = local_a8;\n          puVar7 = (uint *)puVar6[5];\n          if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {\n            puVar7[3] = (int)local_a8 - local_8c;\n          }\n          local_a8 = (undefined4 ******)((int)local_a8 + 1);\n          if ((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          FUN_0003dd80(iVar26);\nLAB_0002410f:\n          if (puVar6[6] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (puVar6[8] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          iVar15 = FUN_00041590(iVar26);\n          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }\n        }\n        if (local_70 <= puVar6 + 0x10) goto LAB_00024380;\n        uVar32 = puVar6[0x14];\n        puVar6 = puVar6 + 0x10;\n      } while( true );\n    }\n    goto LAB_000243a4;\n  }\n  *(undefined4 *)(param_1 + 0x30) = 0;\nLAB_0002554e:\n  *(undefined4 *)(param_1 + 0x3c) = 0;\n  *(undefined4 *)(param_1 + 0x40) = 0;\n  *(undefined4 *)(param_1 + 0x44) = 0;\n  *(undefined4 *)(param_1 + 0x50) = 0;\n  *(uint *)(param_1 + 0x4c) = local_68;\nLAB_00024eaa:\n  uVar16 = FUN_0001ff70(local_68,0);\n  *(uint *)(param_1 + 0x48) =\n       uVar16 - *(uint *)(param_1 + 0x4c) >> 2 |\n       (-(uint)(uVar16 < *(uint *)(param_1 + 0x4c)) - *(int *)(param_1 + 0x50)) * 0x40000000;\n  *(uint *)(param_1 + 0x58) = uVar16;\n  iVar26 = DAT_00078240;\n  local_9c = (undefined4 *****)DAT_00078240;\n  *(undefined4 *)(param_1 + 0x5c) = 0;\n  uVar36 = uVar16;\n  if (iVar26 != 0) {\n    local_a8 = (undefined4 ******)0x0;\n    do {\n      uVar2 = DAT_00078250;\n      if (*(int *)((int)local_9c + 4) != 0) {\n        uVar2 = DAT_0007824e;\n      }\n      local_b4 = *(undefined4 ********)((int)local_9c + 8);\n      uVar32 = (uint)uVar2 * 0x294 + (int)local_b4;\n      pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      if (local_b4 < uVar32) {\n        do {\n          *(undefined4 *******)((int)local_b4 + 0xc) = local_a8;\n          iVar26 = *(int *)((int)local_b4 + 0x78);\n          pcVar24 = pcVar14 + uVar36;\n          if (iVar26 == 0) {\n            iVar15 = 0;\n            iVar26 = 0;\n          }\n          else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }\n          *(int *)((int)local_b4 + 0x10) = iVar15;\n          uVar33 = (int)local_b4 + 0x294;\n          *(int *)((int)local_b4 + 0x14) = iVar26;\n          local_b4 = (undefined4 *******)uVar33;\n        } while (uVar33 < uVar32);\n        pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      }\n      local_9c = pppppuVar17;\n    } while (local_9c != (undefined4 *****)0x0);\n  }\n  local_9c = (undefined4 *****)FUN_0001ff70(uVar36,0);\n  uVar36 = *(uint *)(param_3 + 0x38);\n  *(undefined4 *)(param_1 + 0x78) = 0;\n  *(int *)(param_1 + 0x54) = (int)local_9c - *(int *)(param_1 + 0x58);\n  *(undefined4 *)(param_1 + 0x7c) = 0;\n  *(undefined4 *)(param_1 + 0x80) = 0;\n  *(undefined4 ******)(param_1 + 0x70) = local_9c;\n  pcVar24 = pcVar14 + (int)local_9c;\n  *(undefined4 *)(param_1 + 0x74) = 0;\n  pcVar5 = *(code **)(param_3 + 0x88);\n  uVar16 = *(uint *)(param_3 + 0x34);\n  if (DAT_00078240 == 0) {\n    uVar13 = 0;\n  }\n  else {\n    local_ac = (undefined4 *****)0x0;\n    ppppppuVar27 = (undefined4 ******)DAT_00078240;\nLAB_000251e2:\n    do {\n      local_98 = ppppppuVar27;\n      uVar32 = *(uint *)((int)local_98 + 8);\n      pcVar19 = pcVar24;\n      if (*(int *)((int)local_98 + 4) == 0) {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);\n        if (local_b4 <= uVar32) {\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);\n        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n        if (local_b4 <= uVar32) goto LAB_000251e2;\n      }\n      do {\n        uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;\n        if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           ) {\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }\n        pcVar24 = pcVar19 + uVar16;\n        uVar33 = uVar32 + 0x294;\n        (*pcVar5)(DAT_00081544,uVar32,pcVar19);\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        pcVar19 = pcVar24;\n        uVar32 = uVar33;\n      } while (uVar33 < local_b4);\n      ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n    } while (*(int *)((int)local_98 + 4) != 0);\n    local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n    uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                          -(uint)(local_9c < *(uint *)(param_1 + 0x70)) - *(int *)(param_1 + 0x74),\n                          *(undefined4 *)(param_3 + 0x34),*(undefined4 *)(param_3 + 0x38));\n  }\nLAB_000252e8:\n  *(undefined4 *)(param_1 + 0x6c) = uVar13;\n  *(undefined4 *)(param_1 + 0x60) = 0;\n  iVar26 = DAT_000816a4;\n  *(undefined4 *)(param_1 + 100) = 0;\n  *(undefined4 *)(param_1 + 0x68) = 0;\n  *(undefined4 *)(param_1 + 0x84) = 0;\n  *(undefined4 *)(param_1 + 0x88) = 0;\n  *(undefined4 *)(param_1 + 0x8c) = 0;\n  for (; iVar26 != 0; iVar26 = FUN_00040c00(iVar26)) {\n    iVar15 = FUN_00041590(iVar26);\n    if (*(int *)(iVar15 + 0x10) != 0) {\n      iVar15 = FUN_0003dc20(iVar26);\n      if (((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n         (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) {\n        iVar15 = FUN_00041590(iVar26);\n        iVar15 = *(int *)(iVar15 + 0x10);\n        *(undefined4 *)(iVar15 + 0x34) = 0;\n        *(undefined4 *)(iVar15 + 0x38) = 0;\n        *(uint *)(iVar15 + 0x3c) = *(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000;\n      }\n      iVar15 = FUN_00041590(iVar26);\n      FUN_0004ed20(iVar26,*(int *)(iVar15 + 0x10) + 0x28);\n    }\n  }\n  if ((*(int *)(param_3 + 4) - 1U & (uint)local_9c) == 0) {\n    *(undefined2 *)(param_1 + 2) = 0x30b;\n    *param_2 = pcVar14;\n    return (uint)local_9c;\n  }\n                    \n  FUN_00031740("../../gas/ecoff.c",0x129d,"ecoff_build_debug",local_9c);\ncode_r0x00024a60:\n  local_ac = (undefined4 *****)((int)local_ac + 3);\n  pcVar24 = local_38 + 2;\n  local_38[1] = (char)((uint)iVar15 >> 8);\n  local_38 = local_38 + 3;\n  *pcVar24 = (char)iVar15;\nLAB_000238d0:\n  if (0 < (int)pppppuVar17) {\n    uVar16 = (int)pppppuVar17 - 1;\n    local_ac = (undefined4 *****)((int)local_ac + 1);\n    pppppuVar17 = (undefined4 *****)((uVar16 >> 4) + (int)local_ac);\n    if (pcVar1 <= local_38) goto LAB_00023925;\n    while (pcVar24 = local_38 + 1, pcVar19 = local_38, local_38 = pcVar24, 0xf < uVar16) {\n      while( true ) {\n        uVar16 = uVar16 - 0x10;\n        *pcVar19 = '\x0f';\n        if (pppppuVar17 == local_ac) goto LAB_00023953;\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        if (local_38 < pcVar1) break;\nLAB_00023925:\n        pcVar19 = (char *)FUN_0001ff00(1);\n        local_38 = pcVar19 + 1;\n        if (uVar16 < 0x10) goto LAB_00023944;\n      }\n    }\nLAB_00023944:\n    *pcVar19 = (char)uVar16;\n  }\nLAB_00023953:\n  pppppppuVar30 = (undefined4 *******)*local_b4;\n  if (pppppppuVar30 == (undefined4 *******)0x0) goto LAB_00023a10;\n  local_9c = local_a4;\n  local_94 = local_b4;\n  local_98 = local_a8;\nLAB_000237a0:\n  pppppppuVar29 = (undefined4 *******)*pppppppuVar30;\n  local_b4 = pppppppuVar30;\n  goto LAB_000237a6;\nLAB_00023a10:\n  if (local_a8 != (undefined4 ******)0x0) {\n    local_a8[0xd] = local_b4[5];\n  }\n  if (local_a0 != (undefined4 ******)0x0) {\n    local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n    local_a0[0x15] = (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n    local_a0[9] = local_a4;\n  }\n  goto LAB_00023a3f;\nLAB_00024380:\n  iVar26 = *(int *)(local_64 + 4);\n  if (*(int *)(local_64 + 4) == 0) goto code_r0x00024393;\n  goto LAB_00023bdc;\ncode_r0x00024393:\n  iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n  local_8c = (int)local_a8;\nLAB_000243a4:\n  *(int *)((int)local_9c + 0x1c) = iVar26;\n  local_9c = (undefined4 *****)((int)local_9c + 0x294);\n  if (local_54 <= local_9c) goto code_r0x000243bf;\n  goto LAB_00023bb7;\ncode_r0x000243bf:\n  iVar26 = *(int *)(local_5c + 4);\n  if (*(int *)(local_5c + 4) == 0) goto code_r0x000243ce;\n  goto LAB_00023b80;\ncode_r0x000243ce:\n  local_68 = local_68 + local_8c * uVar36;\n  uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                        -(uint)(local_68 < *(uint *)(param_1 + 0x34)) - *(int *)(param_1 + 0x38),\n                        *(undefined4 *)(param_3 + 0x24),*(undefined4 *)(param_3 + 0x28));\nLAB_0002441d:\n  puVar20 = (undefined4 *)DAT_00078240;\n  *(undefined4 *)(param_1 + 0x30) = uVar13;\n  pcVar24 = pcVar14 + *(int *)(param_1 + 0x28);\n  uVar36 = *(uint *)(param_3 + 0x1c);\n  uVar16 = *(uint *)(param_3 + 0x20);\n  pcVar5 = *(code **)(param_3 + 0x7c);\n  if (puVar20 != (undefined4 *)0x0) {\n    sVar9 = 0;\nLAB_00024474:\n    do {\n      local_70 = puVar20;\n      local_a4 = *(undefined4 ******)((int)local_70 + 8);\n      if (*(int *)((int)local_70 + 4) == 0) {\n        local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5);\n        if (local_7c <= local_a4) break;\n      }\n      else {\n        local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);\n        puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }\n      do {\n        bVar41 = true;\n        *(short *)(local_a4 + 0xc) = sVar9;\n        uVar32 = (uint)local_a4[0x28];\n        if (uVar32 != 0) {\nLAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);\n          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);\n        }\n        *(short *)((int)local_a4 + 0x32) = (short)uVar32;\n        local_a4 = local_a4 + 0xa5;\n      } while (local_a4 < local_7c);\n      puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n    } while (*(int *)((int)local_70 + 4) != 0);\n    pppppppuVar29 = (undefined4 *******)DAT_00078240;\n    *(undefined4 *)(param_1 + 0x3c) = 0;\n    *(undefined4 *)(param_1 + 0x40) = 0;\n    *(undefined4 *)(param_1 + 0x44) = 0;\n    *(undefined4 *)(param_1 + 0x50) = 0;\n    *(uint *)(param_1 + 0x4c) = local_68;\n    iVar26 = *(int *)(*(int *)(DAT_00081544 + 4) + 8);\n    bVar41 = iVar26 == 0;\n    pcVar24 = pcVar14 + local_68;\n    if (pppppppuVar29 != (undefined4 *******)0x0) {\n      iVar15 = 0;\nLAB_00024d54:\n      do {\n        local_94 = pppppppuVar29;\n        local_a0 = *(undefined4 *******)((int)local_94 + 8);\n        if (*(int *)((int)local_94 + 4) == 0) {\n          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          *(int *)((int)local_a0 + 0x34) = iVar15;\n          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;\n          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);\n          if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }\n          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;\n          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);\n        } while (local_a0 < local_9c);\n        pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n      } while (*(int *)((int)local_94 + 4) != 0);\n      local_68 = local_68 + iVar15 * 4;\n    }\n    goto LAB_00024eaa;\n  }\n  goto LAB_0002554e;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "undefined4 *****pppppuVar4;" type_identifier (pointer_declarator "*****pppppuVar4" * (pointer_declarator "****pppppuVar4" * (pointer_declarator "***pppppuVar4" * (pointer_declarator "**pppppuVar4" * (pointer_declarator "*pppppuVar4" * identifier))))) ;) (declaration "code *pcVar5;" type_identifier (pointer_declarator "*pcVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined1 uVar8;" type_identifier identifier ;) (declaration "short sVar9;" (sized_type_specifier "short" short) identifier ;) (declaration "ulonglong uVar10;" type_identifier identifier ;) (declaration "byte bVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "undefined4 *****pppppuVar17;" type_identifier (pointer_declarator "*****pppppuVar17" * (pointer_declarator "****pppppuVar17" * (pointer_declarator "***pppppuVar17" * (pointer_declarator "**pppppuVar17" * (pointer_declarator "*pppppuVar17" * identifier))))) ;) (declaration "undefined4 *****pppppuVar18;" type_identifier (pointer_declarator "*****pppppuVar18" * (pointer_declarator "****pppppuVar18" * (pointer_declarator "***pppppuVar18" * (pointer_declarator "**pppppuVar18" * (pointer_declarator "*pppppuVar18" * identifier))))) ;) (declaration "char *pcVar19;" primitive_type (pointer_declarator "*pcVar19" * identifier) ;) (declaration "undefined4 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "undefined4 uVar22;" type_identifier identifier ;) (declaration "undefined4 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "char *pcVar24;" primitive_type (pointer_declarator "*pcVar24" * identifier) ;) (declaration "int *piVar25;" primitive_type (pointer_declarator "*piVar25" * identifier) ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "undefined4 ******ppppppuVar27;" type_identifier (pointer_declarator "******ppppppuVar27" * (pointer_declarator "*****ppppppuVar27" * (pointer_declarator "****ppppppuVar27" * (pointer_declarator "***ppppppuVar27" * (pointer_declarator "**ppppppuVar27" * (pointer_declarator "*ppppppuVar27" * identifier)))))) ;) (declaration "char cVar28;" primitive_type identifier ;) (declaration "undefined4 *******pppppppuVar29;" type_identifier (pointer_declarator "*******pppppppuVar29" * (pointer_declarator "******pppppppuVar29" * (pointer_declarator "*****pppppppuVar29" * (pointer_declarator "****pppppppuVar29" * (pointer_declarator "***pppppppuVar29" * (pointer_declarator "**pppppppuVar29" * (pointer_declarator "*pppppppuVar29" * identifier))))))) ;) (declaration "undefined4 *******pppppppuVar30;" type_identifier (pointer_declarator "*******pppppppuVar30" * (pointer_declarator "******pppppppuVar30" * (pointer_declarator "*****pppppppuVar30" * (pointer_declarator "****pppppppuVar30" * (pointer_declarator "***pppppppuVar30" * (pointer_declarator "**pppppppuVar30" * (pointer_declarator "*pppppppuVar30" * identifier))))))) ;) (declaration "byte bVar31;" type_identifier identifier ;) (declaration "uint uVar32;" type_identifier identifier ;) (declaration "uint uVar33;" type_identifier identifier ;) (declaration "byte *pbVar34;" type_identifier (pointer_declarator "*pbVar34" * identifier) ;) (declaration "byte *pbVar35;" type_identifier (pointer_declarator "*pbVar35" * identifier) ;) (declaration "uint uVar36;" type_identifier identifier ;) (declaration "char cVar37;" primitive_type identifier ;) (declaration "uint uVar38;" type_identifier identifier ;) (declaration "byte *pbVar39;" type_identifier (pointer_declarator "*pbVar39" * identifier) ;) (declaration "bool bVar40;" primitive_type identifier ;) (declaration "bool bVar41;" primitive_type identifier ;) (declaration "bool bVar42;" primitive_type identifier ;) (declaration "byte bVar43;" type_identifier identifier ;) (declaration "undefined8 uVar44;" type_identifier identifier ;) (declaration "longlong lVar45;" type_identifier identifier ;) (declaration "longlong lVar46;" type_identifier identifier ;) (declaration "undefined4 *******local_b4;" type_identifier (pointer_declarator "*******local_b4" * (pointer_declarator "******local_b4" * (pointer_declarator "*****local_b4" * (pointer_declarator "****local_b4" * (pointer_declarator "***local_b4" * (pointer_declarator "**local_b4" * (pointer_declarator "*local_b4" * identifier))))))) ;) (declaration "undefined4 *****local_ac;" type_identifier (pointer_declarator "*****local_ac" * (pointer_declarator "****local_ac" * (pointer_declarator "***local_ac" * (pointer_declarator "**local_ac" * (pointer_declarator "*local_ac" * identifier))))) ;) (declaration "undefined4 ******local_a8;" type_identifier (pointer_declarator "******local_a8" * (pointer_declarator "*****local_a8" * (pointer_declarator "****local_a8" * (pointer_declarator "***local_a8" * (pointer_declarator "**local_a8" * (pointer_declarator "*local_a8" * identifier)))))) ;) (declaration "undefined4 *****local_a4;" type_identifier (pointer_declarator "*****local_a4" * (pointer_declarator "****local_a4" * (pointer_declarator "***local_a4" * (pointer_declarator "**local_a4" * (pointer_declarator "*local_a4" * identifier))))) ;) (declaration "undefined4 ******local_a0;" type_identifier (pointer_declarator "******local_a0" * (pointer_declarator "*****local_a0" * (pointer_declarator "****local_a0" * (pointer_declarator "***local_a0" * (pointer_declarator "**local_a0" * (pointer_declarator "*local_a0" * identifier)))))) ;) (declaration "undefined4 *****local_9c;" type_identifier (pointer_declarator "*****local_9c" * (pointer_declarator "****local_9c" * (pointer_declarator "***local_9c" * (pointer_declarator "**local_9c" * (pointer_declarator "*local_9c" * identifier))))) ;) (declaration "undefined4 ******local_98;" type_identifier (pointer_declarator "******local_98" * (pointer_declarator "*****local_98" * (pointer_declarator "****local_98" * (pointer_declarator "***local_98" * (pointer_declarator "**local_98" * (pointer_declarator "*local_98" * identifier)))))) ;) (declaration "undefined4 *******local_94;" type_identifier (pointer_declarator "*******local_94" * (pointer_declarator "******local_94" * (pointer_declarator "*****local_94" * (pointer_declarator "****local_94" * (pointer_declarator "***local_94" * (pointer_declarator "**local_94" * (pointer_declarator "*local_94" * identifier))))))) ;) (declaration "int local_8c;" primitive_type identifier ;) (declaration "uint local_88;" type_identifier identifier ;) (declaration "uint *local_7c;" type_identifier (pointer_declarator "*local_7c" * identifier) ;) (declaration "undefined4 *local_70;" type_identifier (pointer_declarator "*local_70" * identifier) ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "char *local_38;" primitive_type (pointer_declarator "*local_38" * identifier) ;) (declaration "undefined4 *******local_34;" type_identifier (pointer_declarator "*******local_34" * (pointer_declarator "******local_34" * (pointer_declarator "*****local_34" * (pointer_declarator "****local_34" * (pointer_declarator "***local_34" * (pointer_declarator "**local_34" * (pointer_declarator "*local_34" * identifier))))))) ;) (declaration "undefined4 ******local_30;" type_identifier (pointer_declarator "******local_30" * (pointer_declarator "*****local_30" * (pointer_declarator "****local_30" * (pointer_declarator "***local_30" * (pointer_declarator "**local_30" * (pointer_declarator "*local_30" * identifier)))))) ;) (declaration "undefined4 ******local_2c;" type_identifier (pointer_declarator "******local_2c" * (pointer_declarator "*****local_2c" * (pointer_declarator "****local_2c" * (pointer_declarator "***local_2c" * (pointer_declarator "**local_2c" * (pointer_declarator "*local_2c" * identifier)))))) ;) (declaration "undefined4 *local_28;" type_identifier (pointer_declarator "*local_28" * identifier) ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar43 = 0;" (assignment_expression "bVar43 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x23469;" (assignment_expression "uStack_14 = 0x23469" identifier = number_literal) ;) (expression_statement "uVar36 = *(uint *)(param_3 + 0x1c);" (assignment_expression "uVar36 = *(uint *)(param_3 + 0x1c)" identifier = (pointer_expression "*(uint *)(param_3 + 0x1c)" * (cast_expression "(uint *)(param_3 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x1c)" ( (binary_expression "param_3 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "iVar26 = *(int *)(param_3 + 0x20);" (assignment_expression "iVar26 = *(int *)(param_3 + 0x20)" identifier = (pointer_expression "*(int *)(param_3 + 0x20)" * (cast_expression "(int *)(param_3 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x20)" ( (binary_expression "param_3 + 0x20" identifier + number_literal) ))))) ;) (if_statement "if (DAT_00080ca0 == 0) {\n    FUN_00020ec0();\n  }" if (parenthesized_expression "(DAT_00080ca0 == 0)" ( (binary_expression "DAT_00080ca0 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_00020ec0();\n  }" { (expression_statement "FUN_00020ec0();" (call_expression "FUN_00020ec0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "piVar25 = *(int **)(DAT_000809e4 + 8);" (assignment_expression "piVar25 = *(int **)(DAT_000809e4 + 8)" identifier = (pointer_expression "*(int **)(DAT_000809e4 + 8)" * (cast_expression "(int **)(DAT_000809e4 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_000809e4 + 8)" ( (binary_expression "DAT_000809e4 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = DAT_000809ec;" (assignment_expression "uVar13 = DAT_000809ec" identifier = identifier) ;) (while_statement "while (DAT_000809ec = uVar13, piVar25 != (int *)0x0) {\n    iVar15 = piVar25[1];\n    if (piVar25[4] != 0) {\n      FUN_00020e40();\n      iVar15 = piVar25[1];\n    }\n    piVar3 = (int *)piVar25[3];\n    DAT_00080aa0 = DAT_00080aa0 + 1;\n    *(int *)(iVar15 + 0x14) = piVar25[2];\n    *piVar25 = DAT_00080a94;\n    DAT_00080a94 = (int)piVar25;\n    piVar25 = piVar3;\n    uVar13 = DAT_000809ec;\n  }" while (parenthesized_expression "(DAT_000809ec = uVar13, piVar25 != (int *)0x0)" ( (comma_expression "DAT_000809ec = uVar13, piVar25 != (int *)0x0" (assignment_expression "DAT_000809ec = uVar13" identifier = identifier) , (binary_expression "piVar25 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n    iVar15 = piVar25[1];\n    if (piVar25[4] != 0) {\n      FUN_00020e40();\n      iVar15 = piVar25[1];\n    }\n    piVar3 = (int *)piVar25[3];\n    DAT_00080aa0 = DAT_00080aa0 + 1;\n    *(int *)(iVar15 + 0x14) = piVar25[2];\n    *piVar25 = DAT_00080a94;\n    DAT_00080a94 = (int)piVar25;\n    piVar25 = piVar3;\n    uVar13 = DAT_000809ec;\n  }" { (expression_statement "iVar15 = piVar25[1];" (assignment_expression "iVar15 = piVar25[1]" identifier = (subscript_expression "piVar25[1]" identifier [ number_literal ])) ;) (if_statement "if (piVar25[4] != 0) {\n      FUN_00020e40();\n      iVar15 = piVar25[1];\n    }" if (parenthesized_expression "(piVar25[4] != 0)" ( (binary_expression "piVar25[4] != 0" (subscript_expression "piVar25[4]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      FUN_00020e40();\n      iVar15 = piVar25[1];\n    }" { (expression_statement "FUN_00020e40();" (call_expression "FUN_00020e40()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar15 = piVar25[1];" (assignment_expression "iVar15 = piVar25[1]" identifier = (subscript_expression "piVar25[1]" identifier [ number_literal ])) ;) })) (expression_statement "piVar3 = (int *)piVar25[3];" (assignment_expression "piVar3 = (int *)piVar25[3]" identifier = (cast_expression "(int *)piVar25[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar25[3]" identifier [ number_literal ]))) ;) (expression_statement "DAT_00080aa0 = DAT_00080aa0 + 1;" (assignment_expression "DAT_00080aa0 = DAT_00080aa0 + 1" identifier = (binary_expression "DAT_00080aa0 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(iVar15 + 0x14) = piVar25[2];" (assignment_expression "*(int *)(iVar15 + 0x14) = piVar25[2]" (pointer_expression "*(int *)(iVar15 + 0x14)" * (cast_expression "(int *)(iVar15 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x14)" ( (binary_expression "iVar15 + 0x14" identifier + number_literal) )))) = (subscript_expression "piVar25[2]" identifier [ number_literal ])) ;) (expression_statement "*piVar25 = DAT_00080a94;" (assignment_expression "*piVar25 = DAT_00080a94" (pointer_expression "*piVar25" * identifier) = identifier) ;) (expression_statement "DAT_00080a94 = (int)piVar25;" (assignment_expression "DAT_00080a94 = (int)piVar25" identifier = (cast_expression "(int)piVar25" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar25 = piVar3;" (assignment_expression "piVar25 = piVar3" identifier = identifier) ;) (expression_statement "uVar13 = DAT_000809ec;" (assignment_expression "uVar13 = DAT_000809ec" identifier = identifier) ;) })) (expression_statement "DAT_00080ad8 = DAT_00080ad8 + 1;" (assignment_expression "DAT_00080ad8 = DAT_00080ad8 + 1" identifier = (binary_expression "DAT_00080ad8 + 1" identifier + number_literal)) ;) (expression_statement "iVar15 = DAT_000809e4;" (assignment_expression "iVar15 = DAT_000809e4" identifier = identifier) ;) (expression_statement "*(int *)(DAT_000809e4 + 4) = DAT_00080acc;" (assignment_expression "*(int *)(DAT_000809e4 + 4) = DAT_00080acc" (pointer_expression "*(int *)(DAT_000809e4 + 4)" * (cast_expression "(int *)(DAT_000809e4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000809e4 + 4)" ( (binary_expression "DAT_000809e4 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "DAT_00080acc = iVar15;" (assignment_expression "DAT_00080acc = iVar15" identifier = identifier) ;) (expression_statement "iVar21 = DAT_000809f0;" (assignment_expression "iVar21 = DAT_000809f0" identifier = identifier) ;) (expression_statement "DAT_000809ec = 0;" (assignment_expression "DAT_000809ec = 0" identifier = number_literal) ;) (for_statement "for (iVar15 = DAT_000816a4; iVar15 != 0; iVar15 = FUN_00040c00(iVar15)) {\n    iVar12 = FUN_00041590(iVar15);\n    if (((*(int *)(iVar12 + 0x10) == 0) &&\n        (iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0)) &&\n       (iVar12 = FUN_000414f0(iVar15), (*(byte *)(iVar12 + 0x11) & 1) == 0)) {\n      iVar12 = FUN_00041590(iVar15);\n      DAT_000809f0 = *(int *)(iVar12 + 0xc);\n      uVar22 = FUN_0003fad0(iVar15);\n      FUN_00020930(iVar15,0,0,uVar22,0xfffff);\n    }\n  }" for ( (assignment_expression "iVar15 = DAT_000816a4" identifier = identifier) ; (binary_expression "iVar15 != 0" identifier != number_literal) ; (assignment_expression "iVar15 = FUN_00040c00(iVar15)" identifier = (call_expression "FUN_00040c00(iVar15)" identifier (argument_list "(iVar15)" ( identifier )))) ) (compound_statement "{\n    iVar12 = FUN_00041590(iVar15);\n    if (((*(int *)(iVar12 + 0x10) == 0) &&\n        (iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0)) &&\n       (iVar12 = FUN_000414f0(iVar15), (*(byte *)(iVar12 + 0x11) & 1) == 0)) {\n      iVar12 = FUN_00041590(iVar15);\n      DAT_000809f0 = *(int *)(iVar12 + 0xc);\n      uVar22 = FUN_0003fad0(iVar15);\n      FUN_00020930(iVar15,0,0,uVar22,0xfffff);\n    }\n  }" { (expression_statement "iVar12 = FUN_00041590(iVar15);" (assignment_expression "iVar12 = FUN_00041590(iVar15)" identifier = (call_expression "FUN_00041590(iVar15)" identifier (argument_list "(iVar15)" ( identifier )))) ;) (if_statement "if (((*(int *)(iVar12 + 0x10) == 0) &&\n        (iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0)) &&\n       (iVar12 = FUN_000414f0(iVar15), (*(byte *)(iVar12 + 0x11) & 1) == 0)) {\n      iVar12 = FUN_00041590(iVar15);\n      DAT_000809f0 = *(int *)(iVar12 + 0xc);\n      uVar22 = FUN_0003fad0(iVar15);\n      FUN_00020930(iVar15,0,0,uVar22,0xfffff);\n    }" if (parenthesized_expression "(((*(int *)(iVar12 + 0x10) == 0) &&\n        (iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0)) &&\n       (iVar12 = FUN_000414f0(iVar15), (*(byte *)(iVar12 + 0x11) & 1) == 0))" ( (binary_expression "((*(int *)(iVar12 + 0x10) == 0) &&\n        (iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0)) &&\n       (iVar12 = FUN_000414f0(iVar15), (*(byte *)(iVar12 + 0x11) & 1) == 0)" (parenthesized_expression "((*(int *)(iVar12 + 0x10) == 0) &&\n        (iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0))" ( (binary_expression "(*(int *)(iVar12 + 0x10) == 0) &&\n        (iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0)" (parenthesized_expression "(*(int *)(iVar12 + 0x10) == 0)" ( (binary_expression "*(int *)(iVar12 + 0x10) == 0" (pointer_expression "*(int *)(iVar12 + 0x10)" * (cast_expression "(int *)(iVar12 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0)" ( (comma_expression "iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0" (assignment_expression "iVar12 = FUN_00041590(iVar15)" identifier = (call_expression "FUN_00041590(iVar15)" identifier (argument_list "(iVar15)" ( identifier )))) , (binary_expression "*(int *)(iVar12 + 0xc) != 0" (pointer_expression "*(int *)(iVar12 + 0xc)" * (cast_expression "(int *)(iVar12 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xc)" ( (binary_expression "iVar12 + 0xc" identifier + number_literal) )))) != number_literal)) ))) )) && (parenthesized_expression "(iVar12 = FUN_000414f0(iVar15), (*(byte *)(iVar12 + 0x11) & 1) == 0)" ( (comma_expression "iVar12 = FUN_000414f0(iVar15), (*(byte *)(iVar12 + 0x11) & 1) == 0" (assignment_expression "iVar12 = FUN_000414f0(iVar15)" identifier = (call_expression "FUN_000414f0(iVar15)" identifier (argument_list "(iVar15)" ( identifier )))) , (binary_expression "(*(byte *)(iVar12 + 0x11) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar12 + 0x11) & 1)" ( (binary_expression "*(byte *)(iVar12 + 0x11) & 1" (pointer_expression "*(byte *)(iVar12 + 0x11)" * (cast_expression "(byte *)(iVar12 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x11)" ( (binary_expression "iVar12 + 0x11" identifier + number_literal) )))) & number_literal) )) == number_literal)) ))) )) (compound_statement "{\n      iVar12 = FUN_00041590(iVar15);\n      DAT_000809f0 = *(int *)(iVar12 + 0xc);\n      uVar22 = FUN_0003fad0(iVar15);\n      FUN_00020930(iVar15,0,0,uVar22,0xfffff);\n    }" { (expression_statement "iVar12 = FUN_00041590(iVar15);" (assignment_expression "iVar12 = FUN_00041590(iVar15)" identifier = (call_expression "FUN_00041590(iVar15)" identifier (argument_list "(iVar15)" ( identifier )))) ;) (expression_statement "DAT_000809f0 = *(int *)(iVar12 + 0xc);" (assignment_expression "DAT_000809f0 = *(int *)(iVar12 + 0xc)" identifier = (pointer_expression "*(int *)(iVar12 + 0xc)" * (cast_expression "(int *)(iVar12 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xc)" ( (binary_expression "iVar12 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uVar22 = FUN_0003fad0(iVar15);" (assignment_expression "uVar22 = FUN_0003fad0(iVar15)" identifier = (call_expression "FUN_0003fad0(iVar15)" identifier (argument_list "(iVar15)" ( identifier )))) ;) (expression_statement "FUN_00020930(iVar15,0,0,uVar22,0xfffff);" (call_expression "FUN_00020930(iVar15,0,0,uVar22,0xfffff)" identifier (argument_list "(iVar15,0,0,uVar22,0xfffff)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) })) })) (expression_statement "uVar8 = false;" (assignment_expression "uVar8 = false" identifier = false) ;) (expression_statement "DAT_000809ec = uVar13;" (assignment_expression "DAT_000809ec = uVar13" identifier = identifier) ;) (expression_statement "DAT_000809f0 = iVar21;" (assignment_expression "DAT_000809f0 = iVar21" identifier = identifier) ;) (expression_statement "iVar15 = DAT_00080ca0;" (assignment_expression "iVar15 = DAT_00080ca0" identifier = identifier) ;) (labeled_statement "joined_r0x000235e4:\n  if (iVar15 != 0) {\n    piVar25 = *(int **)(iVar15 + 0x6c);\n    iVar21 = iVar15;\n    DAT_000809f0 = iVar15;\n    while (piVar25 != (int *)0x0) {\n      while( true ) {\n        piVar25 = (int *)*piVar25;\n        if (piVar25 == (int *)0x0) {\n          FUN_00020930(0,0,0,0,0);\n          iVar15 = *(int *)(iVar15 + 200);\n          goto joined_r0x000235e4;\n        }\n        *(int **)(iVar21 + 0x6c) = piVar25;\n        if (((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)) break;\n        uVar8 = true;\n        uVar13 = dcgettext(0,"missing .end or .bend at end of file",5);\n        FUN_00031540(uVar13);\n        piVar25 = *(int **)(DAT_000809f0 + 0x6c);\n        iVar21 = DAT_000809f0;\n        if (piVar25 == (int *)0x0) goto LAB_00023650;\n      }\n    }\nLAB_00023650:\n    iVar15 = *(int *)(iVar15 + 200);\n    goto joined_r0x000235e4;\n  }" statement_identifier : (if_statement "if (iVar15 != 0) {\n    piVar25 = *(int **)(iVar15 + 0x6c);\n    iVar21 = iVar15;\n    DAT_000809f0 = iVar15;\n    while (piVar25 != (int *)0x0) {\n      while( true ) {\n        piVar25 = (int *)*piVar25;\n        if (piVar25 == (int *)0x0) {\n          FUN_00020930(0,0,0,0,0);\n          iVar15 = *(int *)(iVar15 + 200);\n          goto joined_r0x000235e4;\n        }\n        *(int **)(iVar21 + 0x6c) = piVar25;\n        if (((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)) break;\n        uVar8 = true;\n        uVar13 = dcgettext(0,"missing .end or .bend at end of file",5);\n        FUN_00031540(uVar13);\n        piVar25 = *(int **)(DAT_000809f0 + 0x6c);\n        iVar21 = DAT_000809f0;\n        if (piVar25 == (int *)0x0) goto LAB_00023650;\n      }\n    }\nLAB_00023650:\n    iVar15 = *(int *)(iVar15 + 200);\n    goto joined_r0x000235e4;\n  }" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (compound_statement "{\n    piVar25 = *(int **)(iVar15 + 0x6c);\n    iVar21 = iVar15;\n    DAT_000809f0 = iVar15;\n    while (piVar25 != (int *)0x0) {\n      while( true ) {\n        piVar25 = (int *)*piVar25;\n        if (piVar25 == (int *)0x0) {\n          FUN_00020930(0,0,0,0,0);\n          iVar15 = *(int *)(iVar15 + 200);\n          goto joined_r0x000235e4;\n        }\n        *(int **)(iVar21 + 0x6c) = piVar25;\n        if (((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)) break;\n        uVar8 = true;\n        uVar13 = dcgettext(0,"missing .end or .bend at end of file",5);\n        FUN_00031540(uVar13);\n        piVar25 = *(int **)(DAT_000809f0 + 0x6c);\n        iVar21 = DAT_000809f0;\n        if (piVar25 == (int *)0x0) goto LAB_00023650;\n      }\n    }\nLAB_00023650:\n    iVar15 = *(int *)(iVar15 + 200);\n    goto joined_r0x000235e4;\n  }" { (expression_statement "piVar25 = *(int **)(iVar15 + 0x6c);" (assignment_expression "piVar25 = *(int **)(iVar15 + 0x6c)" identifier = (pointer_expression "*(int **)(iVar15 + 0x6c)" * (cast_expression "(int **)(iVar15 + 0x6c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0x6c)" ( (binary_expression "iVar15 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "iVar21 = iVar15;" (assignment_expression "iVar21 = iVar15" identifier = identifier) ;) (expression_statement "DAT_000809f0 = iVar15;" (assignment_expression "DAT_000809f0 = iVar15" identifier = identifier) ;) (while_statement "while (piVar25 != (int *)0x0) {\n      while( true ) {\n        piVar25 = (int *)*piVar25;\n        if (piVar25 == (int *)0x0) {\n          FUN_00020930(0,0,0,0,0);\n          iVar15 = *(int *)(iVar15 + 200);\n          goto joined_r0x000235e4;\n        }\n        *(int **)(iVar21 + 0x6c) = piVar25;\n        if (((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)) break;\n        uVar8 = true;\n        uVar13 = dcgettext(0,"missing .end or .bend at end of file",5);\n        FUN_00031540(uVar13);\n        piVar25 = *(int **)(DAT_000809f0 + 0x6c);\n        iVar21 = DAT_000809f0;\n        if (piVar25 == (int *)0x0) goto LAB_00023650;\n      }\n    }" while (parenthesized_expression "(piVar25 != (int *)0x0)" ( (binary_expression "piVar25 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      while( true ) {\n        piVar25 = (int *)*piVar25;\n        if (piVar25 == (int *)0x0) {\n          FUN_00020930(0,0,0,0,0);\n          iVar15 = *(int *)(iVar15 + 200);\n          goto joined_r0x000235e4;\n        }\n        *(int **)(iVar21 + 0x6c) = piVar25;\n        if (((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)) break;\n        uVar8 = true;\n        uVar13 = dcgettext(0,"missing .end or .bend at end of file",5);\n        FUN_00031540(uVar13);\n        piVar25 = *(int **)(DAT_000809f0 + 0x6c);\n        iVar21 = DAT_000809f0;\n        if (piVar25 == (int *)0x0) goto LAB_00023650;\n      }\n    }" { (while_statement "while( true ) {\n        piVar25 = (int *)*piVar25;\n        if (piVar25 == (int *)0x0) {\n          FUN_00020930(0,0,0,0,0);\n          iVar15 = *(int *)(iVar15 + 200);\n          goto joined_r0x000235e4;\n        }\n        *(int **)(iVar21 + 0x6c) = piVar25;\n        if (((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)) break;\n        uVar8 = true;\n        uVar13 = dcgettext(0,"missing .end or .bend at end of file",5);\n        FUN_00031540(uVar13);\n        piVar25 = *(int **)(DAT_000809f0 + 0x6c);\n        iVar21 = DAT_000809f0;\n        if (piVar25 == (int *)0x0) goto LAB_00023650;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        piVar25 = (int *)*piVar25;\n        if (piVar25 == (int *)0x0) {\n          FUN_00020930(0,0,0,0,0);\n          iVar15 = *(int *)(iVar15 + 200);\n          goto joined_r0x000235e4;\n        }\n        *(int **)(iVar21 + 0x6c) = piVar25;\n        if (((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)) break;\n        uVar8 = true;\n        uVar13 = dcgettext(0,"missing .end or .bend at end of file",5);\n        FUN_00031540(uVar13);\n        piVar25 = *(int **)(DAT_000809f0 + 0x6c);\n        iVar21 = DAT_000809f0;\n        if (piVar25 == (int *)0x0) goto LAB_00023650;\n      }" { (expression_statement "piVar25 = (int *)*piVar25;" (assignment_expression "piVar25 = (int *)*piVar25" identifier = (cast_expression "(int *)*piVar25" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar25" * identifier))) ;) (if_statement "if (piVar25 == (int *)0x0) {\n          FUN_00020930(0,0,0,0,0);\n          iVar15 = *(int *)(iVar15 + 200);\n          goto joined_r0x000235e4;\n        }" if (parenthesized_expression "(piVar25 == (int *)0x0)" ( (binary_expression "piVar25 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          FUN_00020930(0,0,0,0,0);\n          iVar15 = *(int *)(iVar15 + 200);\n          goto joined_r0x000235e4;\n        }" { (expression_statement "FUN_00020930(0,0,0,0,0);" (call_expression "FUN_00020930(0,0,0,0,0)" identifier (argument_list "(0,0,0,0,0)" ( number_literal , number_literal , number_literal , number_literal , number_literal ))) ;) (expression_statement "iVar15 = *(int *)(iVar15 + 200);" (assignment_expression "iVar15 = *(int *)(iVar15 + 200)" identifier = (pointer_expression "*(int *)(iVar15 + 200)" * (cast_expression "(int *)(iVar15 + 200)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 200)" ( (binary_expression "iVar15 + 200" identifier + number_literal) ))))) ;) (goto_statement "goto joined_r0x000235e4;" goto statement_identifier ;) })) (expression_statement "*(int **)(iVar21 + 0x6c) = piVar25;" (assignment_expression "*(int **)(iVar21 + 0x6c) = piVar25" (pointer_expression "*(int **)(iVar21 + 0x6c)" * (cast_expression "(int **)(iVar21 + 0x6c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + 0x6c)" ( (binary_expression "iVar21 + 0x6c" identifier + number_literal) )))) = identifier) ;) (if_statement "if (((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)) break;" if (parenthesized_expression "(((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0))" ( (binary_expression "((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)" (parenthesized_expression "((bool)uVar8)" ( (cast_expression "(bool)uVar8" ( (type_descriptor "bool" primitive_type) ) identifier) )) || (parenthesized_expression "(*(int *)(iVar21 + 0x60) != 0)" ( (binary_expression "*(int *)(iVar21 + 0x60) != 0" (pointer_expression "*(int *)(iVar21 + 0x60)" * (cast_expression "(int *)(iVar21 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x60)" ( (binary_expression "iVar21 + 0x60" identifier + number_literal) )))) != number_literal) ))) )) (break_statement "break;" break ;)) (expression_statement "uVar8 = true;" (assignment_expression "uVar8 = true" identifier = true) ;) (expression_statement "uVar13 = dcgettext(0,"missing .end or .bend at end of file",5);" (assignment_expression "uVar13 = dcgettext(0,"missing .end or .bend at end of file",5)" identifier = (call_expression "dcgettext(0,"missing .end or .bend at end of file",5)" identifier (argument_list "(0,"missing .end or .bend at end of file",5)" ( number_literal , (string_literal ""missing .end or .bend at end of file"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_00031540(uVar13);" (call_expression "FUN_00031540(uVar13)" identifier (argument_list "(uVar13)" ( identifier ))) ;) (expression_statement "piVar25 = *(int **)(DAT_000809f0 + 0x6c);" (assignment_expression "piVar25 = *(int **)(DAT_000809f0 + 0x6c)" identifier = (pointer_expression "*(int **)(DAT_000809f0 + 0x6c)" * (cast_expression "(int **)(DAT_000809f0 + 0x6c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_000809f0 + 0x6c)" ( (binary_expression "DAT_000809f0 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "iVar21 = DAT_000809f0;" (assignment_expression "iVar21 = DAT_000809f0" identifier = identifier) ;) (if_statement "if (piVar25 == (int *)0x0) goto LAB_00023650;" if (parenthesized_expression "(piVar25 == (int *)0x0)" ( (binary_expression "piVar25 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00023650;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_00023650:\n    iVar15 = *(int *)(iVar15 + 200);" statement_identifier : (expression_statement "iVar15 = *(int *)(iVar15 + 200);" (assignment_expression "iVar15 = *(int *)(iVar15 + 200)" identifier = (pointer_expression "*(int *)(iVar15 + 200)" * (cast_expression "(int *)(iVar15 + 200)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 200)" ( (binary_expression "iVar15 + 200" identifier + number_literal) ))))) ;)) (goto_statement "goto joined_r0x000235e4;" goto statement_identifier ;) }))) (expression_statement "pcVar14 = (char *)xmalloc(0x2000);" (assignment_expression "pcVar14 = (char *)xmalloc(0x2000)" identifier = (cast_expression "(char *)xmalloc(0x2000)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x2000)" identifier (argument_list "(0x2000)" ( number_literal ))))) ;) (expression_statement "pppppppuVar29 = DAT_00080c9c;" (assignment_expression "pppppppuVar29 = DAT_00080c9c" identifier = identifier) ;) (expression_statement "pcVar1 = pcVar14 + 0x2000;" (assignment_expression "pcVar1 = pcVar14 + 0x2000" identifier = (binary_expression "pcVar14 + 0x2000" identifier + number_literal)) ;) (expression_statement "bVar41 = DAT_00080758 == 3;" (assignment_expression "bVar41 = DAT_00080758 == 3" identifier = (binary_expression "DAT_00080758 == 3" identifier == number_literal)) ;) (expression_statement "*(undefined4 *)(param_1 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x10) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x10)" * (cast_expression "(undefined4 *)(param_1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x14) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x14)" * (cast_expression "(undefined4 *)(param_1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 4) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 4) = 0" (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) )))) = number_literal) ;) (expression_statement "local_38 = pcVar14;" (assignment_expression "local_38 = pcVar14" identifier = identifier) ;) (expression_statement "local_b4 = pppppppuVar29;" (assignment_expression "local_b4 = pppppppuVar29" identifier = identifier) ;) (if_statement "if ((bVar41) || (DAT_000809e8 == (int *)0x0)) {\n    if (pppppppuVar29 != (undefined4 *******)0x0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n      goto LAB_00023764;\n    }\n  }\n  else if (pppppppuVar29 != (undefined4 *******)0x0) {\n    uVar44 = FUN_0003fad0(*(undefined4 *)(*DAT_000809e8 + 4));\n    iVar15 = FUN_0003e1d0(*(undefined4 *)(*DAT_000809e8 + 4));\n    if ((int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +\n        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c)) == 0 &&\n        (uint)uVar44 + *(uint *)(iVar15 + 0x1c) == 0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n    }\n    else {\n      local_30 = pppppppuVar29[1];\n      local_24 = 0;\n      local_2c = pppppppuVar29[2];\n      local_20 = 0;\n      local_28 = &DAT_000813a0;\n      local_b4 = &local_34;\n      local_34 = pppppppuVar29;\n    }\nLAB_00023764:\n    local_9c = (undefined4 *****)0x0;\n    local_ac = (undefined4 *****)0x0;\n    local_94 = (undefined4 *******)0x0;\n    local_a0 = (undefined4 ******)0x0;\n    local_98 = (undefined4 ******)0x0;\nLAB_000237a6:\n    pppppppuVar30 = pppppppuVar29;\n    if (pppppppuVar30 == (undefined4 *******)0x0) {\n      pppppuVar17 = (undefined4 *****)0x1;\nLAB_000237e1:\n      ppppppuVar27 = local_b4[1];\n      local_a8 = local_b4[2];\n      local_a4 = (undefined4 *****)((int)local_9c + (int)pppppuVar17);\n      if (ppppppuVar27 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }\n      }\n      else {\n        bVar41 = local_98 != local_a8;\n        if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }\n        pppppuVar18 = (undefined4 *****)0x0;\n        if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }\n        ppppppuVar27[8] = pppppuVar18;\n        ppppppuVar27[0x12] = local_ac;\n        ppppppuVar27[0x13] = (undefined4 *****)0x0;\n        local_a0 = ppppppuVar27;\n        if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }\n      goto LAB_000238d0;\n    }\n    ppppppuVar27 = pppppppuVar30[3];\n    uVar33 = (int)pppppppuVar30[4] + (int)*ppppppuVar27;\n    uVar38 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27);\n    ppppppuVar27 = local_b4[3];\n    uVar16 = (int)local_b4[4] + (int)*ppppppuVar27;\n    uVar32 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)local_b4[4],(uint)*ppppppuVar27);\n    if (uVar32 < uVar38 || uVar32 - uVar38 < (uint)(uVar16 < uVar33)) {\n      pppppuVar17 = (undefined4 *****)\n                    (uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000);\n      goto LAB_000237e1;\n    }\n    goto LAB_000237a0;\n  }" if (parenthesized_expression "((bVar41) || (DAT_000809e8 == (int *)0x0))" ( (binary_expression "(bVar41) || (DAT_000809e8 == (int *)0x0)" (parenthesized_expression "(bVar41)" ( identifier )) || (parenthesized_expression "(DAT_000809e8 == (int *)0x0)" ( (binary_expression "DAT_000809e8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    if (pppppppuVar29 != (undefined4 *******)0x0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n      goto LAB_00023764;\n    }\n  }" { (if_statement "if (pppppppuVar29 != (undefined4 *******)0x0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n      goto LAB_00023764;\n    }" if (parenthesized_expression "(pppppppuVar29 != (undefined4 *******)0x0)" ( (binary_expression "pppppppuVar29 != (undefined4 *******)0x0" identifier != (cast_expression "(undefined4 *******)0x0" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n      goto LAB_00023764;\n    }" { (expression_statement "pppppppuVar29 = (undefined4 *******)*pppppppuVar29;" (assignment_expression "pppppppuVar29 = (undefined4 *******)*pppppppuVar29" identifier = (cast_expression "(undefined4 *******)*pppppppuVar29" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*pppppppuVar29" * identifier))) ;) (goto_statement "goto LAB_00023764;" goto statement_identifier ;) })) }) (else_clause "else if (pppppppuVar29 != (undefined4 *******)0x0) {\n    uVar44 = FUN_0003fad0(*(undefined4 *)(*DAT_000809e8 + 4));\n    iVar15 = FUN_0003e1d0(*(undefined4 *)(*DAT_000809e8 + 4));\n    if ((int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +\n        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c)) == 0 &&\n        (uint)uVar44 + *(uint *)(iVar15 + 0x1c) == 0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n    }\n    else {\n      local_30 = pppppppuVar29[1];\n      local_24 = 0;\n      local_2c = pppppppuVar29[2];\n      local_20 = 0;\n      local_28 = &DAT_000813a0;\n      local_b4 = &local_34;\n      local_34 = pppppppuVar29;\n    }\nLAB_00023764:\n    local_9c = (undefined4 *****)0x0;\n    local_ac = (undefined4 *****)0x0;\n    local_94 = (undefined4 *******)0x0;\n    local_a0 = (undefined4 ******)0x0;\n    local_98 = (undefined4 ******)0x0;\nLAB_000237a6:\n    pppppppuVar30 = pppppppuVar29;\n    if (pppppppuVar30 == (undefined4 *******)0x0) {\n      pppppuVar17 = (undefined4 *****)0x1;\nLAB_000237e1:\n      ppppppuVar27 = local_b4[1];\n      local_a8 = local_b4[2];\n      local_a4 = (undefined4 *****)((int)local_9c + (int)pppppuVar17);\n      if (ppppppuVar27 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }\n      }\n      else {\n        bVar41 = local_98 != local_a8;\n        if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }\n        pppppuVar18 = (undefined4 *****)0x0;\n        if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }\n        ppppppuVar27[8] = pppppuVar18;\n        ppppppuVar27[0x12] = local_ac;\n        ppppppuVar27[0x13] = (undefined4 *****)0x0;\n        local_a0 = ppppppuVar27;\n        if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }\n      goto LAB_000238d0;\n    }\n    ppppppuVar27 = pppppppuVar30[3];\n    uVar33 = (int)pppppppuVar30[4] + (int)*ppppppuVar27;\n    uVar38 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27);\n    ppppppuVar27 = local_b4[3];\n    uVar16 = (int)local_b4[4] + (int)*ppppppuVar27;\n    uVar32 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)local_b4[4],(uint)*ppppppuVar27);\n    if (uVar32 < uVar38 || uVar32 - uVar38 < (uint)(uVar16 < uVar33)) {\n      pppppuVar17 = (undefined4 *****)\n                    (uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000);\n      goto LAB_000237e1;\n    }\n    goto LAB_000237a0;\n  }" else (if_statement "if (pppppppuVar29 != (undefined4 *******)0x0) {\n    uVar44 = FUN_0003fad0(*(undefined4 *)(*DAT_000809e8 + 4));\n    iVar15 = FUN_0003e1d0(*(undefined4 *)(*DAT_000809e8 + 4));\n    if ((int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +\n        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c)) == 0 &&\n        (uint)uVar44 + *(uint *)(iVar15 + 0x1c) == 0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n    }\n    else {\n      local_30 = pppppppuVar29[1];\n      local_24 = 0;\n      local_2c = pppppppuVar29[2];\n      local_20 = 0;\n      local_28 = &DAT_000813a0;\n      local_b4 = &local_34;\n      local_34 = pppppppuVar29;\n    }\nLAB_00023764:\n    local_9c = (undefined4 *****)0x0;\n    local_ac = (undefined4 *****)0x0;\n    local_94 = (undefined4 *******)0x0;\n    local_a0 = (undefined4 ******)0x0;\n    local_98 = (undefined4 ******)0x0;\nLAB_000237a6:\n    pppppppuVar30 = pppppppuVar29;\n    if (pppppppuVar30 == (undefined4 *******)0x0) {\n      pppppuVar17 = (undefined4 *****)0x1;\nLAB_000237e1:\n      ppppppuVar27 = local_b4[1];\n      local_a8 = local_b4[2];\n      local_a4 = (undefined4 *****)((int)local_9c + (int)pppppuVar17);\n      if (ppppppuVar27 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }\n      }\n      else {\n        bVar41 = local_98 != local_a8;\n        if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }\n        pppppuVar18 = (undefined4 *****)0x0;\n        if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }\n        ppppppuVar27[8] = pppppuVar18;\n        ppppppuVar27[0x12] = local_ac;\n        ppppppuVar27[0x13] = (undefined4 *****)0x0;\n        local_a0 = ppppppuVar27;\n        if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }\n      goto LAB_000238d0;\n    }\n    ppppppuVar27 = pppppppuVar30[3];\n    uVar33 = (int)pppppppuVar30[4] + (int)*ppppppuVar27;\n    uVar38 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27);\n    ppppppuVar27 = local_b4[3];\n    uVar16 = (int)local_b4[4] + (int)*ppppppuVar27;\n    uVar32 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)local_b4[4],(uint)*ppppppuVar27);\n    if (uVar32 < uVar38 || uVar32 - uVar38 < (uint)(uVar16 < uVar33)) {\n      pppppuVar17 = (undefined4 *****)\n                    (uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000);\n      goto LAB_000237e1;\n    }\n    goto LAB_000237a0;\n  }" if (parenthesized_expression "(pppppppuVar29 != (undefined4 *******)0x0)" ( (binary_expression "pppppppuVar29 != (undefined4 *******)0x0" identifier != (cast_expression "(undefined4 *******)0x0" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n    uVar44 = FUN_0003fad0(*(undefined4 *)(*DAT_000809e8 + 4));\n    iVar15 = FUN_0003e1d0(*(undefined4 *)(*DAT_000809e8 + 4));\n    if ((int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +\n        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c)) == 0 &&\n        (uint)uVar44 + *(uint *)(iVar15 + 0x1c) == 0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n    }\n    else {\n      local_30 = pppppppuVar29[1];\n      local_24 = 0;\n      local_2c = pppppppuVar29[2];\n      local_20 = 0;\n      local_28 = &DAT_000813a0;\n      local_b4 = &local_34;\n      local_34 = pppppppuVar29;\n    }\nLAB_00023764:\n    local_9c = (undefined4 *****)0x0;\n    local_ac = (undefined4 *****)0x0;\n    local_94 = (undefined4 *******)0x0;\n    local_a0 = (undefined4 ******)0x0;\n    local_98 = (undefined4 ******)0x0;\nLAB_000237a6:\n    pppppppuVar30 = pppppppuVar29;\n    if (pppppppuVar30 == (undefined4 *******)0x0) {\n      pppppuVar17 = (undefined4 *****)0x1;\nLAB_000237e1:\n      ppppppuVar27 = local_b4[1];\n      local_a8 = local_b4[2];\n      local_a4 = (undefined4 *****)((int)local_9c + (int)pppppuVar17);\n      if (ppppppuVar27 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }\n      }\n      else {\n        bVar41 = local_98 != local_a8;\n        if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }\n        pppppuVar18 = (undefined4 *****)0x0;\n        if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }\n        ppppppuVar27[8] = pppppuVar18;\n        ppppppuVar27[0x12] = local_ac;\n        ppppppuVar27[0x13] = (undefined4 *****)0x0;\n        local_a0 = ppppppuVar27;\n        if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }\n      goto LAB_000238d0;\n    }\n    ppppppuVar27 = pppppppuVar30[3];\n    uVar33 = (int)pppppppuVar30[4] + (int)*ppppppuVar27;\n    uVar38 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27);\n    ppppppuVar27 = local_b4[3];\n    uVar16 = (int)local_b4[4] + (int)*ppppppuVar27;\n    uVar32 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)local_b4[4],(uint)*ppppppuVar27);\n    if (uVar32 < uVar38 || uVar32 - uVar38 < (uint)(uVar16 < uVar33)) {\n      pppppuVar17 = (undefined4 *****)\n                    (uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000);\n      goto LAB_000237e1;\n    }\n    goto LAB_000237a0;\n  }" { (expression_statement "uVar44 = FUN_0003fad0(*(undefined4 *)(*DAT_000809e8 + 4));" (assignment_expression "uVar44 = FUN_0003fad0(*(undefined4 *)(*DAT_000809e8 + 4))" identifier = (call_expression "FUN_0003fad0(*(undefined4 *)(*DAT_000809e8 + 4))" identifier (argument_list "(*(undefined4 *)(*DAT_000809e8 + 4))" ( (pointer_expression "*(undefined4 *)(*DAT_000809e8 + 4)" * (cast_expression "(undefined4 *)(*DAT_000809e8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*DAT_000809e8 + 4)" ( (binary_expression "*DAT_000809e8 + 4" (pointer_expression "*DAT_000809e8" * identifier) + number_literal) )))) )))) ;) (expression_statement "iVar15 = FUN_0003e1d0(*(undefined4 *)(*DAT_000809e8 + 4));" (assignment_expression "iVar15 = FUN_0003e1d0(*(undefined4 *)(*DAT_000809e8 + 4))" identifier = (call_expression "FUN_0003e1d0(*(undefined4 *)(*DAT_000809e8 + 4))" identifier (argument_list "(*(undefined4 *)(*DAT_000809e8 + 4))" ( (pointer_expression "*(undefined4 *)(*DAT_000809e8 + 4)" * (cast_expression "(undefined4 *)(*DAT_000809e8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*DAT_000809e8 + 4)" ( (binary_expression "*DAT_000809e8 + 4" (pointer_expression "*DAT_000809e8" * identifier) + number_literal) )))) )))) ;) (if_statement "if ((int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +\n        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c)) == 0 &&\n        (uint)uVar44 + *(uint *)(iVar15 + 0x1c) == 0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n    }\n    else {\n      local_30 = pppppppuVar29[1];\n      local_24 = 0;\n      local_2c = pppppppuVar29[2];\n      local_20 = 0;\n      local_28 = &DAT_000813a0;\n      local_b4 = &local_34;\n      local_34 = pppppppuVar29;\n    }" if (parenthesized_expression "((int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +\n        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c)) == 0 &&\n        (uint)uVar44 + *(uint *)(iVar15 + 0x1c) == 0)" ( (binary_expression "(int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +\n        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c)) == 0 &&\n        (uint)uVar44 + *(uint *)(iVar15 + 0x1c) == 0" (binary_expression "(int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +\n        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c)) == 0" (binary_expression "(int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +\n        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c))" (binary_expression "(int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20)" (cast_expression "(int)((ulonglong)uVar44 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar44 >> 0x20)" ( (binary_expression "(ulonglong)uVar44 >> 0x20" (cast_expression "(ulonglong)uVar44" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + (pointer_expression "*(int *)(iVar15 + 0x20)" * (cast_expression "(int *)(iVar15 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x20)" ( (binary_expression "iVar15 + 0x20" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c))" identifier (argument_list "((uint)uVar44,*(uint *)(iVar15 + 0x1c))" ( (cast_expression "(uint)uVar44" ( (type_descriptor "uint" type_identifier) ) identifier) , (pointer_expression "*(uint *)(iVar15 + 0x1c)" * (cast_expression "(uint *)(iVar15 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x1c)" ( (binary_expression "iVar15 + 0x1c" identifier + number_literal) )))) ))))) == number_literal) && (binary_expression "(uint)uVar44 + *(uint *)(iVar15 + 0x1c) == 0" (binary_expression "(uint)uVar44 + *(uint *)(iVar15 + 0x1c)" (cast_expression "(uint)uVar44" ( (type_descriptor "uint" type_identifier) ) identifier) + (pointer_expression "*(uint *)(iVar15 + 0x1c)" * (cast_expression "(uint *)(iVar15 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x1c)" ( (binary_expression "iVar15 + 0x1c" identifier + number_literal) ))))) == number_literal)) )) (compound_statement "{\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n    }" { (expression_statement "pppppppuVar29 = (undefined4 *******)*pppppppuVar29;" (assignment_expression "pppppppuVar29 = (undefined4 *******)*pppppppuVar29" identifier = (cast_expression "(undefined4 *******)*pppppppuVar29" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*pppppppuVar29" * identifier))) ;) }) (else_clause "else {\n      local_30 = pppppppuVar29[1];\n      local_24 = 0;\n      local_2c = pppppppuVar29[2];\n      local_20 = 0;\n      local_28 = &DAT_000813a0;\n      local_b4 = &local_34;\n      local_34 = pppppppuVar29;\n    }" else (compound_statement "{\n      local_30 = pppppppuVar29[1];\n      local_24 = 0;\n      local_2c = pppppppuVar29[2];\n      local_20 = 0;\n      local_28 = &DAT_000813a0;\n      local_b4 = &local_34;\n      local_34 = pppppppuVar29;\n    }" { (expression_statement "local_30 = pppppppuVar29[1];" (assignment_expression "local_30 = pppppppuVar29[1]" identifier = (subscript_expression "pppppppuVar29[1]" identifier [ number_literal ])) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "local_2c = pppppppuVar29[2];" (assignment_expression "local_2c = pppppppuVar29[2]" identifier = (subscript_expression "pppppppuVar29[2]" identifier [ number_literal ])) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_28 = &DAT_000813a0;" (assignment_expression "local_28 = &DAT_000813a0" identifier = (pointer_expression "&DAT_000813a0" & identifier)) ;) (expression_statement "local_b4 = &local_34;" (assignment_expression "local_b4 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "local_34 = pppppppuVar29;" (assignment_expression "local_34 = pppppppuVar29" identifier = identifier) ;) }))) (labeled_statement "LAB_00023764:\n    local_9c = (undefined4 *****)0x0;" statement_identifier : (expression_statement "local_9c = (undefined4 *****)0x0;" (assignment_expression "local_9c = (undefined4 *****)0x0" identifier = (cast_expression "(undefined4 *****)0x0" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;)) (expression_statement "local_ac = (undefined4 *****)0x0;" (assignment_expression "local_ac = (undefined4 *****)0x0" identifier = (cast_expression "(undefined4 *****)0x0" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "local_94 = (undefined4 *******)0x0;" (assignment_expression "local_94 = (undefined4 *******)0x0" identifier = (cast_expression "(undefined4 *******)0x0" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "local_a0 = (undefined4 ******)0x0;" (assignment_expression "local_a0 = (undefined4 ******)0x0" identifier = (cast_expression "(undefined4 ******)0x0" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "local_98 = (undefined4 ******)0x0;" (assignment_expression "local_98 = (undefined4 ******)0x0" identifier = (cast_expression "(undefined4 ******)0x0" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (labeled_statement "LAB_000237a6:\n    pppppppuVar30 = pppppppuVar29;" statement_identifier : (expression_statement "pppppppuVar30 = pppppppuVar29;" (assignment_expression "pppppppuVar30 = pppppppuVar29" identifier = identifier) ;)) (if_statement "if (pppppppuVar30 == (undefined4 *******)0x0) {\n      pppppuVar17 = (undefined4 *****)0x1;\nLAB_000237e1:\n      ppppppuVar27 = local_b4[1];\n      local_a8 = local_b4[2];\n      local_a4 = (undefined4 *****)((int)local_9c + (int)pppppuVar17);\n      if (ppppppuVar27 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }\n      }\n      else {\n        bVar41 = local_98 != local_a8;\n        if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }\n        pppppuVar18 = (undefined4 *****)0x0;\n        if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }\n        ppppppuVar27[8] = pppppuVar18;\n        ppppppuVar27[0x12] = local_ac;\n        ppppppuVar27[0x13] = (undefined4 *****)0x0;\n        local_a0 = ppppppuVar27;\n        if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }\n      goto LAB_000238d0;\n    }" if (parenthesized_expression "(pppppppuVar30 == (undefined4 *******)0x0)" ( (binary_expression "pppppppuVar30 == (undefined4 *******)0x0" identifier == (cast_expression "(undefined4 *******)0x0" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n      pppppuVar17 = (undefined4 *****)0x1;\nLAB_000237e1:\n      ppppppuVar27 = local_b4[1];\n      local_a8 = local_b4[2];\n      local_a4 = (undefined4 *****)((int)local_9c + (int)pppppuVar17);\n      if (ppppppuVar27 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }\n      }\n      else {\n        bVar41 = local_98 != local_a8;\n        if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }\n        pppppuVar18 = (undefined4 *****)0x0;\n        if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }\n        ppppppuVar27[8] = pppppuVar18;\n        ppppppuVar27[0x12] = local_ac;\n        ppppppuVar27[0x13] = (undefined4 *****)0x0;\n        local_a0 = ppppppuVar27;\n        if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }\n      goto LAB_000238d0;\n    }" { (expression_statement "pppppuVar17 = (undefined4 *****)0x1;" (assignment_expression "pppppuVar17 = (undefined4 *****)0x1" identifier = (cast_expression "(undefined4 *****)0x1" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (labeled_statement "LAB_000237e1:\n      ppppppuVar27 = local_b4[1];" statement_identifier : (expression_statement "ppppppuVar27 = local_b4[1];" (assignment_expression "ppppppuVar27 = local_b4[1]" identifier = (subscript_expression "local_b4[1]" identifier [ number_literal ])) ;)) (expression_statement "local_a8 = local_b4[2];" (assignment_expression "local_a8 = local_b4[2]" identifier = (subscript_expression "local_b4[2]" identifier [ number_literal ])) ;) (expression_statement "local_a4 = (undefined4 *****)((int)local_9c + (int)pppppuVar17);" (assignment_expression "local_a4 = (undefined4 *****)((int)local_9c + (int)pppppuVar17)" identifier = (cast_expression "(undefined4 *****)((int)local_9c + (int)pppppuVar17)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_9c + (int)pppppuVar17)" ( (binary_expression "(int)local_9c + (int)pppppuVar17" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppppuVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (ppppppuVar27 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }\n      }\n      else {\n        bVar41 = local_98 != local_a8;\n        if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }\n        pppppuVar18 = (undefined4 *****)0x0;\n        if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }\n        ppppppuVar27[8] = pppppuVar18;\n        ppppppuVar27[0x12] = local_ac;\n        ppppppuVar27[0x13] = (undefined4 *****)0x0;\n        local_a0 = ppppppuVar27;\n        if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }" if (parenthesized_expression "(ppppppuVar27 == local_a0)" ( (binary_expression "ppppppuVar27 == local_a0" identifier == identifier) )) (compound_statement "{\n        if (local_98 != local_a8) {\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }\n      }" { (if_statement "if (local_98 != local_a8) {\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }" if (parenthesized_expression "(local_98 != local_a8)" ( (binary_expression "local_98 != local_a8" identifier != identifier) )) (compound_statement "{\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }" { (if_statement "if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }" if (parenthesized_expression "(local_98 != (undefined4 ******)0x0)" ( (binary_expression "local_98 != (undefined4 ******)0x0" identifier != (cast_expression "(undefined4 ******)0x0" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n            local_98[0xd] = local_94[5];\n          }" { (expression_statement "local_98[0xd] = local_94[5];" (assignment_expression "local_98[0xd] = local_94[5]" (subscript_expression "local_98[0xd]" identifier [ number_literal ]) = (subscript_expression "local_94[5]" identifier [ number_literal ])) ;) })) (goto_statement "goto LAB_000238a1;" goto statement_identifier ;) })) (if_statement "if ((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }" if (parenthesized_expression "((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0))" ( (binary_expression "(local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)" (parenthesized_expression "(local_94 != (undefined4 *******)0x0)" ( (binary_expression "local_94 != (undefined4 *******)0x0" identifier != (cast_expression "(undefined4 *******)0x0" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) && (parenthesized_expression "(iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)" ( (comma_expression "iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0" (assignment_expression "iVar15 = (int)local_b4[5] - (int)local_94[5]" identifier = (binary_expression "(int)local_b4[5] - (int)local_94[5]" (cast_expression "(int)local_b4[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_b4[5]" identifier [ number_literal ])) - (cast_expression "(int)local_94[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_94[5]" identifier [ number_literal ])))) , (binary_expression "iVar15 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }" { (do_statement "do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );" do (compound_statement "{\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          }" { (expression_statement "iVar21 = (int)pppppuVar17 - 1;" (assignment_expression "iVar21 = (int)pppppuVar17 - 1" identifier = (binary_expression "(int)pppppuVar17 - 1" (cast_expression "(int)pppppuVar17" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal)) ;) (if_statement "if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }" if (parenthesized_expression "(iVar21 < 0x10)" ( (binary_expression "iVar21 < 0x10" identifier < number_literal) )) (compound_statement "{\n              pppppuVar17 = (undefined4 *****)0x0;\n            }" { (expression_statement "pppppuVar17 = (undefined4 *****)0x0;" (assignment_expression "pppppuVar17 = (undefined4 *****)0x0" identifier = (cast_expression "(undefined4 *****)0x0" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) }) (else_clause "else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }" else (compound_statement "{\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }" { (expression_statement "pppppuVar17 = pppppuVar17 + -4;" (assignment_expression "pppppuVar17 = pppppuVar17 + -4" identifier = (binary_expression "pppppuVar17 + -4" identifier + number_literal)) ;) (expression_statement "iVar21 = 0xf;" (assignment_expression "iVar21 = 0xf" identifier = number_literal) ;) }))) (if_statement "if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }" if (parenthesized_expression "(iVar15 + 7U < 0xf)" ( (binary_expression "iVar15 + 7U < 0xf" (binary_expression "iVar15 + 7U" identifier + number_literal) < number_literal) )) (compound_statement "{\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }" { (if_statement "if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }" if (parenthesized_expression "(pcVar1 <= local_38)" ( (binary_expression "pcVar1 <= local_38" identifier <= identifier) )) (compound_statement "{\n                local_38 = (char *)FUN_0001ff00(1);\n              }" { (expression_statement "local_38 = (char *)FUN_0001ff00(1);" (assignment_expression "local_38 = (char *)FUN_0001ff00(1)" identifier = (cast_expression "(char *)FUN_0001ff00(1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001ff00(1)" identifier (argument_list "(1)" ( number_literal ))))) ;) })) (expression_statement "local_ac = (undefined4 *****)((int)local_ac + 1);" (assignment_expression "local_ac = (undefined4 *****)((int)local_ac + 1)" identifier = (cast_expression "(undefined4 *****)((int)local_ac + 1)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_ac + 1)" ( (binary_expression "(int)local_ac + 1" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*local_38 = (char)iVar15 * '\x10' + (char)iVar21;" (assignment_expression "*local_38 = (char)iVar15 * '\x10' + (char)iVar21" (pointer_expression "*local_38" * identifier) = (binary_expression "(char)iVar15 * '\x10' + (char)iVar21" (binary_expression "(char)iVar15 * '\x10'" (cast_expression "(char)iVar15" ( (type_descriptor "char" primitive_type) ) identifier) * (char_literal "'\x10'" ' escape_sequence ')) + (cast_expression "(char)iVar21" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "local_38 = local_38 + 1;" (assignment_expression "local_38 = local_38 + 1" identifier = (binary_expression "local_38 + 1" identifier + number_literal)) ;) (break_statement "break;" break ;) })) (if_statement "if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }" if (parenthesized_expression "((int)pcVar1 - (int)local_38 < 3)" ( (binary_expression "(int)pcVar1 - (int)local_38 < 3" (binary_expression "(int)pcVar1 - (int)local_38" (cast_expression "(int)pcVar1" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier)) < number_literal) )) (compound_statement "{\n              local_38 = (char *)FUN_0001ff00(3);\n            }" { (expression_statement "local_38 = (char *)FUN_0001ff00(3);" (assignment_expression "local_38 = (char *)FUN_0001ff00(3)" identifier = (cast_expression "(char *)FUN_0001ff00(3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001ff00(3)" identifier (argument_list "(3)" ( number_literal ))))) ;) })) (expression_statement "*local_38 = (char)iVar21 + -0x80;" (assignment_expression "*local_38 = (char)iVar21 + -0x80" (pointer_expression "*local_38" * identifier) = (binary_expression "(char)iVar21 + -0x80" (cast_expression "(char)iVar21" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal)) ;) (if_statement "if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }" if (parenthesized_expression "(iVar15 < -0x8000)" ( (binary_expression "iVar15 < -0x8000" identifier < number_literal) )) (compound_statement "{\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }" { (expression_statement "iVar15 = iVar15 + 0x8000;" (assignment_expression "iVar15 = iVar15 + 0x8000" identifier = (binary_expression "iVar15 + 0x8000" identifier + number_literal)) ;) (expression_statement "cVar37 = -0x80;" (assignment_expression "cVar37 = -0x80" identifier = number_literal) ;) (expression_statement "cVar28 = '\0';" (assignment_expression "cVar28 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }" else (compound_statement "{\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }" { (if_statement "if (iVar15 < 0x8000) goto code_r0x00024a60;" if (parenthesized_expression "(iVar15 < 0x8000)" ( (binary_expression "iVar15 < 0x8000" identifier < number_literal) )) (goto_statement "goto code_r0x00024a60;" goto statement_identifier ;)) (expression_statement "iVar15 = iVar15 + -0x7fff;" (assignment_expression "iVar15 = iVar15 + -0x7fff" identifier = (binary_expression "iVar15 + -0x7fff" identifier + number_literal)) ;) (expression_statement "cVar37 = '\x7f';" (assignment_expression "cVar37 = '\x7f'" identifier = (char_literal "'\x7f'" ' escape_sequence ')) ;) (expression_statement "cVar28 = -1;" (assignment_expression "cVar28 = -1" identifier = number_literal) ;) }))) (expression_statement "local_ac = (undefined4 *****)((int)local_ac + 3);" (assignment_expression "local_ac = (undefined4 *****)((int)local_ac + 3)" identifier = (cast_expression "(undefined4 *****)((int)local_ac + 3)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_ac + 3)" ( (binary_expression "(int)local_ac + 3" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pcVar24 = local_38 + 2;" (assignment_expression "pcVar24 = local_38 + 2" identifier = (binary_expression "local_38 + 2" identifier + number_literal)) ;) (expression_statement "local_38[1] = cVar37;" (assignment_expression "local_38[1] = cVar37" (subscript_expression "local_38[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_38 = local_38 + 3;" (assignment_expression "local_38 = local_38 + 3" identifier = (binary_expression "local_38 + 3" identifier + number_literal)) ;) (expression_statement "*pcVar24 = cVar28;" (assignment_expression "*pcVar24 = cVar28" (pointer_expression "*pcVar24" * identifier) = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) }) (else_clause "else {\n        bVar41 = local_98 != local_a8;\n        if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }\n        pppppuVar18 = (undefined4 *****)0x0;\n        if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }\n        ppppppuVar27[8] = pppppuVar18;\n        ppppppuVar27[0x12] = local_ac;\n        ppppppuVar27[0x13] = (undefined4 *****)0x0;\n        local_a0 = ppppppuVar27;\n        if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }" else (compound_statement "{\n        bVar41 = local_98 != local_a8;\n        if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }\n        pppppuVar18 = (undefined4 *****)0x0;\n        if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }\n        ppppppuVar27[8] = pppppuVar18;\n        ppppppuVar27[0x12] = local_ac;\n        ppppppuVar27[0x13] = (undefined4 *****)0x0;\n        local_a0 = ppppppuVar27;\n        if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }" { (expression_statement "bVar41 = local_98 != local_a8;" (assignment_expression "bVar41 = local_98 != local_a8" identifier = (binary_expression "local_98 != local_a8" identifier != identifier)) ;) (if_statement "if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }" if (parenthesized_expression "(local_98 != (undefined4 ******)0x0 && bVar41)" ( (binary_expression "local_98 != (undefined4 ******)0x0 && bVar41" (binary_expression "local_98 != (undefined4 ******)0x0" identifier != (cast_expression "(undefined4 ******)0x0" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) && identifier) )) (compound_statement "{\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }" { (expression_statement "local_98[0xd] = local_94[5];" (assignment_expression "local_98[0xd] = local_94[5]" (subscript_expression "local_98[0xd]" identifier [ number_literal ]) = (subscript_expression "local_94[5]" identifier [ number_literal ])) ;) (expression_statement "bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;" (assignment_expression "bVar41 = local_98 != (undefined4 ******)0x0 && bVar41" identifier = (binary_expression "local_98 != (undefined4 ******)0x0 && bVar41" (binary_expression "local_98 != (undefined4 ******)0x0" identifier != (cast_expression "(undefined4 ******)0x0" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) && identifier)) ;) })) (expression_statement "pppppuVar18 = (undefined4 *****)0x0;" (assignment_expression "pppppuVar18 = (undefined4 *****)0x0" identifier = (cast_expression "(undefined4 *****)0x0" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (if_statement "if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }" if (parenthesized_expression "(local_a0 != (undefined4 ******)0x0)" ( (binary_expression "local_a0 != (undefined4 ******)0x0" identifier != (cast_expression "(undefined4 ******)0x0" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }" { (expression_statement "local_9c = (undefined4 *****)0x0;" (assignment_expression "local_9c = (undefined4 *****)0x0" identifier = (cast_expression "(undefined4 *****)0x0" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);" (assignment_expression "local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13])" (subscript_expression "local_a0[0x15]" identifier [ number_literal ]) = (cast_expression "(undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13])" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13])" ( (binary_expression "-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]" (unary_expression "-(uint)(local_ac < local_a0[0x12])" - (call_expression "(uint)(local_ac < local_a0[0x12])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_ac < local_a0[0x12])" ( (binary_expression "local_ac < local_a0[0x12]" identifier < (subscript_expression "local_a0[0x12]" identifier [ number_literal ])) )))) - (cast_expression "(int)local_a0[0x13]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_a0[0x13]" identifier [ number_literal ]))) )))) ;) (expression_statement "local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);" (assignment_expression "local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12])" (subscript_expression "local_a0[0x14]" identifier [ number_literal ]) = (cast_expression "(undefined4 *****)((int)local_ac - (int)local_a0[0x12])" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_ac - (int)local_a0[0x12])" ( (binary_expression "(int)local_ac - (int)local_a0[0x12]" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_a0[0x12]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_a0[0x12]" identifier [ number_literal ]))) )))) ;) (expression_statement "local_a0[9] = local_a4;" (assignment_expression "local_a0[9] = local_a4" (subscript_expression "local_a0[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;" (assignment_expression "*(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 4) + (int)local_a4" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);" (assignment_expression "pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8])" identifier = (cast_expression "(undefined4 *****)((int)local_a0[9] + (int)local_a0[8])" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_a0[9] + (int)local_a0[8])" ( (binary_expression "(int)local_a0[9] + (int)local_a0[8]" (cast_expression "(int)local_a0[9]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_a0[9]" identifier [ number_literal ])) + (cast_expression "(int)local_a0[8]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_a0[8]" identifier [ number_literal ]))) )))) ;) (expression_statement "local_a4 = pppppuVar17;" (assignment_expression "local_a4 = pppppuVar17" identifier = identifier) ;) })) (expression_statement "ppppppuVar27[8] = pppppuVar18;" (assignment_expression "ppppppuVar27[8] = pppppuVar18" (subscript_expression "ppppppuVar27[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppppppuVar27[0x12] = local_ac;" (assignment_expression "ppppppuVar27[0x12] = local_ac" (subscript_expression "ppppppuVar27[0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppppppuVar27[0x13] = (undefined4 *****)0x0;" (assignment_expression "ppppppuVar27[0x13] = (undefined4 *****)0x0" (subscript_expression "ppppppuVar27[0x13]" identifier [ number_literal ]) = (cast_expression "(undefined4 *****)0x0" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "local_a0 = ppppppuVar27;" (assignment_expression "local_a0 = ppppppuVar27" identifier = identifier) ;) (if_statement "if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }" if (parenthesized_expression "(bVar41)" ( identifier )) (compound_statement "{\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }" { (labeled_statement "LAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }" statement_identifier : (if_statement "if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }" if (parenthesized_expression "(local_a8 != (undefined4 ******)0x0)" ( (binary_expression "local_a8 != (undefined4 ******)0x0" identifier != (cast_expression "(undefined4 ******)0x0" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }" { (expression_statement "local_a8[0xc] = local_b4[5];" (assignment_expression "local_a8[0xc] = local_b4[5]" (subscript_expression "local_a8[0xc]" identifier [ number_literal ]) = (subscript_expression "local_b4[5]" identifier [ number_literal ])) ;) (expression_statement "pppppuVar18 = local_a0[0x12];" (assignment_expression "pppppuVar18 = local_a0[0x12]" identifier = (subscript_expression "local_a0[0x12]" identifier [ number_literal ])) ;) (expression_statement "pppppuVar4 = local_a0[0x13];" (assignment_expression "pppppuVar4 = local_a0[0x13]" identifier = (subscript_expression "local_a0[0x13]" identifier [ number_literal ])) ;) (expression_statement "local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);" (assignment_expression "local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12])" (subscript_expression "local_a8[0xe]" identifier [ number_literal ]) = (cast_expression "(undefined4 *****)((int)local_ac - (int)local_a0[0x12])" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_ac - (int)local_a0[0x12])" ( (binary_expression "(int)local_ac - (int)local_a0[0x12]" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_a0[0x12]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_a0[0x12]" identifier [ number_literal ]))) )))) ;) (expression_statement "local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);" (assignment_expression "local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4)" (subscript_expression "local_a8[0xf]" identifier [ number_literal ]) = (cast_expression "(undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4)" ( (binary_expression "-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4" (unary_expression "-(uint)(local_ac < pppppuVar18)" - (call_expression "(uint)(local_ac < pppppuVar18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_ac < pppppuVar18)" ( (binary_expression "local_ac < pppppuVar18" identifier < identifier) )))) - (cast_expression "(int)pppppuVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_a8[4] = local_9c;" (assignment_expression "local_a8[4] = local_9c" (subscript_expression "local_a8[4]" identifier [ number_literal ]) = identifier) ;) }))) }) (else_clause "else {\n          local_a8 = local_98;\n        }" else (compound_statement "{\n          local_a8 = local_98;\n        }" { (expression_statement "local_a8 = local_98;" (assignment_expression "local_a8 = local_98" identifier = identifier) ;) }))) }))) (goto_statement "goto LAB_000238d0;" goto statement_identifier ;) })) (expression_statement "ppppppuVar27 = pppppppuVar30[3];" (assignment_expression "ppppppuVar27 = pppppppuVar30[3]" identifier = (subscript_expression "pppppppuVar30[3]" identifier [ number_literal ])) ;) (expression_statement "uVar33 = (int)pppppppuVar30[4] + (int)*ppppppuVar27;" (assignment_expression "uVar33 = (int)pppppppuVar30[4] + (int)*ppppppuVar27" identifier = (binary_expression "(int)pppppppuVar30[4] + (int)*ppppppuVar27" (cast_expression "(int)pppppppuVar30[4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppuVar30[4]" identifier [ number_literal ])) + (cast_expression "(int)*ppppppuVar27" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*ppppppuVar27" * identifier)))) ;) (expression_statement "uVar38 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27);" (assignment_expression "uVar38 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27)" identifier = (binary_expression "(int)ppppppuVar27[1] + (uint)CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27)" (cast_expression "(int)ppppppuVar27[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppppppuVar27[1]" identifier [ number_literal ])) + (cast_expression "(uint)CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27)" identifier (argument_list "((uint)pppppppuVar30[4],(uint)*ppppppuVar27)" ( (cast_expression "(uint)pppppppuVar30[4]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppuVar30[4]" identifier [ number_literal ])) , (binary_expression "(uint)*ppppppuVar27" (parenthesized_expression "(uint)" ( identifier )) * identifier) )))))) ;) (expression_statement "ppppppuVar27 = local_b4[3];" (assignment_expression "ppppppuVar27 = local_b4[3]" identifier = (subscript_expression "local_b4[3]" identifier [ number_literal ])) ;) (expression_statement "uVar16 = (int)local_b4[4] + (int)*ppppppuVar27;" (assignment_expression "uVar16 = (int)local_b4[4] + (int)*ppppppuVar27" identifier = (binary_expression "(int)local_b4[4] + (int)*ppppppuVar27" (cast_expression "(int)local_b4[4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_b4[4]" identifier [ number_literal ])) + (cast_expression "(int)*ppppppuVar27" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*ppppppuVar27" * identifier)))) ;) (expression_statement "uVar32 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)local_b4[4],(uint)*ppppppuVar27);" (assignment_expression "uVar32 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)local_b4[4],(uint)*ppppppuVar27)" identifier = (binary_expression "(int)ppppppuVar27[1] + (uint)CARRY4((uint)local_b4[4],(uint)*ppppppuVar27)" (cast_expression "(int)ppppppuVar27[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppppppuVar27[1]" identifier [ number_literal ])) + (cast_expression "(uint)CARRY4((uint)local_b4[4],(uint)*ppppppuVar27)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)local_b4[4],(uint)*ppppppuVar27)" identifier (argument_list "((uint)local_b4[4],(uint)*ppppppuVar27)" ( (cast_expression "(uint)local_b4[4]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_b4[4]" identifier [ number_literal ])) , (binary_expression "(uint)*ppppppuVar27" (parenthesized_expression "(uint)" ( identifier )) * identifier) )))))) ;) (if_statement "if (uVar32 < uVar38 || uVar32 - uVar38 < (uint)(uVar16 < uVar33)) {\n      pppppuVar17 = (undefined4 *****)\n                    (uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000);\n      goto LAB_000237e1;\n    }" if (parenthesized_expression "(uVar32 < uVar38 || uVar32 - uVar38 < (uint)(uVar16 < uVar33))" ( (binary_expression "uVar32 < uVar38 || uVar32 - uVar38 < (uint)(uVar16 < uVar33)" (binary_expression "uVar32 < uVar38" identifier < identifier) || (binary_expression "uVar32 - uVar38 < (uint)(uVar16 < uVar33)" (binary_expression "uVar32 - uVar38" identifier - identifier) < (call_expression "(uint)(uVar16 < uVar33)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar16 < uVar33)" ( (binary_expression "uVar16 < uVar33" identifier < identifier) ))))) )) (compound_statement "{\n      pppppuVar17 = (undefined4 *****)\n                    (uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000);\n      goto LAB_000237e1;\n    }" { (expression_statement "pppppuVar17 = (undefined4 *****)\n                    (uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000);" (assignment_expression "pppppuVar17 = (undefined4 *****)\n                    (uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000)" identifier = (cast_expression "(undefined4 *****)\n                    (uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000)" ( (binary_expression "uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000" (binary_expression "uVar33 - uVar16 >> 2" (binary_expression "uVar33 - uVar16" identifier - identifier) >> number_literal) | (binary_expression "((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000" (parenthesized_expression "((uVar38 - uVar32) - (uint)(uVar33 < uVar16))" ( (binary_expression "(uVar38 - uVar32) - (uint)(uVar33 < uVar16)" (parenthesized_expression "(uVar38 - uVar32)" ( (binary_expression "uVar38 - uVar32" identifier - identifier) )) - (call_expression "(uint)(uVar33 < uVar16)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar33 < uVar16)" ( (binary_expression "uVar33 < uVar16" identifier < identifier) )))) )) * number_literal)) )))) ;) (goto_statement "goto LAB_000237e1;" goto statement_identifier ;) })) (goto_statement "goto LAB_000237a0;" goto statement_identifier ;) })))) (expression_statement "local_a4 = (undefined4 *****)0x0;" (assignment_expression "local_a4 = (undefined4 *****)0x0" identifier = (cast_expression "(undefined4 *****)0x0" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "local_ac = (undefined4 *****)0x0;" (assignment_expression "local_ac = (undefined4 *****)0x0" identifier = (cast_expression "(undefined4 *****)0x0" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (labeled_statement "LAB_00023a3f:\n  *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;" statement_identifier : (expression_statement "*(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;" (assignment_expression "*(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 4) + (int)local_a4" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (expression_statement "local_68 = FUN_0001ff70(local_ac,&local_38);" (assignment_expression "local_68 = FUN_0001ff70(local_ac,&local_38)" identifier = (call_expression "FUN_0001ff70(local_ac,&local_38)" identifier (argument_list "(local_ac,&local_38)" ( identifier , (pointer_expression "&local_38" & identifier) )))) ;) (expression_statement "*(uint *)(param_1 + 0x28) = local_68;" (assignment_expression "*(uint *)(param_1 + 0x28) = local_68" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(param_1 + 8) = local_68 - *(uint *)(param_1 + 0x10);" (assignment_expression "*(uint *)(param_1 + 8) = local_68 - *(uint *)(param_1 + 0x10)" (pointer_expression "*(uint *)(param_1 + 8)" * (cast_expression "(uint *)(param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = (binary_expression "local_68 - *(uint *)(param_1 + 0x10)" identifier - (pointer_expression "*(uint *)(param_1 + 0x10)" * (cast_expression "(uint *)(param_1 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "uVar16 = DAT_00080ca4;" (assignment_expression "uVar16 = DAT_00080ca4" identifier = identifier) ;) (expression_statement "*(uint *)(param_1 + 0xc) =\n       -(uint)(local_68 < *(uint *)(param_1 + 0x10)) - *(int *)(param_1 + 0x14);" (assignment_expression "*(uint *)(param_1 + 0xc) =\n       -(uint)(local_68 < *(uint *)(param_1 + 0x10)) - *(int *)(param_1 + 0x14)" (pointer_expression "*(uint *)(param_1 + 0xc)" * (cast_expression "(uint *)(param_1 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "-(uint)(local_68 < *(uint *)(param_1 + 0x10)) - *(int *)(param_1 + 0x14)" (unary_expression "-(uint)(local_68 < *(uint *)(param_1 + 0x10))" - (call_expression "(uint)(local_68 < *(uint *)(param_1 + 0x10))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_68 < *(uint *)(param_1 + 0x10))" ( (binary_expression "local_68 < *(uint *)(param_1 + 0x10)" identifier < (pointer_expression "*(uint *)(param_1 + 0x10)" * (cast_expression "(uint *)(param_1 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) )))) - (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x2c) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x2c)" * (cast_expression "(undefined4 *)(param_1 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x18) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x18)" * (cast_expression "(undefined4 *)(param_1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x1c)" * (cast_expression "(undefined4 *)(param_1 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x20) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x20) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x20)" * (cast_expression "(undefined4 *)(param_1 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(param_1 + 0x24) = uVar16;" (assignment_expression "*(uint *)(param_1 + 0x24) = uVar16" (pointer_expression "*(uint *)(param_1 + 0x24)" * (cast_expression "(uint *)(param_1 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar32 = (int)pcVar1 - (int)(pcVar14 + local_68) >> 0x1f;" (assignment_expression "uVar32 = (int)pcVar1 - (int)(pcVar14 + local_68) >> 0x1f" identifier = (binary_expression "(int)pcVar1 - (int)(pcVar14 + local_68) >> 0x1f" (binary_expression "(int)pcVar1 - (int)(pcVar14 + local_68)" (cast_expression "(int)pcVar1" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)(pcVar14 + local_68)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar14 + local_68)" ( (binary_expression "pcVar14 + local_68" identifier + identifier) )))) >> number_literal)) ;) (expression_statement "uVar33 = (int)((ulonglong)uVar36 * (ulonglong)uVar16 >> 0x20) + iVar26 * uVar16;" (assignment_expression "uVar33 = (int)((ulonglong)uVar36 * (ulonglong)uVar16 >> 0x20) + iVar26 * uVar16" identifier = (binary_expression "(int)((ulonglong)uVar36 * (ulonglong)uVar16 >> 0x20) + iVar26 * uVar16" (cast_expression "(int)((ulonglong)uVar36 * (ulonglong)uVar16 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar36 * (ulonglong)uVar16 >> 0x20)" ( (binary_expression "(ulonglong)uVar36 * (ulonglong)uVar16 >> 0x20" (binary_expression "(ulonglong)uVar36 * (ulonglong)uVar16" (cast_expression "(ulonglong)uVar36" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)uVar16" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) >> number_literal) ))) + (binary_expression "iVar26 * uVar16" identifier * identifier))) ;) (if_statement "if (uVar32 < uVar33 ||\n      uVar32 - uVar33 <\n      (uint)((uint)((int)pcVar1 - (int)(pcVar14 + local_68)) <\n            (uint)((ulonglong)uVar36 * (ulonglong)uVar16))) {\n    FUN_0001ff00(uVar16 * uVar36);\n    uVar16 = DAT_00080ca4;\n  }" if (parenthesized_expression "(uVar32 < uVar33 ||\n      uVar32 - uVar33 <\n      (uint)((uint)((int)pcVar1 - (int)(pcVar14 + local_68)) <\n            (uint)((ulonglong)uVar36 * (ulonglong)uVar16)))" ( (binary_expression "uVar32 < uVar33 ||\n      uVar32 - uVar33 <\n      (uint)((uint)((int)pcVar1 - (int)(pcVar14 + local_68)) <\n            (uint)((ulonglong)uVar36 * (ulonglong)uVar16))" (binary_expression "uVar32 < uVar33" identifier < identifier) || (binary_expression "uVar32 - uVar33 <\n      (uint)((uint)((int)pcVar1 - (int)(pcVar14 + local_68)) <\n            (uint)((ulonglong)uVar36 * (ulonglong)uVar16))" (binary_expression "uVar32 - uVar33" identifier - identifier) < (call_expression "(uint)((uint)((int)pcVar1 - (int)(pcVar14 + local_68)) <\n            (uint)((ulonglong)uVar36 * (ulonglong)uVar16))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)((int)pcVar1 - (int)(pcVar14 + local_68)) <\n            (uint)((ulonglong)uVar36 * (ulonglong)uVar16))" ( (binary_expression "(uint)((int)pcVar1 - (int)(pcVar14 + local_68)) <\n            (uint)((ulonglong)uVar36 * (ulonglong)uVar16)" (call_expression "(uint)((int)pcVar1 - (int)(pcVar14 + local_68))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pcVar1 - (int)(pcVar14 + local_68))" ( (binary_expression "(int)pcVar1 - (int)(pcVar14 + local_68)" (cast_expression "(int)pcVar1" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)(pcVar14 + local_68)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar14 + local_68)" ( (binary_expression "pcVar14 + local_68" identifier + identifier) )))) ))) < (call_expression "(uint)((ulonglong)uVar36 * (ulonglong)uVar16)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar36 * (ulonglong)uVar16)" ( (binary_expression "(ulonglong)uVar36 * (ulonglong)uVar16" (cast_expression "(ulonglong)uVar36" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)uVar16" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) )))) ))))) )) (compound_statement "{\n    FUN_0001ff00(uVar16 * uVar36);\n    uVar16 = DAT_00080ca4;\n  }" { (expression_statement "FUN_0001ff00(uVar16 * uVar36);" (call_expression "FUN_0001ff00(uVar16 * uVar36)" identifier (argument_list "(uVar16 * uVar36)" ( (binary_expression "uVar16 * uVar36" identifier * identifier) ))) ;) (expression_statement "uVar16 = DAT_00080ca4;" (assignment_expression "uVar16 = DAT_00080ca4" identifier = identifier) ;) })) (expression_statement "local_68 = uVar16 * uVar36 + local_68;" (assignment_expression "local_68 = uVar16 * uVar36 + local_68" identifier = (binary_expression "uVar16 * uVar36 + local_68" (binary_expression "uVar16 * uVar36" identifier * identifier) + identifier)) ;) (expression_statement "uVar36 = *(uint *)(param_3 + 0x24);" (assignment_expression "uVar36 = *(uint *)(param_3 + 0x24)" identifier = (pointer_expression "*(uint *)(param_3 + 0x24)" * (cast_expression "(uint *)(param_3 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x24)" ( (binary_expression "param_3 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "local_a0 = (undefined4 ******)(pcVar14 + local_68);" (assignment_expression "local_a0 = (undefined4 ******)(pcVar14 + local_68)" identifier = (cast_expression "(undefined4 ******)(pcVar14 + local_68)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(pcVar14 + local_68)" ( (binary_expression "pcVar14 + local_68" identifier + identifier) )))) ;) (expression_statement "*(uint *)(param_1 + 0x34) = local_68;" (assignment_expression "*(uint *)(param_1 + 0x34) = local_68" (pointer_expression "*(uint *)(param_1 + 0x34)" * (cast_expression "(uint *)(param_1 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar16 = *(uint *)(param_3 + 0x28);" (assignment_expression "uVar16 = *(uint *)(param_3 + 0x28)" identifier = (pointer_expression "*(uint *)(param_3 + 0x28)" * (cast_expression "(uint *)(param_3 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x28)" ( (binary_expression "param_3 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x38) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x38) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x38)" * (cast_expression "(undefined4 *)(param_1 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar5 = *(code **)(param_3 + 0x80);" (assignment_expression "pcVar5 = *(code **)(param_3 + 0x80)" identifier = (pointer_expression "*(code **)(param_3 + 0x80)" * (cast_expression "(code **)(param_3 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x80)" ( (binary_expression "param_3 + 0x80" identifier + number_literal) ))))) ;) (if_statement "if (DAT_00078240 != 0) {\n    local_8c = 0;\n    puVar20 = (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0x180);\n    iVar26 = DAT_00078240;\nLAB_00023b80:\n    local_5c = iVar26;\n    local_9c = *(undefined4 ******)(local_5c + 8);\n    if (*(int *)(local_5c + 4) == 0) {\n      local_54 = (uint)DAT_00078250 * 0x294 + (int)local_9c;\n      if (local_54 <= local_9c) {\n        local_68 = local_68 + local_8c * uVar36;\n        uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28));\n        goto LAB_0002441d;\n      }\n    }\n    else {\n      local_54 = (uint)DAT_0007824e * 0x294 + (int)local_9c;\n      iVar26 = *(int *)(local_5c + 4);\n      if (local_54 <= local_9c) goto LAB_00023b80;\n    }\nLAB_00023bb7:\n    *(int *)((int)local_9c + 0x18) = local_8c;\n    iVar26 = *(int *)((int)local_9c + 0x8c);\n    if (iVar26 != 0) {\n      local_a8 = (undefined4 ******)local_8c;\nLAB_00023bdc:\n      local_64 = iVar26;\n      puVar6 = *(undefined4 **)(local_64 + 8);\n      if (*(int *)(local_64 + 4) == 0) {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10;\n        if (local_70 <= puVar6) {\n          local_8c = (int)local_a8;\n          iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n          goto LAB_000243a4;\n        }\n      }\n      else {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10;\n        iVar26 = *(int *)(local_64 + 4);\n        if (local_70 <= puVar6) goto LAB_00023bdc;\n      }\n      uVar32 = puVar6[4];\n      do {\n        if ((undefined4 *****)uVar32 != local_9c) {\n                    \n          FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }\n        iVar26 = puVar6[1];\n        if (iVar26 == 0) {\n          local_b4 = (undefined4 *******)puVar6[6];\n          if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n          piVar25 = (int *)puVar6[8];\n          if (piVar25 == (int *)0x0) goto LAB_0002402d;\nLAB_00024237:\n          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n          goto LAB_00023ff8;\n        }\n        if ((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47) {\n          if ((int *)puVar6[5] == (int *)0x0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }\n          uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n          iVar15 = FUN_0003e1d0(iVar26);\n          iVar21 = FUN_0003e1d0(uVar13);\n          if (iVar15 != iVar21) {\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }\n          lVar45 = FUN_0003fad0(iVar26);\n          lVar46 = FUN_0003fad0(uVar13);\n          *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n        }\n        else {\n          uVar44 = FUN_0003fad0(iVar26);\n          iVar21 = FUN_0003e1d0(iVar26);\n          uVar33 = (uint)uVar44 + puVar6[2];\n          uVar32 = *(uint *)(iVar21 + 0x1c);\n          iVar15 = *(int *)(iVar21 + 0x20);\n          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);\n          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);\n        }\n        bVar11 = FUN_0003dc90(iVar26);\n        *(byte *)(puVar6 + 10) = *(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04';\n        if (((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&\n           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) {\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;\n        }\n        if (((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&\n           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))) {\n          puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);\n          pbVar35 = (byte *)*puVar23;\n          if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }\n          else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }\n          iVar15 = FUN_0003ddd0(iVar26);\n          if (iVar15 == 0) {\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }\n          else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }\nLAB_00023df1:\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;\n          *(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);\n        }\n        iVar15 = FUN_0003dc20(iVar26);\n        if (((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||\n           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)) {\n          iVar15 = FUN_0003dd80(iVar26);\n          if (iVar15 != 0) goto LAB_0002410f;\n          if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }\n          else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }\nLAB_0002402d:\n          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;\n          if (uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }\n          (*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);\n          local_a0 = (undefined4 ******)((int)local_a0 + uVar36);\n          puVar6[9] = local_a8;\n          puVar7 = (uint *)puVar6[5];\n          if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {\n            puVar7[3] = (int)local_a8 - local_8c;\n          }\n          local_a8 = (undefined4 ******)((int)local_a8 + 1);\n          if ((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          FUN_0003dd80(iVar26);\nLAB_0002410f:\n          if (puVar6[6] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (puVar6[8] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          iVar15 = FUN_00041590(iVar26);\n          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }\n        }\n        if (local_70 <= puVar6 + 0x10) goto LAB_00024380;\n        uVar32 = puVar6[0x14];\n        puVar6 = puVar6 + 0x10;\n      } while( true );\n    }\n    goto LAB_000243a4;\n  }" if (parenthesized_expression "(DAT_00078240 != 0)" ( (binary_expression "DAT_00078240 != 0" identifier != number_literal) )) (compound_statement "{\n    local_8c = 0;\n    puVar20 = (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0x180);\n    iVar26 = DAT_00078240;\nLAB_00023b80:\n    local_5c = iVar26;\n    local_9c = *(undefined4 ******)(local_5c + 8);\n    if (*(int *)(local_5c + 4) == 0) {\n      local_54 = (uint)DAT_00078250 * 0x294 + (int)local_9c;\n      if (local_54 <= local_9c) {\n        local_68 = local_68 + local_8c * uVar36;\n        uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28));\n        goto LAB_0002441d;\n      }\n    }\n    else {\n      local_54 = (uint)DAT_0007824e * 0x294 + (int)local_9c;\n      iVar26 = *(int *)(local_5c + 4);\n      if (local_54 <= local_9c) goto LAB_00023b80;\n    }\nLAB_00023bb7:\n    *(int *)((int)local_9c + 0x18) = local_8c;\n    iVar26 = *(int *)((int)local_9c + 0x8c);\n    if (iVar26 != 0) {\n      local_a8 = (undefined4 ******)local_8c;\nLAB_00023bdc:\n      local_64 = iVar26;\n      puVar6 = *(undefined4 **)(local_64 + 8);\n      if (*(int *)(local_64 + 4) == 0) {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10;\n        if (local_70 <= puVar6) {\n          local_8c = (int)local_a8;\n          iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n          goto LAB_000243a4;\n        }\n      }\n      else {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10;\n        iVar26 = *(int *)(local_64 + 4);\n        if (local_70 <= puVar6) goto LAB_00023bdc;\n      }\n      uVar32 = puVar6[4];\n      do {\n        if ((undefined4 *****)uVar32 != local_9c) {\n                    \n          FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }\n        iVar26 = puVar6[1];\n        if (iVar26 == 0) {\n          local_b4 = (undefined4 *******)puVar6[6];\n          if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n          piVar25 = (int *)puVar6[8];\n          if (piVar25 == (int *)0x0) goto LAB_0002402d;\nLAB_00024237:\n          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n          goto LAB_00023ff8;\n        }\n        if ((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47) {\n          if ((int *)puVar6[5] == (int *)0x0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }\n          uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n          iVar15 = FUN_0003e1d0(iVar26);\n          iVar21 = FUN_0003e1d0(uVar13);\n          if (iVar15 != iVar21) {\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }\n          lVar45 = FUN_0003fad0(iVar26);\n          lVar46 = FUN_0003fad0(uVar13);\n          *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n        }\n        else {\n          uVar44 = FUN_0003fad0(iVar26);\n          iVar21 = FUN_0003e1d0(iVar26);\n          uVar33 = (uint)uVar44 + puVar6[2];\n          uVar32 = *(uint *)(iVar21 + 0x1c);\n          iVar15 = *(int *)(iVar21 + 0x20);\n          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);\n          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);\n        }\n        bVar11 = FUN_0003dc90(iVar26);\n        *(byte *)(puVar6 + 10) = *(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04';\n        if (((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&\n           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) {\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;\n        }\n        if (((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&\n           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))) {\n          puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);\n          pbVar35 = (byte *)*puVar23;\n          if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }\n          else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }\n          iVar15 = FUN_0003ddd0(iVar26);\n          if (iVar15 == 0) {\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }\n          else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }\nLAB_00023df1:\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;\n          *(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);\n        }\n        iVar15 = FUN_0003dc20(iVar26);\n        if (((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||\n           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)) {\n          iVar15 = FUN_0003dd80(iVar26);\n          if (iVar15 != 0) goto LAB_0002410f;\n          if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }\n          else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }\nLAB_0002402d:\n          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;\n          if (uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }\n          (*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);\n          local_a0 = (undefined4 ******)((int)local_a0 + uVar36);\n          puVar6[9] = local_a8;\n          puVar7 = (uint *)puVar6[5];\n          if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {\n            puVar7[3] = (int)local_a8 - local_8c;\n          }\n          local_a8 = (undefined4 ******)((int)local_a8 + 1);\n          if ((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          FUN_0003dd80(iVar26);\nLAB_0002410f:\n          if (puVar6[6] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (puVar6[8] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          iVar15 = FUN_00041590(iVar26);\n          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }\n        }\n        if (local_70 <= puVar6 + 0x10) goto LAB_00024380;\n        uVar32 = puVar6[0x14];\n        puVar6 = puVar6 + 0x10;\n      } while( true );\n    }\n    goto LAB_000243a4;\n  }" { (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" identifier = number_literal) ;) (expression_statement "puVar20 = (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0x180);" (assignment_expression "puVar20 = (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0x180)" identifier = (cast_expression "(undefined4 *)(PTR__bfd_std_section_00077fa0 + 0x180)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_00077fa0 + 0x180)" ( (binary_expression "PTR__bfd_std_section_00077fa0 + 0x180" identifier + number_literal) )))) ;) (expression_statement "iVar26 = DAT_00078240;" (assignment_expression "iVar26 = DAT_00078240" identifier = identifier) ;) (labeled_statement "LAB_00023b80:\n    local_5c = iVar26;" statement_identifier : (expression_statement "local_5c = iVar26;" (assignment_expression "local_5c = iVar26" identifier = identifier) ;)) (expression_statement "local_9c = *(undefined4 ******)(local_5c + 8);" (assignment_expression "local_9c = *(undefined4 ******)(local_5c + 8)" identifier = (pointer_expression "*(undefined4 ******)(local_5c + 8)" * (cast_expression "(undefined4 ******)(local_5c + 8)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(local_5c + 8)" ( (binary_expression "local_5c + 8" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(local_5c + 4) == 0) {\n      local_54 = (uint)DAT_00078250 * 0x294 + (int)local_9c;\n      if (local_54 <= local_9c) {\n        local_68 = local_68 + local_8c * uVar36;\n        uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28));\n        goto LAB_0002441d;\n      }\n    }\n    else {\n      local_54 = (uint)DAT_0007824e * 0x294 + (int)local_9c;\n      iVar26 = *(int *)(local_5c + 4);\n      if (local_54 <= local_9c) goto LAB_00023b80;\n    }" if (parenthesized_expression "(*(int *)(local_5c + 4) == 0)" ( (binary_expression "*(int *)(local_5c + 4) == 0" (pointer_expression "*(int *)(local_5c + 4)" * (cast_expression "(int *)(local_5c + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_5c + 4)" ( (binary_expression "local_5c + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      local_54 = (uint)DAT_00078250 * 0x294 + (int)local_9c;\n      if (local_54 <= local_9c) {\n        local_68 = local_68 + local_8c * uVar36;\n        uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28));\n        goto LAB_0002441d;\n      }\n    }" { (expression_statement "local_54 = (uint)DAT_00078250 * 0x294 + (int)local_9c;" (assignment_expression "local_54 = (uint)DAT_00078250 * 0x294 + (int)local_9c" identifier = (binary_expression "(uint)DAT_00078250 * 0x294 + (int)local_9c" (binary_expression "(uint)DAT_00078250 * 0x294" (cast_expression "(uint)DAT_00078250" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) + (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (local_54 <= local_9c) {\n        local_68 = local_68 + local_8c * uVar36;\n        uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28));\n        goto LAB_0002441d;\n      }" if (parenthesized_expression "(local_54 <= local_9c)" ( (binary_expression "local_54 <= local_9c" identifier <= identifier) )) (compound_statement "{\n        local_68 = local_68 + local_8c * uVar36;\n        uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28));\n        goto LAB_0002441d;\n      }" { (expression_statement "local_68 = local_68 + local_8c * uVar36;" (assignment_expression "local_68 = local_68 + local_8c * uVar36" identifier = (binary_expression "local_68 + local_8c * uVar36" identifier + (binary_expression "local_8c * uVar36" identifier * identifier))) ;) (expression_statement "uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28));" (assignment_expression "uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28))" identifier = (call_expression "FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28))" identifier (argument_list "(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28))" ( (binary_expression "local_68 - *(uint *)(param_1 + 0x34)" identifier - (pointer_expression "*(uint *)(param_1 + 0x34)" * (cast_expression "(uint *)(param_1 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) , (binary_expression "-(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38)" (unary_expression "-(uint)(local_68 < *(uint *)(param_1 + 0x34))" - (call_expression "(uint)(local_68 < *(uint *)(param_1 + 0x34))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_68 < *(uint *)(param_1 + 0x34))" ( (binary_expression "local_68 < *(uint *)(param_1 + 0x34)" identifier < (pointer_expression "*(uint *)(param_1 + 0x34)" * (cast_expression "(uint *)(param_1 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) )))) - (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) , (pointer_expression "*(undefined4 *)(param_3 + 0x24)" * (cast_expression "(undefined4 *)(param_3 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x24)" ( (binary_expression "param_3 + 0x24" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_3 + 0x28)" * (cast_expression "(undefined4 *)(param_3 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x28)" ( (binary_expression "param_3 + 0x28" identifier + number_literal) )))) )))) ;) (goto_statement "goto LAB_0002441d;" goto statement_identifier ;) })) }) (else_clause "else {\n      local_54 = (uint)DAT_0007824e * 0x294 + (int)local_9c;\n      iVar26 = *(int *)(local_5c + 4);\n      if (local_54 <= local_9c) goto LAB_00023b80;\n    }" else (compound_statement "{\n      local_54 = (uint)DAT_0007824e * 0x294 + (int)local_9c;\n      iVar26 = *(int *)(local_5c + 4);\n      if (local_54 <= local_9c) goto LAB_00023b80;\n    }" { (expression_statement "local_54 = (uint)DAT_0007824e * 0x294 + (int)local_9c;" (assignment_expression "local_54 = (uint)DAT_0007824e * 0x294 + (int)local_9c" identifier = (binary_expression "(uint)DAT_0007824e * 0x294 + (int)local_9c" (binary_expression "(uint)DAT_0007824e * 0x294" (cast_expression "(uint)DAT_0007824e" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) + (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar26 = *(int *)(local_5c + 4);" (assignment_expression "iVar26 = *(int *)(local_5c + 4)" identifier = (pointer_expression "*(int *)(local_5c + 4)" * (cast_expression "(int *)(local_5c + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_5c + 4)" ( (binary_expression "local_5c + 4" identifier + number_literal) ))))) ;) (if_statement "if (local_54 <= local_9c) goto LAB_00023b80;" if (parenthesized_expression "(local_54 <= local_9c)" ( (binary_expression "local_54 <= local_9c" identifier <= identifier) )) (goto_statement "goto LAB_00023b80;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00023bb7:\n    *(int *)((int)local_9c + 0x18) = local_8c;" statement_identifier : (expression_statement "*(int *)((int)local_9c + 0x18) = local_8c;" (assignment_expression "*(int *)((int)local_9c + 0x18) = local_8c" (pointer_expression "*(int *)((int)local_9c + 0x18)" * (cast_expression "(int *)((int)local_9c + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c + 0x18)" ( (binary_expression "(int)local_9c + 0x18" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "iVar26 = *(int *)((int)local_9c + 0x8c);" (assignment_expression "iVar26 = *(int *)((int)local_9c + 0x8c)" identifier = (pointer_expression "*(int *)((int)local_9c + 0x8c)" * (cast_expression "(int *)((int)local_9c + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c + 0x8c)" ( (binary_expression "(int)local_9c + 0x8c" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (iVar26 != 0) {\n      local_a8 = (undefined4 ******)local_8c;\nLAB_00023bdc:\n      local_64 = iVar26;\n      puVar6 = *(undefined4 **)(local_64 + 8);\n      if (*(int *)(local_64 + 4) == 0) {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10;\n        if (local_70 <= puVar6) {\n          local_8c = (int)local_a8;\n          iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n          goto LAB_000243a4;\n        }\n      }\n      else {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10;\n        iVar26 = *(int *)(local_64 + 4);\n        if (local_70 <= puVar6) goto LAB_00023bdc;\n      }\n      uVar32 = puVar6[4];\n      do {\n        if ((undefined4 *****)uVar32 != local_9c) {\n                    \n          FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }\n        iVar26 = puVar6[1];\n        if (iVar26 == 0) {\n          local_b4 = (undefined4 *******)puVar6[6];\n          if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n          piVar25 = (int *)puVar6[8];\n          if (piVar25 == (int *)0x0) goto LAB_0002402d;\nLAB_00024237:\n          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n          goto LAB_00023ff8;\n        }\n        if ((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47) {\n          if ((int *)puVar6[5] == (int *)0x0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }\n          uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n          iVar15 = FUN_0003e1d0(iVar26);\n          iVar21 = FUN_0003e1d0(uVar13);\n          if (iVar15 != iVar21) {\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }\n          lVar45 = FUN_0003fad0(iVar26);\n          lVar46 = FUN_0003fad0(uVar13);\n          *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n        }\n        else {\n          uVar44 = FUN_0003fad0(iVar26);\n          iVar21 = FUN_0003e1d0(iVar26);\n          uVar33 = (uint)uVar44 + puVar6[2];\n          uVar32 = *(uint *)(iVar21 + 0x1c);\n          iVar15 = *(int *)(iVar21 + 0x20);\n          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);\n          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);\n        }\n        bVar11 = FUN_0003dc90(iVar26);\n        *(byte *)(puVar6 + 10) = *(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04';\n        if (((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&\n           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) {\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;\n        }\n        if (((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&\n           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))) {\n          puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);\n          pbVar35 = (byte *)*puVar23;\n          if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }\n          else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }\n          iVar15 = FUN_0003ddd0(iVar26);\n          if (iVar15 == 0) {\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }\n          else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }\nLAB_00023df1:\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;\n          *(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);\n        }\n        iVar15 = FUN_0003dc20(iVar26);\n        if (((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||\n           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)) {\n          iVar15 = FUN_0003dd80(iVar26);\n          if (iVar15 != 0) goto LAB_0002410f;\n          if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }\n          else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }\nLAB_0002402d:\n          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;\n          if (uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }\n          (*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);\n          local_a0 = (undefined4 ******)((int)local_a0 + uVar36);\n          puVar6[9] = local_a8;\n          puVar7 = (uint *)puVar6[5];\n          if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {\n            puVar7[3] = (int)local_a8 - local_8c;\n          }\n          local_a8 = (undefined4 ******)((int)local_a8 + 1);\n          if ((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          FUN_0003dd80(iVar26);\nLAB_0002410f:\n          if (puVar6[6] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (puVar6[8] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          iVar15 = FUN_00041590(iVar26);\n          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }\n        }\n        if (local_70 <= puVar6 + 0x10) goto LAB_00024380;\n        uVar32 = puVar6[0x14];\n        puVar6 = puVar6 + 0x10;\n      } while( true );\n    }" if (parenthesized_expression "(iVar26 != 0)" ( (binary_expression "iVar26 != 0" identifier != number_literal) )) (compound_statement "{\n      local_a8 = (undefined4 ******)local_8c;\nLAB_00023bdc:\n      local_64 = iVar26;\n      puVar6 = *(undefined4 **)(local_64 + 8);\n      if (*(int *)(local_64 + 4) == 0) {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10;\n        if (local_70 <= puVar6) {\n          local_8c = (int)local_a8;\n          iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n          goto LAB_000243a4;\n        }\n      }\n      else {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10;\n        iVar26 = *(int *)(local_64 + 4);\n        if (local_70 <= puVar6) goto LAB_00023bdc;\n      }\n      uVar32 = puVar6[4];\n      do {\n        if ((undefined4 *****)uVar32 != local_9c) {\n                    \n          FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }\n        iVar26 = puVar6[1];\n        if (iVar26 == 0) {\n          local_b4 = (undefined4 *******)puVar6[6];\n          if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n          piVar25 = (int *)puVar6[8];\n          if (piVar25 == (int *)0x0) goto LAB_0002402d;\nLAB_00024237:\n          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n          goto LAB_00023ff8;\n        }\n        if ((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47) {\n          if ((int *)puVar6[5] == (int *)0x0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }\n          uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n          iVar15 = FUN_0003e1d0(iVar26);\n          iVar21 = FUN_0003e1d0(uVar13);\n          if (iVar15 != iVar21) {\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }\n          lVar45 = FUN_0003fad0(iVar26);\n          lVar46 = FUN_0003fad0(uVar13);\n          *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n        }\n        else {\n          uVar44 = FUN_0003fad0(iVar26);\n          iVar21 = FUN_0003e1d0(iVar26);\n          uVar33 = (uint)uVar44 + puVar6[2];\n          uVar32 = *(uint *)(iVar21 + 0x1c);\n          iVar15 = *(int *)(iVar21 + 0x20);\n          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);\n          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);\n        }\n        bVar11 = FUN_0003dc90(iVar26);\n        *(byte *)(puVar6 + 10) = *(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04';\n        if (((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&\n           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) {\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;\n        }\n        if (((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&\n           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))) {\n          puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);\n          pbVar35 = (byte *)*puVar23;\n          if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }\n          else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }\n          iVar15 = FUN_0003ddd0(iVar26);\n          if (iVar15 == 0) {\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }\n          else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }\nLAB_00023df1:\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;\n          *(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);\n        }\n        iVar15 = FUN_0003dc20(iVar26);\n        if (((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||\n           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)) {\n          iVar15 = FUN_0003dd80(iVar26);\n          if (iVar15 != 0) goto LAB_0002410f;\n          if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }\n          else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }\nLAB_0002402d:\n          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;\n          if (uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }\n          (*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);\n          local_a0 = (undefined4 ******)((int)local_a0 + uVar36);\n          puVar6[9] = local_a8;\n          puVar7 = (uint *)puVar6[5];\n          if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {\n            puVar7[3] = (int)local_a8 - local_8c;\n          }\n          local_a8 = (undefined4 ******)((int)local_a8 + 1);\n          if ((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          FUN_0003dd80(iVar26);\nLAB_0002410f:\n          if (puVar6[6] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (puVar6[8] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          iVar15 = FUN_00041590(iVar26);\n          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }\n        }\n        if (local_70 <= puVar6 + 0x10) goto LAB_00024380;\n        uVar32 = puVar6[0x14];\n        puVar6 = puVar6 + 0x10;\n      } while( true );\n    }" { (expression_statement "local_a8 = (undefined4 ******)local_8c;" (assignment_expression "local_a8 = (undefined4 ******)local_8c" identifier = (cast_expression "(undefined4 ******)local_8c" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (labeled_statement "LAB_00023bdc:\n      local_64 = iVar26;" statement_identifier : (expression_statement "local_64 = iVar26;" (assignment_expression "local_64 = iVar26" identifier = identifier) ;)) (expression_statement "puVar6 = *(undefined4 **)(local_64 + 8);" (assignment_expression "puVar6 = *(undefined4 **)(local_64 + 8)" identifier = (pointer_expression "*(undefined4 **)(local_64 + 8)" * (cast_expression "(undefined4 **)(local_64 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_64 + 8)" ( (binary_expression "local_64 + 8" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(local_64 + 4) == 0) {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10;\n        if (local_70 <= puVar6) {\n          local_8c = (int)local_a8;\n          iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n          goto LAB_000243a4;\n        }\n      }\n      else {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10;\n        iVar26 = *(int *)(local_64 + 4);\n        if (local_70 <= puVar6) goto LAB_00023bdc;\n      }" if (parenthesized_expression "(*(int *)(local_64 + 4) == 0)" ( (binary_expression "*(int *)(local_64 + 4) == 0" (pointer_expression "*(int *)(local_64 + 4)" * (cast_expression "(int *)(local_64 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_64 + 4)" ( (binary_expression "local_64 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10;\n        if (local_70 <= puVar6) {\n          local_8c = (int)local_a8;\n          iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n          goto LAB_000243a4;\n        }\n      }" { (expression_statement "local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10;" (assignment_expression "local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10" identifier = (binary_expression "puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10" identifier + (binary_expression "(uint)*(ushort *)((int)local_9c + 0x9c) * 0x10" (binary_expression "(uint)*(ushort *)((int)local_9c + 0x9c)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)((int)local_9c + 0x9c)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c + 0x9c)" ( (binary_expression "(int)local_9c + 0x9c" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) * number_literal))) ;) (if_statement "if (local_70 <= puVar6) {\n          local_8c = (int)local_a8;\n          iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n          goto LAB_000243a4;\n        }" if (parenthesized_expression "(local_70 <= puVar6)" ( (binary_expression "local_70 <= puVar6" identifier <= identifier) )) (compound_statement "{\n          local_8c = (int)local_a8;\n          iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n          goto LAB_000243a4;\n        }" { (expression_statement "local_8c = (int)local_a8;" (assignment_expression "local_8c = (int)local_a8" identifier = (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);" (assignment_expression "iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18)" identifier = (binary_expression "(int)local_a8 - *(int *)((int)local_9c + 0x18)" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)((int)local_9c + 0x18)" * (cast_expression "(int *)((int)local_9c + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c + 0x18)" ( (binary_expression "(int)local_9c + 0x18" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (goto_statement "goto LAB_000243a4;" goto statement_identifier ;) })) }) (else_clause "else {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10;\n        iVar26 = *(int *)(local_64 + 4);\n        if (local_70 <= puVar6) goto LAB_00023bdc;\n      }" else (compound_statement "{\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10;\n        iVar26 = *(int *)(local_64 + 4);\n        if (local_70 <= puVar6) goto LAB_00023bdc;\n      }" { (expression_statement "local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10;" (assignment_expression "local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10" identifier = (binary_expression "puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10" identifier + (binary_expression "(uint)*(ushort *)((int)local_9c + 0x9a) * 0x10" (binary_expression "(uint)*(ushort *)((int)local_9c + 0x9a)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)((int)local_9c + 0x9a)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c + 0x9a)" ( (binary_expression "(int)local_9c + 0x9a" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) * number_literal))) ;) (expression_statement "iVar26 = *(int *)(local_64 + 4);" (assignment_expression "iVar26 = *(int *)(local_64 + 4)" identifier = (pointer_expression "*(int *)(local_64 + 4)" * (cast_expression "(int *)(local_64 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_64 + 4)" ( (binary_expression "local_64 + 4" identifier + number_literal) ))))) ;) (if_statement "if (local_70 <= puVar6) goto LAB_00023bdc;" if (parenthesized_expression "(local_70 <= puVar6)" ( (binary_expression "local_70 <= puVar6" identifier <= identifier) )) (goto_statement "goto LAB_00023bdc;" goto statement_identifier ;)) }))) (expression_statement "uVar32 = puVar6[4];" (assignment_expression "uVar32 = puVar6[4]" identifier = (subscript_expression "puVar6[4]" identifier [ number_literal ])) ;) (do_statement "do {\n        if ((undefined4 *****)uVar32 != local_9c) {\n                    \n          FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }\n        iVar26 = puVar6[1];\n        if (iVar26 == 0) {\n          local_b4 = (undefined4 *******)puVar6[6];\n          if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n          piVar25 = (int *)puVar6[8];\n          if (piVar25 == (int *)0x0) goto LAB_0002402d;\nLAB_00024237:\n          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n          goto LAB_00023ff8;\n        }\n        if ((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47) {\n          if ((int *)puVar6[5] == (int *)0x0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }\n          uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n          iVar15 = FUN_0003e1d0(iVar26);\n          iVar21 = FUN_0003e1d0(uVar13);\n          if (iVar15 != iVar21) {\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }\n          lVar45 = FUN_0003fad0(iVar26);\n          lVar46 = FUN_0003fad0(uVar13);\n          *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n        }\n        else {\n          uVar44 = FUN_0003fad0(iVar26);\n          iVar21 = FUN_0003e1d0(iVar26);\n          uVar33 = (uint)uVar44 + puVar6[2];\n          uVar32 = *(uint *)(iVar21 + 0x1c);\n          iVar15 = *(int *)(iVar21 + 0x20);\n          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);\n          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);\n        }\n        bVar11 = FUN_0003dc90(iVar26);\n        *(byte *)(puVar6 + 10) = *(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04';\n        if (((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&\n           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) {\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;\n        }\n        if (((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&\n           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))) {\n          puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);\n          pbVar35 = (byte *)*puVar23;\n          if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }\n          else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }\n          iVar15 = FUN_0003ddd0(iVar26);\n          if (iVar15 == 0) {\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }\n          else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }\nLAB_00023df1:\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;\n          *(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);\n        }\n        iVar15 = FUN_0003dc20(iVar26);\n        if (((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||\n           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)) {\n          iVar15 = FUN_0003dd80(iVar26);\n          if (iVar15 != 0) goto LAB_0002410f;\n          if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }\n          else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }\nLAB_0002402d:\n          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;\n          if (uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }\n          (*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);\n          local_a0 = (undefined4 ******)((int)local_a0 + uVar36);\n          puVar6[9] = local_a8;\n          puVar7 = (uint *)puVar6[5];\n          if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {\n            puVar7[3] = (int)local_a8 - local_8c;\n          }\n          local_a8 = (undefined4 ******)((int)local_a8 + 1);\n          if ((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          FUN_0003dd80(iVar26);\nLAB_0002410f:\n          if (puVar6[6] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (puVar6[8] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          iVar15 = FUN_00041590(iVar26);\n          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }\n        }\n        if (local_70 <= puVar6 + 0x10) goto LAB_00024380;\n        uVar32 = puVar6[0x14];\n        puVar6 = puVar6 + 0x10;\n      } while( true );" do (compound_statement "{\n        if ((undefined4 *****)uVar32 != local_9c) {\n                    \n          FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }\n        iVar26 = puVar6[1];\n        if (iVar26 == 0) {\n          local_b4 = (undefined4 *******)puVar6[6];\n          if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n          piVar25 = (int *)puVar6[8];\n          if (piVar25 == (int *)0x0) goto LAB_0002402d;\nLAB_00024237:\n          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n          goto LAB_00023ff8;\n        }\n        if ((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47) {\n          if ((int *)puVar6[5] == (int *)0x0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }\n          uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n          iVar15 = FUN_0003e1d0(iVar26);\n          iVar21 = FUN_0003e1d0(uVar13);\n          if (iVar15 != iVar21) {\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }\n          lVar45 = FUN_0003fad0(iVar26);\n          lVar46 = FUN_0003fad0(uVar13);\n          *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n        }\n        else {\n          uVar44 = FUN_0003fad0(iVar26);\n          iVar21 = FUN_0003e1d0(iVar26);\n          uVar33 = (uint)uVar44 + puVar6[2];\n          uVar32 = *(uint *)(iVar21 + 0x1c);\n          iVar15 = *(int *)(iVar21 + 0x20);\n          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);\n          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);\n        }\n        bVar11 = FUN_0003dc90(iVar26);\n        *(byte *)(puVar6 + 10) = *(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04';\n        if (((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&\n           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) {\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;\n        }\n        if (((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&\n           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))) {\n          puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);\n          pbVar35 = (byte *)*puVar23;\n          if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }\n          else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }\n          iVar15 = FUN_0003ddd0(iVar26);\n          if (iVar15 == 0) {\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }\n          else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }\nLAB_00023df1:\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;\n          *(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);\n        }\n        iVar15 = FUN_0003dc20(iVar26);\n        if (((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||\n           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)) {\n          iVar15 = FUN_0003dd80(iVar26);\n          if (iVar15 != 0) goto LAB_0002410f;\n          if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }\n          else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }\nLAB_0002402d:\n          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;\n          if (uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }\n          (*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);\n          local_a0 = (undefined4 ******)((int)local_a0 + uVar36);\n          puVar6[9] = local_a8;\n          puVar7 = (uint *)puVar6[5];\n          if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {\n            puVar7[3] = (int)local_a8 - local_8c;\n          }\n          local_a8 = (undefined4 ******)((int)local_a8 + 1);\n          if ((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          FUN_0003dd80(iVar26);\nLAB_0002410f:\n          if (puVar6[6] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (puVar6[8] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          iVar15 = FUN_00041590(iVar26);\n          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }\n        }\n        if (local_70 <= puVar6 + 0x10) goto LAB_00024380;\n        uVar32 = puVar6[0x14];\n        puVar6 = puVar6 + 0x10;\n      }" { (if_statement "if ((undefined4 *****)uVar32 != local_9c) {\n                    \n          FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }" if (parenthesized_expression "((undefined4 *****)uVar32 != local_9c)" ( (binary_expression "(undefined4 *****)uVar32 != local_9c" (cast_expression "(undefined4 *****)uVar32" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) != identifier) )) (compound_statement "{\n                    \n          FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }" { (expression_statement "FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");" (call_expression "FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols")" identifier (argument_list "("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols")" ( (string_literal ""../../gas/ecoff.c"" " string_content ") , number_literal , (string_literal ""ecoff_build_symbols"" " string_content ") ))) ;) })) (expression_statement "iVar26 = puVar6[1];" (assignment_expression "iVar26 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (if_statement "if (iVar26 == 0) {\n          local_b4 = (undefined4 *******)puVar6[6];\n          if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n          piVar25 = (int *)puVar6[8];\n          if (piVar25 == (int *)0x0) goto LAB_0002402d;\nLAB_00024237:\n          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n          goto LAB_00023ff8;\n        }" if (parenthesized_expression "(iVar26 == 0)" ( (binary_expression "iVar26 == 0" identifier == number_literal) )) (compound_statement "{\n          local_b4 = (undefined4 *******)puVar6[6];\n          if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n          piVar25 = (int *)puVar6[8];\n          if (piVar25 == (int *)0x0) goto LAB_0002402d;\nLAB_00024237:\n          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n          goto LAB_00023ff8;\n        }" { (expression_statement "local_b4 = (undefined4 *******)puVar6[6];" (assignment_expression "local_b4 = (undefined4 *******)puVar6[6]" identifier = (cast_expression "(undefined4 *******)puVar6[6]" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "puVar6[6]" identifier [ number_literal ]))) ;) (if_statement "if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;" if (parenthesized_expression "(local_b4 != (undefined4 *******)0x0)" ( (binary_expression "local_b4 != (undefined4 *******)0x0" identifier != (cast_expression "(undefined4 *******)0x0" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00023e89;" goto statement_identifier ;)) (expression_statement "piVar25 = (int *)puVar6[8];" (assignment_expression "piVar25 = (int *)puVar6[8]" identifier = (cast_expression "(int *)puVar6[8]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[8]" identifier [ number_literal ]))) ;) (if_statement "if (piVar25 == (int *)0x0) goto LAB_0002402d;" if (parenthesized_expression "(piVar25 == (int *)0x0)" ( (binary_expression "piVar25 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002402d;" goto statement_identifier ;)) (labeled_statement "LAB_00024237:\n          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);" statement_identifier : (expression_statement "local_a4 = (undefined4 *****)((int)local_a8 - local_8c);" (assignment_expression "local_a4 = (undefined4 *****)((int)local_a8 - local_8c)" identifier = (cast_expression "(undefined4 *****)((int)local_a8 - local_8c)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_a8 - local_8c)" ( (binary_expression "(int)local_a8 - local_8c" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;)) (goto_statement "goto LAB_00023ff8;" goto statement_identifier ;) })) (if_statement "if ((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47) {\n          if ((int *)puVar6[5] == (int *)0x0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }\n          uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n          iVar15 = FUN_0003e1d0(iVar26);\n          iVar21 = FUN_0003e1d0(uVar13);\n          if (iVar15 != iVar21) {\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }\n          lVar45 = FUN_0003fad0(iVar26);\n          lVar46 = FUN_0003fad0(uVar13);\n          *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n        }\n        else {\n          uVar44 = FUN_0003fad0(iVar26);\n          iVar21 = FUN_0003e1d0(iVar26);\n          uVar33 = (uint)uVar44 + puVar6[2];\n          uVar32 = *(uint *)(iVar21 + 0x1c);\n          iVar15 = *(int *)(iVar21 + 0x20);\n          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);\n          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);\n        }" if (parenthesized_expression "((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47)" ( (binary_expression "(*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47" (parenthesized_expression "(*(ushort *)(puVar6 + 0xf) & 0x7ff)" ( (binary_expression "*(ushort *)(puVar6 + 0xf) & 0x7ff" (pointer_expression "*(ushort *)(puVar6 + 0xf)" * (cast_expression "(ushort *)(puVar6 + 0xf)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xf)" ( (binary_expression "puVar6 + 0xf" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n          if ((int *)puVar6[5] == (int *)0x0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }\n          uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n          iVar15 = FUN_0003e1d0(iVar26);\n          iVar21 = FUN_0003e1d0(uVar13);\n          if (iVar15 != iVar21) {\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }\n          lVar45 = FUN_0003fad0(iVar26);\n          lVar46 = FUN_0003fad0(uVar13);\n          *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n        }" { (if_statement "if ((int *)puVar6[5] == (int *)0x0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }" if (parenthesized_expression "((int *)puVar6[5] == (int *)0x0)" ( (binary_expression "(int *)puVar6[5] == (int *)0x0" (cast_expression "(int *)puVar6[5]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[5]" identifier [ number_literal ])) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }" { (expression_statement "FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");" (call_expression "FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols")" identifier (argument_list "("../../gas/ecoff.c",0xf85,"ecoff_build_symbols")" ( (string_literal ""../../gas/ecoff.c"" " string_content ") , number_literal , (string_literal ""ecoff_build_symbols"" " string_content ") ))) ;) })) (expression_statement "uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);" (assignment_expression "uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4)" identifier = (pointer_expression "*(undefined4 *)(*(int *)puVar6[5] + 4)" * (cast_expression "(undefined4 *)(*(int *)puVar6[5] + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar6[5] + 4)" ( (binary_expression "*(int *)puVar6[5] + 4" (pointer_expression "*(int *)puVar6[5]" * (cast_expression "(int *)puVar6[5]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[5]" identifier [ number_literal ]))) + number_literal) ))))) ;) (expression_statement "iVar15 = FUN_0003e1d0(iVar26);" (assignment_expression "iVar15 = FUN_0003e1d0(iVar26)" identifier = (call_expression "FUN_0003e1d0(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (expression_statement "iVar21 = FUN_0003e1d0(uVar13);" (assignment_expression "iVar21 = FUN_0003e1d0(uVar13)" identifier = (call_expression "FUN_0003e1d0(uVar13)" identifier (argument_list "(uVar13)" ( identifier )))) ;) (if_statement "if (iVar15 != iVar21) {\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }" if (parenthesized_expression "(iVar15 != iVar21)" ( (binary_expression "iVar15 != iVar21" identifier != identifier) )) (compound_statement "{\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }" { (expression_statement "uVar22 = dcgettext(0,".begin/.bend in different segments",5);" (assignment_expression "uVar22 = dcgettext(0,".begin/.bend in different segments",5)" identifier = (call_expression "dcgettext(0,".begin/.bend in different segments",5)" identifier (argument_list "(0,".begin/.bend in different segments",5)" ( number_literal , (string_literal "".begin/.bend in different segments"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_00031540(uVar22);" (call_expression "FUN_00031540(uVar22)" identifier (argument_list "(uVar22)" ( identifier ))) ;) })) (expression_statement "lVar45 = FUN_0003fad0(iVar26);" (assignment_expression "lVar45 = FUN_0003fad0(iVar26)" identifier = (call_expression "FUN_0003fad0(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (expression_statement "lVar46 = FUN_0003fad0(uVar13);" (assignment_expression "lVar46 = FUN_0003fad0(uVar13)" identifier = (call_expression "FUN_0003fad0(uVar13)" identifier (argument_list "(uVar13)" ( identifier )))) ;) (expression_statement "*(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;" (assignment_expression "*(longlong *)(puVar6 + 0xd) = lVar45 - lVar46" (pointer_expression "*(longlong *)(puVar6 + 0xd)" * (cast_expression "(longlong *)(puVar6 + 0xd)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xd)" ( (binary_expression "puVar6 + 0xd" identifier + number_literal) )))) = (binary_expression "lVar45 - lVar46" identifier - identifier)) ;) }) (else_clause "else {\n          uVar44 = FUN_0003fad0(iVar26);\n          iVar21 = FUN_0003e1d0(iVar26);\n          uVar33 = (uint)uVar44 + puVar6[2];\n          uVar32 = *(uint *)(iVar21 + 0x1c);\n          iVar15 = *(int *)(iVar21 + 0x20);\n          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);\n          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);\n        }" else (compound_statement "{\n          uVar44 = FUN_0003fad0(iVar26);\n          iVar21 = FUN_0003e1d0(iVar26);\n          uVar33 = (uint)uVar44 + puVar6[2];\n          uVar32 = *(uint *)(iVar21 + 0x1c);\n          iVar15 = *(int *)(iVar21 + 0x20);\n          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);\n          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);\n        }" { (expression_statement "uVar44 = FUN_0003fad0(iVar26);" (assignment_expression "uVar44 = FUN_0003fad0(iVar26)" identifier = (call_expression "FUN_0003fad0(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (expression_statement "iVar21 = FUN_0003e1d0(iVar26);" (assignment_expression "iVar21 = FUN_0003e1d0(iVar26)" identifier = (call_expression "FUN_0003e1d0(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (expression_statement "uVar33 = (uint)uVar44 + puVar6[2];" (assignment_expression "uVar33 = (uint)uVar44 + puVar6[2]" identifier = (binary_expression "(uint)uVar44 + puVar6[2]" (cast_expression "(uint)uVar44" ( (type_descriptor "uint" type_identifier) ) identifier) + (subscript_expression "puVar6[2]" identifier [ number_literal ]))) ;) (expression_statement "uVar32 = *(uint *)(iVar21 + 0x1c);" (assignment_expression "uVar32 = *(uint *)(iVar21 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar21 + 0x1c)" * (cast_expression "(uint *)(iVar21 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x1c)" ( (binary_expression "iVar21 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "iVar15 = *(int *)(iVar21 + 0x20);" (assignment_expression "iVar15 = *(int *)(iVar21 + 0x20)" identifier = (pointer_expression "*(int *)(iVar21 + 0x20)" * (cast_expression "(int *)(iVar21 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x20)" ( (binary_expression "iVar21 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);" (assignment_expression "puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c)" (subscript_expression "puVar6[0xd]" identifier [ number_literal ]) = (binary_expression "uVar33 + *(uint *)(iVar21 + 0x1c)" identifier + (pointer_expression "*(uint *)(iVar21 + 0x1c)" * (cast_expression "(uint *)(iVar21 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x1c)" ( (binary_expression "iVar21 + 0x1c" identifier + number_literal) )))))) ;) (expression_statement "puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);" (assignment_expression "puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32)" (subscript_expression "puVar6[0xe]" identifier [ number_literal ]) = (binary_expression "(int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32)" (binary_expression "(int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15" (binary_expression "(int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2])" (binary_expression "(int)((ulonglong)uVar44 >> 0x20) + puVar6[3]" (cast_expression "(int)((ulonglong)uVar44 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar44 >> 0x20)" ( (binary_expression "(ulonglong)uVar44 >> 0x20" (cast_expression "(ulonglong)uVar44" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + (subscript_expression "puVar6[3]" identifier [ number_literal ])) + (cast_expression "(uint)CARRY4((uint)uVar44,puVar6[2])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)uVar44,puVar6[2])" identifier (argument_list "((uint)uVar44,puVar6[2])" ( (cast_expression "(uint)uVar44" ( (type_descriptor "uint" type_identifier) ) identifier) , (subscript_expression "puVar6[2]" identifier [ number_literal ]) ))))) + identifier) + (cast_expression "(uint)CARRY4(uVar33,uVar32)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar33,uVar32)" identifier (argument_list "(uVar33,uVar32)" ( identifier , identifier )))))) ;) }))) (expression_statement "bVar11 = FUN_0003dc90(iVar26);" (assignment_expression "bVar11 = FUN_0003dc90(iVar26)" identifier = (call_expression "FUN_0003dc90(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (expression_statement "*(byte *)(puVar6 + 10) = *(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04';" (assignment_expression "*(byte *)(puVar6 + 10) = *(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04'" (pointer_expression "*(byte *)(puVar6 + 10)" * (cast_expression "(byte *)(puVar6 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 10)" ( (binary_expression "puVar6 + 10" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04'" (binary_expression "*(byte *)(puVar6 + 10) & 0xfb" (pointer_expression "*(byte *)(puVar6 + 10)" * (cast_expression "(byte *)(puVar6 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 10)" ( (binary_expression "puVar6 + 10" identifier + number_literal) )))) & number_literal) | (binary_expression "(bVar11 & 1) * '\x04'" (parenthesized_expression "(bVar11 & 1)" ( (binary_expression "bVar11 & 1" identifier & number_literal) )) * (char_literal "'\x04'" ' escape_sequence ')))) ;) (if_statement "if (((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&\n           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) {\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;\n        }" if (parenthesized_expression "(((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&\n           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0))" ( (binary_expression "((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&\n           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)" (parenthesized_expression "((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0))" ( (binary_expression "(((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)" (parenthesized_expression "(((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0))" ( (binary_expression "((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)" (parenthesized_expression "((*(byte *)(puVar6 + 0xf) & 0x3f) == 6)" ( (binary_expression "(*(byte *)(puVar6 + 0xf) & 0x3f) == 6" (parenthesized_expression "(*(byte *)(puVar6 + 0xf) & 0x3f)" ( (binary_expression "*(byte *)(puVar6 + 0xf) & 0x3f" (pointer_expression "*(byte *)(puVar6 + 0xf)" * (cast_expression "(byte *)(puVar6 + 0xf)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xf)" ( (binary_expression "puVar6 + 0xf" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)" ( (comma_expression "iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0" (assignment_expression "iVar15 = FUN_0003ddd0(iVar26)" identifier = (call_expression "FUN_0003ddd0(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) , (binary_expression "iVar15 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)" ( (comma_expression "iVar15 = FUN_0003dc20(iVar26), iVar15 == 0" (assignment_expression "iVar15 = FUN_0003dc20(iVar26)" identifier = (call_expression "FUN_0003dc20(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) , (binary_expression "iVar15 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)" ( (comma_expression "iVar15 = FUN_0003dc90(iVar26), iVar15 == 0" (assignment_expression "iVar15 = FUN_0003dc90(iVar26)" identifier = (call_expression "FUN_0003dc90(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) , (binary_expression "iVar15 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;\n        }" { (expression_statement "*(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;" (assignment_expression "*(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe" (pointer_expression "*(byte *)(puVar6 + 0xf)" * (cast_expression "(byte *)(puVar6 + 0xf)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xf)" ( (binary_expression "puVar6 + 0xf" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar6 + 0xf) & 0xc0 | 0xe" (binary_expression "*(byte *)(puVar6 + 0xf) & 0xc0" (pointer_expression "*(byte *)(puVar6 + 0xf)" * (cast_expression "(byte *)(puVar6 + 0xf)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xf)" ( (binary_expression "puVar6 + 0xf" identifier + number_literal) )))) & number_literal) | number_literal)) ;) })) (if_statement "if (((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&\n           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))) {\n          puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);\n          pbVar35 = (byte *)*puVar23;\n          if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }\n          else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }\n          iVar15 = FUN_0003ddd0(iVar26);\n          if (iVar15 == 0) {\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }\n          else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }\nLAB_00023df1:\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;\n          *(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);\n        }" if (parenthesized_expression "(((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&\n           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0))))" ( (binary_expression "((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&\n           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))" (parenthesized_expression "((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0)" ( (binary_expression "(*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0" (parenthesized_expression "(*(ushort *)(puVar6 + 0xf) & 0x7ff)" ( (binary_expression "*(ushort *)(puVar6 + 0xf) & 0x7ff" (pointer_expression "*(ushort *)(puVar6 + 0xf)" * (cast_expression "(ushort *)(puVar6 + 0xf)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xf)" ( (binary_expression "puVar6 + 0xf" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))" ( (parenthesized_expression "(((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0))" ( (binary_expression "((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)" (binary_expression "((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300" (parenthesized_expression "((uint)puVar6[0xf] >> 0xc & 0xfff00)" ( (binary_expression "(uint)puVar6[0xf] >> 0xc & 0xfff00" (binary_expression "(uint)puVar6[0xf] >> 0xc" (cast_expression "(uint)puVar6[0xf]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar6[0xf]" identifier [ number_literal ])) >> number_literal) & number_literal) )) != number_literal) || (parenthesized_expression "(((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)" ( (binary_expression "((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0" (parenthesized_expression "((uint)puVar6[0xf] >> 0xc & 0xfffdf)" ( (binary_expression "(uint)puVar6[0xf] >> 0xc & 0xfffdf" (binary_expression "(uint)puVar6[0xf] >> 0xc" (cast_expression "(uint)puVar6[0xf]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar6[0xf]" identifier [ number_literal ])) >> number_literal) & number_literal) )) != number_literal) ))) )) ))) )) (compound_statement "{\n          puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);\n          pbVar35 = (byte *)*puVar23;\n          if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }\n          else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }\n          iVar15 = FUN_0003ddd0(iVar26);\n          if (iVar15 == 0) {\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }\n          else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }\nLAB_00023df1:\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;\n          *(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);\n        }" { (expression_statement "puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);" (assignment_expression "puVar23 = (undefined4 *)FUN_0003e1d0(iVar26)" identifier = (cast_expression "(undefined4 *)FUN_0003e1d0(iVar26)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0003e1d0(iVar26)" identifier (argument_list "(iVar26)" ( identifier ))))) ;) (expression_statement "pbVar35 = (byte *)*puVar23;" (assignment_expression "pbVar35 = (byte *)*puVar23" identifier = (cast_expression "(byte *)*puVar23" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar23" * identifier))) ;) (if_statement "if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }\n          else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }" if (parenthesized_expression "((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0))))" ( (binary_expression "(((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))" (parenthesized_expression "(((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)" ( (binary_expression "((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300" (parenthesized_expression "((uint)puVar6[0xf] >> 0xc & 0xfff00)" ( (binary_expression "(uint)puVar6[0xf] >> 0xc & 0xfff00" (binary_expression "(uint)puVar6[0xf] >> 0xc" (cast_expression "(uint)puVar6[0xf]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar6[0xf]" identifier [ number_literal ])) >> number_literal) & number_literal) )) == number_literal) )) || (parenthesized_expression "(((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))" ( (parenthesized_expression "((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0))" ( (binary_expression "(iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)" (parenthesized_expression "(iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0))" ( (comma_expression "iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)" (assignment_expression "iVar15 = FUN_0003dc20(iVar26)" identifier = (call_expression "FUN_0003dc20(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) , (binary_expression "iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)" (binary_expression "iVar15 == 0" identifier == number_literal) && (parenthesized_expression "(iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)" ( (comma_expression "iVar15 = FUN_0003dc90(iVar26), iVar15 == 0" (assignment_expression "iVar15 = FUN_0003dc90(iVar26)" identifier = (call_expression "FUN_0003dc90(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) , (binary_expression "iVar15 == 0" identifier == number_literal)) )))) )) && (parenthesized_expression "(iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)" ( (comma_expression "iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0" (assignment_expression "iVar15 = FUN_0003ddd0(iVar26)" identifier = (call_expression "FUN_0003ddd0(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) , (binary_expression "iVar15 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }" { (expression_statement "bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;" (assignment_expression "bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2" identifier = (binary_expression "(puVar23 == DAT_00081494) * '\x03' + 2" (binary_expression "(puVar23 == DAT_00081494) * '\x03'" (parenthesized_expression "(puVar23 == DAT_00081494)" ( (binary_expression "puVar23 == DAT_00081494" identifier == identifier) )) * (char_literal "'\x03'" ' escape_sequence ')) + number_literal)) ;) }) (else_clause "else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }" else (compound_statement "{\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }" { (expression_statement "iVar15 = FUN_000414f0(iVar26);" (assignment_expression "iVar15 = FUN_000414f0(iVar26)" identifier = (call_expression "FUN_000414f0(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (expression_statement "bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;" (assignment_expression "bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6" identifier = (binary_expression "(-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6" (parenthesized_expression "(-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU)" ( (binary_expression "-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU" (unary_expression "-((*(uint *)(iVar15 + 0x10) & 8) == 0)" - (parenthesized_expression "((*(uint *)(iVar15 + 0x10) & 8) == 0)" ( (binary_expression "(*(uint *)(iVar15 + 0x10) & 8) == 0" (parenthesized_expression "(*(uint *)(iVar15 + 0x10) & 8)" ( (binary_expression "*(uint *)(iVar15 + 0x10) & 8" (pointer_expression "*(uint *)(iVar15 + 0x10)" * (cast_expression "(uint *)(iVar15 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x10)" ( (binary_expression "iVar15 + 0x10" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) & number_literal) )) + number_literal)) ;) }))) (expression_statement "iVar15 = FUN_0003ddd0(iVar26);" (assignment_expression "iVar15 = FUN_0003ddd0(iVar26)" identifier = (call_expression "FUN_0003ddd0(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (if_statement "if (iVar15 == 0) {\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }\n          else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }" { (expression_statement "iVar21 = FUN_00041590(iVar26);" (assignment_expression "iVar21 = FUN_00041590(iVar26)" identifier = (call_expression "FUN_00041590(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (expression_statement "iVar15 = *(int *)(iVar21 + 0x18);" (assignment_expression "iVar15 = *(int *)(iVar21 + 0x18)" identifier = (pointer_expression "*(int *)(iVar21 + 0x18)" * (cast_expression "(int *)(iVar21 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x18)" ( (binary_expression "iVar21 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "uVar33 = *(uint *)(iVar21 + 0x14);" (assignment_expression "uVar33 = *(uint *)(iVar21 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar21 + 0x14)" * (cast_expression "(uint *)(iVar21 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x14)" ( (binary_expression "iVar21 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }" if (parenthesized_expression "((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33)))" ( (binary_expression "(iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))" (parenthesized_expression "(iVar15 == 0 && uVar33 == 0)" ( (binary_expression "iVar15 == 0 && uVar33 == 0" (binary_expression "iVar15 == 0" identifier == number_literal) && (binary_expression "uVar33 == 0" identifier == number_literal)) )) || (parenthesized_expression "(uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))" ( (comma_expression "uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33)" (assignment_expression "uVar32 = bfd_get_gp_size(DAT_00081544)" identifier = (call_expression "bfd_get_gp_size(DAT_00081544)" identifier (argument_list "(DAT_00081544)" ( identifier )))) , (binary_expression "iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33)" (binary_expression "iVar15 != 0" identifier != number_literal) || (binary_expression "(uint)-iVar15 < (uint)(uVar32 < uVar33)" (binary_expression "(uint)-iVar15" (parenthesized_expression "(uint)" ( identifier )) - identifier) < (call_expression "(uint)(uVar32 < uVar33)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar32 < uVar33)" ( (binary_expression "uVar32 < uVar33" identifier < identifier) )))))) ))) )) (compound_statement "{\n              bVar31 = 6;\n            }" { (expression_statement "bVar31 = 6;" (assignment_expression "bVar31 = 6" identifier = number_literal) ;) }) (else_clause "else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }" else (compound_statement "{\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }" { (expression_statement "puVar6[0xd] = uVar33;" (assignment_expression "puVar6[0xd] = uVar33" (subscript_expression "puVar6[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar31 = 0x15;" (assignment_expression "bVar31 = 0x15" identifier = number_literal) ;) (expression_statement "puVar6[0xe] = iVar15;" (assignment_expression "puVar6[0xe] = iVar15" (subscript_expression "puVar6[0xe]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "iVar21 = FUN_000414f0(iVar26);" (assignment_expression "iVar21 = FUN_000414f0(iVar26)" identifier = (call_expression "FUN_000414f0(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (expression_statement "uVar32 = (uint)bVar31;" (assignment_expression "uVar32 = (uint)bVar31" identifier = (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(uint *)(iVar21 + 0x28) = uVar33;" (assignment_expression "*(uint *)(iVar21 + 0x28) = uVar33" (pointer_expression "*(uint *)(iVar21 + 0x28)" * (cast_expression "(uint *)(iVar21 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x28)" ( (binary_expression "iVar21 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar21 + 0x2c) = iVar15;" (assignment_expression "*(int *)(iVar21 + 0x2c) = iVar15" (pointer_expression "*(int *)(iVar21 + 0x2c)" * (cast_expression "(int *)(iVar21 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x2c)" ( (binary_expression "iVar21 + 0x2c" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }" else (compound_statement "{\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }" { (expression_statement "iVar15 = FUN_0003dd80(iVar26);" (assignment_expression "iVar15 = FUN_0003dd80(iVar26)" identifier = (call_expression "FUN_0003dd80(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (if_statement "if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }" { (expression_statement "uVar32 = 1;" (assignment_expression "uVar32 = 1" identifier = number_literal) ;) (if_statement "if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }" if (parenthesized_expression "(puVar23 != DAT_00081494)" ( (binary_expression "puVar23 != DAT_00081494" identifier != identifier) )) (compound_statement "{\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }" { (expression_statement "uVar32 = 2;" (assignment_expression "uVar32 = 2" identifier = number_literal) ;) (expression_statement "bVar41 = puVar23 < DAT_000813f0;" (assignment_expression "bVar41 = puVar23 < DAT_000813f0" identifier = (binary_expression "puVar23 < DAT_000813f0" identifier < identifier)) ;) (expression_statement "bVar42 = puVar23 == DAT_000813f0;" (assignment_expression "bVar42 = puVar23 == DAT_000813f0" identifier = (binary_expression "puVar23 == DAT_000813f0" identifier == identifier)) ;) (if_statement "if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }" if (parenthesized_expression "(!bVar42)" ( (unary_expression "!bVar42" ! identifier) )) (compound_statement "{\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }" { (expression_statement "iVar15 = 7;" (assignment_expression "iVar15 = 7" identifier = number_literal) ;) (expression_statement "uVar32 = 0xf;" (assignment_expression "uVar32 = 0xf" identifier = number_literal) ;) (expression_statement "pbVar34 = pbVar35;" (assignment_expression "pbVar34 = pbVar35" identifier = identifier) ;) (expression_statement "pbVar39 = (byte *)".rdata";" (assignment_expression "pbVar39 = (byte *)".rdata"" identifier = (cast_expression "(byte *)".rdata"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".rdata"" " string_content "))) ;) (do_statement "do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);" do (compound_statement "{\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  }" { (if_statement "if (iVar15 == 0) break;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar41 = *pbVar34 < *pbVar39;" (assignment_expression "bVar41 = *pbVar34 < *pbVar39" identifier = (binary_expression "*pbVar34 < *pbVar39" (pointer_expression "*pbVar34" * identifier) < (pointer_expression "*pbVar39" * identifier))) ;) (expression_statement "bVar42 = *pbVar34 == *pbVar39;" (assignment_expression "bVar42 = *pbVar34 == *pbVar39" identifier = (binary_expression "*pbVar34 == *pbVar39" (pointer_expression "*pbVar34" * identifier) == (pointer_expression "*pbVar39" * identifier))) ;) (expression_statement "pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;" (assignment_expression "pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1" identifier = (binary_expression "pbVar34 + (uint)bVar43 * -2 + 1" (binary_expression "pbVar34 + (uint)bVar43 * -2" identifier + (binary_expression "(uint)bVar43 * -2" (cast_expression "(uint)bVar43" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;" (assignment_expression "pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1" identifier = (binary_expression "pbVar39 + (uint)bVar43 * -2 + 1" (binary_expression "pbVar39 + (uint)bVar43 * -2" identifier + (binary_expression "(uint)bVar43 * -2" (cast_expression "(uint)bVar43" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar42)" ( identifier )) ;) (expression_statement "bVar40 = false;" (assignment_expression "bVar40 = false" identifier = false) ;) (expression_statement "bVar41 = (!bVar41 && !bVar42) == bVar41;" (assignment_expression "bVar41 = (!bVar41 && !bVar42) == bVar41" identifier = (binary_expression "(!bVar41 && !bVar42) == bVar41" (parenthesized_expression "(!bVar41 && !bVar42)" ( (binary_expression "!bVar41 && !bVar42" (unary_expression "!bVar41" ! identifier) && (unary_expression "!bVar42" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }" if (parenthesized_expression "(!bVar41)" ( (unary_expression "!bVar41" ! identifier) )) (compound_statement "{\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }" { (expression_statement "iVar15 = 8;" (assignment_expression "iVar15 = 8" identifier = number_literal) ;) (expression_statement "pbVar34 = pbVar35;" (assignment_expression "pbVar34 = pbVar35" identifier = identifier) ;) (expression_statement "pbVar39 = (byte *)".rodata";" (assignment_expression "pbVar39 = (byte *)".rodata"" identifier = (cast_expression "(byte *)".rodata"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".rodata"" " string_content "))) ;) (do_statement "do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);" do (compound_statement "{\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    }" { (if_statement "if (iVar15 == 0) break;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar40 = *pbVar34 < *pbVar39;" (assignment_expression "bVar40 = *pbVar34 < *pbVar39" identifier = (binary_expression "*pbVar34 < *pbVar39" (pointer_expression "*pbVar34" * identifier) < (pointer_expression "*pbVar39" * identifier))) ;) (expression_statement "bVar41 = *pbVar34 == *pbVar39;" (assignment_expression "bVar41 = *pbVar34 == *pbVar39" identifier = (binary_expression "*pbVar34 == *pbVar39" (pointer_expression "*pbVar34" * identifier) == (pointer_expression "*pbVar39" * identifier))) ;) (expression_statement "pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;" (assignment_expression "pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1" identifier = (binary_expression "pbVar34 + (uint)bVar43 * -2 + 1" (binary_expression "pbVar34 + (uint)bVar43 * -2" identifier + (binary_expression "(uint)bVar43 * -2" (cast_expression "(uint)bVar43" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;" (assignment_expression "pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1" identifier = (binary_expression "pbVar39 + (uint)bVar43 * -2 + 1" (binary_expression "pbVar39 + (uint)bVar43 * -2" identifier + (binary_expression "(uint)bVar43 * -2" (cast_expression "(uint)bVar43" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar41)" ( identifier )) ;) (expression_statement "bVar42 = false;" (assignment_expression "bVar42 = false" identifier = false) ;) (expression_statement "bVar41 = (!bVar40 && !bVar41) == bVar40;" (assignment_expression "bVar41 = (!bVar40 && !bVar41) == bVar40" identifier = (binary_expression "(!bVar40 && !bVar41) == bVar40" (parenthesized_expression "(!bVar40 && !bVar41)" ( (binary_expression "!bVar40 && !bVar41" (unary_expression "!bVar40" ! identifier) && (unary_expression "!bVar41" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }" if (parenthesized_expression "(!bVar41)" ( (unary_expression "!bVar41" ! identifier) )) (compound_statement "{\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }" { (expression_statement "iVar15 = 7;" (assignment_expression "iVar15 = 7" identifier = number_literal) ;) (expression_statement "uVar32 = 0xd;" (assignment_expression "uVar32 = 0xd" identifier = number_literal) ;) (expression_statement "pbVar34 = pbVar35;" (assignment_expression "pbVar34 = pbVar35" identifier = identifier) ;) (expression_statement "pbVar39 = (byte *)".sdata";" (assignment_expression "pbVar39 = (byte *)".sdata"" identifier = (cast_expression "(byte *)".sdata"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".sdata"" " string_content "))) ;) (do_statement "do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);" do (compound_statement "{\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      }" { (if_statement "if (iVar15 == 0) break;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar42 = *pbVar34 < *pbVar39;" (assignment_expression "bVar42 = *pbVar34 < *pbVar39" identifier = (binary_expression "*pbVar34 < *pbVar39" (pointer_expression "*pbVar34" * identifier) < (pointer_expression "*pbVar39" * identifier))) ;) (expression_statement "bVar41 = *pbVar34 == *pbVar39;" (assignment_expression "bVar41 = *pbVar34 == *pbVar39" identifier = (binary_expression "*pbVar34 == *pbVar39" (pointer_expression "*pbVar34" * identifier) == (pointer_expression "*pbVar39" * identifier))) ;) (expression_statement "pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;" (assignment_expression "pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1" identifier = (binary_expression "pbVar34 + (uint)bVar43 * -2 + 1" (binary_expression "pbVar34 + (uint)bVar43 * -2" identifier + (binary_expression "(uint)bVar43 * -2" (cast_expression "(uint)bVar43" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;" (assignment_expression "pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1" identifier = (binary_expression "pbVar39 + (uint)bVar43 * -2 + 1" (binary_expression "pbVar39 + (uint)bVar43 * -2" identifier + (binary_expression "(uint)bVar43 * -2" (cast_expression "(uint)bVar43" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar41)" ( identifier )) ;) (if_statement "if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }" if (parenthesized_expression "((!bVar42 && !bVar41) != bVar42)" ( (binary_expression "(!bVar42 && !bVar41) != bVar42" (parenthesized_expression "(!bVar42 && !bVar41)" ( (binary_expression "!bVar42 && !bVar41" (unary_expression "!bVar42" ! identifier) && (unary_expression "!bVar41" ! identifier)) )) != identifier) )) (compound_statement "{\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }" { (expression_statement "uVar32 = 3;" (assignment_expression "uVar32 = 3" identifier = number_literal) ;) (expression_statement "bVar41 = puVar23 < DAT_0008136c;" (assignment_expression "bVar41 = puVar23 < DAT_0008136c" identifier = (binary_expression "puVar23 < DAT_0008136c" identifier < identifier)) ;) (expression_statement "bVar42 = puVar23 == DAT_0008136c;" (assignment_expression "bVar42 = puVar23 == DAT_0008136c" identifier = (binary_expression "puVar23 == DAT_0008136c" identifier == identifier)) ;) (if_statement "if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }" if (parenthesized_expression "(!bVar42)" ( (unary_expression "!bVar42" ! identifier) )) (compound_statement "{\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }" { (expression_statement "iVar15 = 6;" (assignment_expression "iVar15 = 6" identifier = number_literal) ;) (expression_statement "uVar32 = 0xe;" (assignment_expression "uVar32 = 0xe" identifier = number_literal) ;) (expression_statement "pbVar34 = (byte *)".sbss";" (assignment_expression "pbVar34 = (byte *)".sbss"" identifier = (cast_expression "(byte *)".sbss"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".sbss"" " string_content "))) ;) (do_statement "do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);" do (compound_statement "{\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          }" { (if_statement "if (iVar15 == 0) break;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar41 = *pbVar35 < *pbVar34;" (assignment_expression "bVar41 = *pbVar35 < *pbVar34" identifier = (binary_expression "*pbVar35 < *pbVar34" (pointer_expression "*pbVar35" * identifier) < (pointer_expression "*pbVar34" * identifier))) ;) (expression_statement "bVar42 = *pbVar35 == *pbVar34;" (assignment_expression "bVar42 = *pbVar35 == *pbVar34" identifier = (binary_expression "*pbVar35 == *pbVar34" (pointer_expression "*pbVar35" * identifier) == (pointer_expression "*pbVar34" * identifier))) ;) (expression_statement "pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;" (assignment_expression "pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1" identifier = (binary_expression "pbVar35 + (uint)bVar43 * -2 + 1" (binary_expression "pbVar35 + (uint)bVar43 * -2" identifier + (binary_expression "(uint)bVar43 * -2" (cast_expression "(uint)bVar43" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;" (assignment_expression "pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1" identifier = (binary_expression "pbVar34 + (uint)bVar43 * -2 + 1" (binary_expression "pbVar34 + (uint)bVar43 * -2" identifier + (binary_expression "(uint)bVar43 * -2" (cast_expression "(uint)bVar43" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar42)" ( identifier )) ;) (if_statement "if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }" if (parenthesized_expression "((!bVar41 && !bVar42) != bVar41)" ( (binary_expression "(!bVar41 && !bVar42) != bVar41" (parenthesized_expression "(!bVar41 && !bVar42)" ( (binary_expression "!bVar41 && !bVar42" (unary_expression "!bVar41" ! identifier) && (unary_expression "!bVar42" ! identifier)) )) != identifier) )) (compound_statement "{\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }" { (expression_statement "uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;" (assignment_expression "uVar32 = (uint)(puVar23 == puVar20) * 3 + 2" identifier = (binary_expression "(uint)(puVar23 == puVar20) * 3 + 2" (binary_expression "(uint)(puVar23 == puVar20) * 3" (call_expression "(uint)(puVar23 == puVar20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar23 == puVar20)" ( (binary_expression "puVar23 == puVar20" identifier == identifier) ))) * number_literal) + number_literal)) ;) })) })) })) })) })) })) })) }) (else_clause "else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }" else (compound_statement "{\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }" { (expression_statement "lVar45 = FUN_0003fad0(iVar26);" (assignment_expression "lVar45 = FUN_0003fad0(iVar26)" identifier = (call_expression "FUN_0003fad0(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (if_statement "if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }" if (parenthesized_expression "(lVar45 != 0)" ( (binary_expression "lVar45 != 0" identifier != number_literal) )) (compound_statement "{\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }" { (expression_statement "uVar44 = FUN_0003fad0(iVar26);" (assignment_expression "uVar44 = FUN_0003fad0(iVar26)" identifier = (call_expression "FUN_0003fad0(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (expression_statement "iVar15 = (int)((ulonglong)uVar44 >> 0x20);" (assignment_expression "iVar15 = (int)((ulonglong)uVar44 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar44 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar44 >> 0x20)" ( (binary_expression "(ulonglong)uVar44 >> 0x20" (cast_expression "(ulonglong)uVar44" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar33 = bfd_get_gp_size(DAT_00081544);" (assignment_expression "uVar33 = bfd_get_gp_size(DAT_00081544)" identifier = (call_expression "bfd_get_gp_size(DAT_00081544)" identifier (argument_list "(DAT_00081544)" ( identifier )))) ;) (expression_statement "uVar32 = 0x12;" (assignment_expression "uVar32 = 0x12" identifier = number_literal) ;) (if_statement "if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;" if (parenthesized_expression "(iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)" ( (binary_expression "iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15" (binary_expression "iVar15 == 0" identifier == number_literal) && (binary_expression "(uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15" (call_expression "(uint)(uVar33 < (uint)uVar44)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar33 < (uint)uVar44)" ( (binary_expression "uVar33 < (uint)uVar44" identifier < (cast_expression "(uint)uVar44" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) <= (binary_expression "(uint)-iVar15" (parenthesized_expression "(uint)" ( identifier )) - identifier))) )) (goto_statement "goto LAB_00023df1;" goto statement_identifier ;)) })) (expression_statement "uVar32 = 0x11;" (assignment_expression "uVar32 = 0x11" identifier = number_literal) ;) }))) }))) (labeled_statement "LAB_00023df1:\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;" statement_identifier : (expression_statement "*(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;" (assignment_expression "*(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f" (pointer_expression "*(byte *)(puVar6 + 0xf)" * (cast_expression "(byte *)(puVar6 + 0xf)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xf)" ( (binary_expression "puVar6 + 0xf" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f" (binary_expression "*(byte *)(puVar6 + 0xf) & 0xc0" (pointer_expression "*(byte *)(puVar6 + 0xf)" * (cast_expression "(byte *)(puVar6 + 0xf)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xf)" ( (binary_expression "puVar6 + 0xf" identifier + number_literal) )))) & number_literal) | (binary_expression "bVar11 & 0x3f" identifier & number_literal))) ;)) (expression_statement "*(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);" (assignment_expression "*(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6)" (pointer_expression "*(ushort *)(puVar6 + 0xf)" * (cast_expression "(ushort *)(puVar6 + 0xf)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xf)" ( (binary_expression "puVar6 + 0xf" identifier + number_literal) )))) = (binary_expression "*(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6)" (binary_expression "*(ushort *)(puVar6 + 0xf) & 0xf83f" (pointer_expression "*(ushort *)(puVar6 + 0xf)" * (cast_expression "(ushort *)(puVar6 + 0xf)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xf)" ( (binary_expression "puVar6 + 0xf" identifier + number_literal) )))) & number_literal) | (call_expression "(ushort)(uVar32 << 6)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(uVar32 << 6)" ( (binary_expression "uVar32 << 6" identifier << number_literal) ))))) ;) })) (expression_statement "iVar15 = FUN_0003dc20(iVar26);" (assignment_expression "iVar15 = FUN_0003dc20(iVar26)" identifier = (call_expression "FUN_0003dc20(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (if_statement "if (((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||\n           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)) {\n          iVar15 = FUN_0003dd80(iVar26);\n          if (iVar15 != 0) goto LAB_0002410f;\n          if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }\n          else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }\nLAB_0002402d:\n          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;\n          if (uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }\n          (*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);\n          local_a0 = (undefined4 ******)((int)local_a0 + uVar36);\n          puVar6[9] = local_a8;\n          puVar7 = (uint *)puVar6[5];\n          if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {\n            puVar7[3] = (int)local_a8 - local_8c;\n          }\n          local_a8 = (undefined4 ******)((int)local_a8 + 1);\n          if ((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          FUN_0003dd80(iVar26);\nLAB_0002410f:\n          if (puVar6[6] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (puVar6[8] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          iVar15 = FUN_00041590(iVar26);\n          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }\n        }" if (parenthesized_expression "(((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||\n           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300))" ( (binary_expression "((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||\n           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)" (parenthesized_expression "((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0))))" ( (binary_expression "(((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))" (parenthesized_expression "(((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0))" ( (binary_expression "((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)" (parenthesized_expression "((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0))" ( (binary_expression "(iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)" (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)" ( (comma_expression "iVar15 = FUN_0003dc90(iVar26), iVar15 == 0" (assignment_expression "iVar15 = FUN_0003dc90(iVar26)" identifier = (call_expression "FUN_0003dc90(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) , (binary_expression "iVar15 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)" ( (comma_expression "iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0" (assignment_expression "iVar15 = FUN_0003ddd0(iVar26)" identifier = (call_expression "FUN_0003ddd0(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) , (binary_expression "iVar15 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))" ( (parenthesized_expression "(puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0))" ( (binary_expression "puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)" (binary_expression "puVar6[5] != 0" (subscript_expression "puVar6[5]" identifier [ number_literal ]) != number_literal) || (parenthesized_expression "((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)" ( (binary_expression "(*(byte *)(puVar6 + 0xf) & 0x3f) == 0" (parenthesized_expression "(*(byte *)(puVar6 + 0xf) & 0x3f)" ( (binary_expression "*(byte *)(puVar6 + 0xf) & 0x3f" (pointer_expression "*(byte *)(puVar6 + 0xf)" * (cast_expression "(byte *)(puVar6 + 0xf)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xf)" ( (binary_expression "puVar6 + 0xf" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) ))) )) || (parenthesized_expression "(((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)" ( (binary_expression "((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300" (parenthesized_expression "((uint)puVar6[0xf] >> 0xc & 0xfff00)" ( (binary_expression "(uint)puVar6[0xf] >> 0xc & 0xfff00" (binary_expression "(uint)puVar6[0xf] >> 0xc" (cast_expression "(uint)puVar6[0xf]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar6[0xf]" identifier [ number_literal ])) >> number_literal) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          iVar15 = FUN_0003dd80(iVar26);\n          if (iVar15 != 0) goto LAB_0002410f;\n          if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }\n          else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }\nLAB_0002402d:\n          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;\n          if (uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }\n          (*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);\n          local_a0 = (undefined4 ******)((int)local_a0 + uVar36);\n          puVar6[9] = local_a8;\n          puVar7 = (uint *)puVar6[5];\n          if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {\n            puVar7[3] = (int)local_a8 - local_8c;\n          }\n          local_a8 = (undefined4 ******)((int)local_a8 + 1);\n          if ((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }" { (expression_statement "iVar15 = FUN_0003dd80(iVar26);" (assignment_expression "iVar15 = FUN_0003dd80(iVar26)" identifier = (call_expression "FUN_0003dd80(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (if_statement "if (iVar15 != 0) goto LAB_0002410f;" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002410f;" goto statement_identifier ;)) (if_statement "if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }\n          else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }" if (parenthesized_expression "(((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0))" ( (binary_expression "((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)" (parenthesized_expression "((*(byte *)(puVar6 + 0xf) & 0x3f) == 8)" ( (binary_expression "(*(byte *)(puVar6 + 0xf) & 0x3f) == 8" (parenthesized_expression "(*(byte *)(puVar6 + 0xf) & 0x3f)" ( (binary_expression "*(byte *)(puVar6 + 0xf) & 0x3f" (pointer_expression "*(byte *)(puVar6 + 0xf)" * (cast_expression "(byte *)(puVar6 + 0xf)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xf)" ( (binary_expression "puVar6 + 0xf" identifier + number_literal) )))) & number_literal) )) == number_literal) )) || (parenthesized_expression "(pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)" ( (comma_expression "pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0" (assignment_expression "pcVar24 = strchr((char *)*puVar6,1)" identifier = (call_expression "strchr((char *)*puVar6,1)" identifier (argument_list "((char *)*puVar6,1)" ( (cast_expression "(char *)*puVar6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier)) , number_literal )))) , (binary_expression "pcVar24 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }" { (expression_statement "local_b4 = (undefined4 *******)puVar6[6];" (assignment_expression "local_b4 = (undefined4 *******)puVar6[6]" identifier = (cast_expression "(undefined4 *******)puVar6[6]" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "puVar6[6]" identifier [ number_literal ]))) ;) (if_statement "if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;" if (parenthesized_expression "(local_b4 != (undefined4 *******)0x0)" ( (binary_expression "local_b4 != (undefined4 *******)0x0" identifier != (cast_expression "(undefined4 *******)0x0" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00023e89;" goto statement_identifier ;)) (expression_statement "piVar25 = (int *)puVar6[8];" (assignment_expression "piVar25 = (int *)puVar6[8]" identifier = (cast_expression "(int *)puVar6[8]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[8]" identifier [ number_literal ]))) ;) (if_statement "if (piVar25 == (int *)0x0) goto LAB_0002402d;" if (parenthesized_expression "(piVar25 == (int *)0x0)" ( (binary_expression "piVar25 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002402d;" goto statement_identifier ;)) (expression_statement "local_a4 = (undefined4 *****)((int)local_a8 - local_8c);" (assignment_expression "local_a4 = (undefined4 *****)((int)local_a8 - local_8c)" identifier = (cast_expression "(undefined4 *****)((int)local_a8 - local_8c)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_a8 - local_8c)" ( (binary_expression "(int)local_a8 - local_8c" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (labeled_statement "LAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);" statement_identifier : (expression_statement "uVar13 = *(undefined4 *)((int)local_9c + 0x70);" (assignment_expression "uVar13 = *(undefined4 *)((int)local_9c + 0x70)" identifier = (pointer_expression "*(undefined4 *)((int)local_9c + 0x70)" * (cast_expression "(undefined4 *)((int)local_9c + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c + 0x70)" ( (binary_expression "(int)local_9c + 0x70" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (do_statement "do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);" do (compound_statement "{\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            }" { (expression_statement "iVar15 = piVar25[3];" (assignment_expression "iVar15 = piVar25[3]" identifier = (subscript_expression "piVar25[3]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(piVar25[2] + 4) = uVar13;" (assignment_expression "*(undefined4 *)(piVar25[2] + 4) = uVar13" (pointer_expression "*(undefined4 *)(piVar25[2] + 4)" * (cast_expression "(undefined4 *)(piVar25[2] + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar25[2] + 4)" ( (binary_expression "piVar25[2] + 4" (subscript_expression "piVar25[2]" identifier [ number_literal ]) + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;" (assignment_expression "*(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc" (pointer_expression "*(uint *)(iVar15 + 4)" * (cast_expression "(uint *)(iVar15 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 4)" ( (binary_expression "iVar15 + 4" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc" (binary_expression "*(uint *)(iVar15 + 4) & 0xfff" (pointer_expression "*(uint *)(iVar15 + 4)" * (cast_expression "(uint *)(iVar15 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 4)" ( (binary_expression "iVar15 + 4" identifier + number_literal) )))) & number_literal) | (binary_expression "(int)local_a4 << 0xc" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal))) ;) (expression_statement "piVar25 = (int *)*piVar25;" (assignment_expression "piVar25 = (int *)*piVar25" identifier = (cast_expression "(int *)*piVar25" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar25" * identifier))) ;) }) while (parenthesized_expression "(piVar25 != (int *)0x0)" ( (binary_expression "piVar25 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) }) (else_clause "else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }" else (compound_statement "{\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }" { (expression_statement "uVar13 = FUN_000203f0(0);" (assignment_expression "uVar13 = FUN_000203f0(0)" identifier = (call_expression "FUN_000203f0(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "puVar6[0xc] = uVar13;" (assignment_expression "puVar6[0xc] = uVar13" (subscript_expression "puVar6[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_b4 = (undefined4 *******)puVar6[6];" (assignment_expression "local_b4 = (undefined4 *******)puVar6[6]" identifier = (cast_expression "(undefined4 *******)puVar6[6]" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "puVar6[6]" identifier [ number_literal ]))) ;) (if_statement "if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }" if (parenthesized_expression "(local_b4 == (undefined4 *******)0x0)" ( (binary_expression "local_b4 == (undefined4 *******)0x0" identifier == (cast_expression "(undefined4 *******)0x0" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }" { (expression_statement "piVar25 = (int *)puVar6[8];" (assignment_expression "piVar25 = (int *)puVar6[8]" identifier = (cast_expression "(int *)puVar6[8]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[8]" identifier [ number_literal ]))) ;) (expression_statement "local_a4 = (undefined4 *****)((int)local_a8 - local_8c);" (assignment_expression "local_a4 = (undefined4 *****)((int)local_a8 - local_8c)" identifier = (cast_expression "(undefined4 *****)((int)local_a8 - local_8c)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_a8 - local_8c)" ( (binary_expression "(int)local_a8 - local_8c" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (labeled_statement "joined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;" statement_identifier : (if_statement "if (piVar25 != (int *)0x0) goto LAB_00023ff8;" if (parenthesized_expression "(piVar25 != (int *)0x0)" ( (binary_expression "piVar25 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00023ff8;" goto statement_identifier ;))) }) (else_clause "else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }" else (compound_statement "{\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }" { (labeled_statement "LAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);" statement_identifier : (expression_statement "iVar15 = *(int *)((int)local_b4 + 0x24);" (assignment_expression "iVar15 = *(int *)((int)local_b4 + 0x24)" identifier = (pointer_expression "*(int *)((int)local_b4 + 0x24)" * (cast_expression "(int *)((int)local_b4 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + 0x24)" ( (binary_expression "(int)local_b4 + 0x24" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (if_statement "if (iVar15 == -1) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }" if (parenthesized_expression "(iVar15 == -1)" ( (binary_expression "iVar15 == -1" identifier == number_literal) )) (compound_statement "{\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }" { (expression_statement "FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");" (call_expression "FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols")" identifier (argument_list "("../../gas/ecoff.c",0x1020,"ecoff_build_symbols")" ( (string_literal ""../../gas/ecoff.c"" " string_content ") , number_literal , (string_literal ""ecoff_build_symbols"" " string_content ") ))) ;) })) (expression_statement "uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;" (assignment_expression "uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc" identifier = (binary_expression "puVar6[0xf] & 0xfff | iVar15 << 0xc" (binary_expression "puVar6[0xf] & 0xfff" (subscript_expression "puVar6[0xf]" identifier [ number_literal ]) & number_literal) | (binary_expression "iVar15 << 0xc" identifier << number_literal))) ;) (expression_statement "puVar6[0xf] = uVar32;" (assignment_expression "puVar6[0xf] = uVar32" (subscript_expression "puVar6[0xf]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }" if (parenthesized_expression "(((ushort)uVar32 & 0x7c0) != 0x2c0)" ( (binary_expression "((ushort)uVar32 & 0x7c0) != 0x2c0" (parenthesized_expression "((ushort)uVar32 & 0x7c0)" ( (binary_expression "(ushort)uVar32 & 0x7c0" (cast_expression "(ushort)uVar32" ( (type_descriptor "ushort" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }" { (expression_statement "puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);" (assignment_expression "puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30)" (subscript_expression "puVar6[0xc]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)((int)local_b4 + 0x30)" * (cast_expression "(undefined4 *)((int)local_b4 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + 0x30)" ( (binary_expression "(int)local_b4 + 0x30" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) })) (expression_statement "bVar11 = *(byte *)((int)local_b4 + 0x3c);" (assignment_expression "bVar11 = *(byte *)((int)local_b4 + 0x3c)" identifier = (pointer_expression "*(byte *)((int)local_b4 + 0x3c)" * (cast_expression "(byte *)((int)local_b4 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + 0x3c)" ( (binary_expression "(int)local_b4 + 0x3c" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }" if (parenthesized_expression "(((bVar11 & 0x3f) + 0x39 & 0x3b) == 0)" ( (binary_expression "((bVar11 & 0x3f) + 0x39 & 0x3b) == 0" (parenthesized_expression "((bVar11 & 0x3f) + 0x39 & 0x3b)" ( (binary_expression "(bVar11 & 0x3f) + 0x39 & 0x3b" (binary_expression "(bVar11 & 0x3f) + 0x39" (parenthesized_expression "(bVar11 & 0x3f)" ( (binary_expression "bVar11 & 0x3f" identifier & number_literal) )) + number_literal) & number_literal) )) == number_literal) )) (compound_statement "{\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }" { (expression_statement "local_a4 = (undefined4 *****)((int)local_a8 - local_8c);" (assignment_expression "local_a4 = (undefined4 *****)((int)local_a8 - local_8c)" identifier = (cast_expression "(undefined4 *****)((int)local_a8 - local_8c)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_a8 - local_8c)" ( (binary_expression "(int)local_a8 - local_8c" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "*(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;" (assignment_expression "*(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000" (pointer_expression "*(uint *)((int)local_b4 + 0x3c)" * (cast_expression "(uint *)((int)local_b4 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + 0x3c)" ( (binary_expression "(int)local_b4 + 0x3c" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000" (binary_expression "*(uint *)((int)local_b4 + 0x3c) & 0xfff" (pointer_expression "*(uint *)((int)local_b4 + 0x3c)" * (cast_expression "(uint *)((int)local_b4 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + 0x3c)" ( (binary_expression "(int)local_b4 + 0x3c" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) | (binary_expression "((int)local_a4 + 1) * 0x1000" (parenthesized_expression "((int)local_a4 + 1)" ( (binary_expression "(int)local_a4 + 1" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) * number_literal))) ;) (expression_statement "(*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);" (call_expression "(*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68)" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68)" ( identifier , (binary_expression "(int)local_b4 + 0x30" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , (binary_expression "pcVar14 + iVar15 * uVar36 + local_68" (binary_expression "pcVar14 + iVar15 * uVar36" identifier + (binary_expression "iVar15 * uVar36" identifier * identifier)) + identifier) ))) ;) (if_statement "if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }" if (parenthesized_expression "((bVar11 & 0x37) != 6)" ( (binary_expression "(bVar11 & 0x37) != 6" (parenthesized_expression "(bVar11 & 0x37)" ( (binary_expression "bVar11 & 0x37" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }" { (if_statement "if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }" if (parenthesized_expression "(((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0))" ( (binary_expression "((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)" (parenthesized_expression "((bVar11 & 0x3f) == 7)" ( (binary_expression "(bVar11 & 0x3f) == 7" (parenthesized_expression "(bVar11 & 0x3f)" ( (binary_expression "bVar11 & 0x3f" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)" ( (binary_expression "(*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0" (parenthesized_expression "(*(ushort *)(puVar6 + 0xf) & 0x7c0)" ( (binary_expression "*(ushort *)(puVar6 + 0xf) & 0x7c0" (pointer_expression "*(ushort *)(puVar6 + 0xf)" * (cast_expression "(ushort *)(puVar6 + 0xf)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xf)" ( (binary_expression "puVar6 + 0xf" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }" { (if_statement "if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }" if (parenthesized_expression "(iVar26 == 0)" ( (binary_expression "iVar26 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }" { (expression_statement "FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");" (call_expression "FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols")" identifier (argument_list "("../../gas/ecoff.c",0x105a,"ecoff_build_symbols")" ( (string_literal ""../../gas/ecoff.c"" " string_content ") , number_literal , (string_literal ""ecoff_build_symbols"" " string_content ") ))) ;) })) (if_statement "if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }" if (parenthesized_expression "((int *)puVar6[5] == (int *)0x0)" ( (binary_expression "(int *)puVar6[5] == (int *)0x0" (cast_expression "(int *)puVar6[5]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[5]" identifier [ number_literal ])) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }" { (expression_statement "FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");" (call_expression "FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols")" identifier (argument_list "("../../gas/ecoff.c",0x105b,"ecoff_build_symbols")" ( (string_literal ""../../gas/ecoff.c"" " string_content ") , number_literal , (string_literal ""ecoff_build_symbols"" " string_content ") ))) ;) })) (expression_statement "uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);" (assignment_expression "uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4)" identifier = (pointer_expression "*(undefined4 *)(*(int *)puVar6[5] + 4)" * (cast_expression "(undefined4 *)(*(int *)puVar6[5] + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar6[5] + 4)" ( (binary_expression "*(int *)puVar6[5] + 4" (pointer_expression "*(int *)puVar6[5]" * (cast_expression "(int *)puVar6[5]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[5]" identifier [ number_literal ]))) + number_literal) ))))) ;) (expression_statement "iVar15 = FUN_0003e1d0(iVar26);" (assignment_expression "iVar15 = FUN_0003e1d0(iVar26)" identifier = (call_expression "FUN_0003e1d0(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (expression_statement "iVar21 = FUN_0003e1d0(uVar13);" (assignment_expression "iVar21 = FUN_0003e1d0(uVar13)" identifier = (call_expression "FUN_0003e1d0(uVar13)" identifier (argument_list "(uVar13)" ( identifier )))) ;) (if_statement "if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }" if (parenthesized_expression "(iVar15 != iVar21)" ( (binary_expression "iVar15 != iVar21" identifier != identifier) )) (compound_statement "{\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }" { (expression_statement "uVar22 = dcgettext(0,".begin/.bend in different segments",5);" (assignment_expression "uVar22 = dcgettext(0,".begin/.bend in different segments",5)" identifier = (call_expression "dcgettext(0,".begin/.bend in different segments",5)" identifier (argument_list "(0,".begin/.bend in different segments",5)" ( number_literal , (string_literal "".begin/.bend in different segments"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_00031540(uVar22);" (call_expression "FUN_00031540(uVar22)" identifier (argument_list "(uVar22)" ( identifier ))) ;) })) (expression_statement "lVar45 = FUN_0003fad0(iVar26);" (assignment_expression "lVar45 = FUN_0003fad0(iVar26)" identifier = (call_expression "FUN_0003fad0(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (expression_statement "lVar46 = FUN_0003fad0(uVar13);" (assignment_expression "lVar46 = FUN_0003fad0(uVar13)" identifier = (call_expression "FUN_0003fad0(uVar13)" identifier (argument_list "(uVar13)" ( identifier )))) ;) (expression_statement "piVar25 = (int *)puVar6[8];" (assignment_expression "piVar25 = (int *)puVar6[8]" identifier = (cast_expression "(int *)puVar6[8]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[8]" identifier [ number_literal ]))) ;) (expression_statement "*(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;" (assignment_expression "*(longlong *)(puVar6 + 0xd) = lVar45 - lVar46" (pointer_expression "*(longlong *)(puVar6 + 0xd)" * (cast_expression "(longlong *)(puVar6 + 0xd)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xd)" ( (binary_expression "puVar6 + 0xd" identifier + number_literal) )))) = (binary_expression "lVar45 - lVar46" identifier - identifier)) ;) }) (else_clause "else {\n                    piVar25 = (int *)puVar6[8];\n                  }" else (compound_statement "{\n                    piVar25 = (int *)puVar6[8];\n                  }" { (expression_statement "piVar25 = (int *)puVar6[8];" (assignment_expression "piVar25 = (int *)puVar6[8]" identifier = (cast_expression "(int *)puVar6[8]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[8]" identifier [ number_literal ]))) ;) }))) (if_statement "if (piVar25 == (int *)0x0) goto LAB_0002402d;" if (parenthesized_expression "(piVar25 == (int *)0x0)" ( (binary_expression "piVar25 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002402d;" goto statement_identifier ;)) (goto_statement "goto LAB_00023ff8;" goto statement_identifier ;) })) }) (else_clause "else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }" else (compound_statement "{\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }" { (if_statement "if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }" if (parenthesized_expression "(*(int *)((int)local_b4 + 0x1c) == 0)" ( (binary_expression "*(int *)((int)local_b4 + 0x1c) == 0" (pointer_expression "*(int *)((int)local_b4 + 0x1c)" * (cast_expression "(int *)((int)local_b4 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + 0x1c)" ( (binary_expression "(int)local_b4 + 0x1c" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }" { (expression_statement "FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");" (call_expression "FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols")" identifier (argument_list "("../../gas/ecoff.c",0x1035,"ecoff_build_symbols")" ( (string_literal ""../../gas/ecoff.c"" " string_content ") , number_literal , (string_literal ""ecoff_build_symbols"" " string_content ") ))) ;) })) (expression_statement "local_a4 = (undefined4 *****)((int)local_a8 - local_8c);" (assignment_expression "local_a4 = (undefined4 *****)((int)local_a8 - local_8c)" identifier = (cast_expression "(undefined4 *****)((int)local_a8 - local_8c)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_a8 - local_8c)" ( (binary_expression "(int)local_a8 - local_8c" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "*(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;" (assignment_expression "*(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1" (pointer_expression "*(int *)(*(int *)((int)local_b4 + 0x1c) + 4)" * (cast_expression "(int *)(*(int *)((int)local_b4 + 0x1c) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)local_b4 + 0x1c) + 4)" ( (binary_expression "*(int *)((int)local_b4 + 0x1c) + 4" (pointer_expression "*(int *)((int)local_b4 + 0x1c)" * (cast_expression "(int *)((int)local_b4 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + 0x1c)" ( (binary_expression "(int)local_b4 + 0x1c" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) )))) = (binary_expression "(int)local_a4 + 1" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (if_statement "if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }" if (parenthesized_expression "((bVar11 & 0x37) != 6)" ( (binary_expression "(bVar11 & 0x37) != 6" (parenthesized_expression "(bVar11 & 0x37)" ( (binary_expression "bVar11 & 0x37" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }" { (expression_statement "piVar25 = (int *)puVar6[8];" (assignment_expression "piVar25 = (int *)puVar6[8]" identifier = (cast_expression "(int *)puVar6[8]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[8]" identifier [ number_literal ]))) ;) (goto_statement "goto joined_r0x00024174;" goto statement_identifier ;) })) }))) (if_statement "if (iVar26 == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }" if (parenthesized_expression "(iVar26 == 0)" ( (binary_expression "iVar26 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }" { (expression_statement "FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");" (call_expression "FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols")" identifier (argument_list "("../../gas/ecoff.c",0x1042,"ecoff_build_symbols")" ( (string_literal ""../../gas/ecoff.c"" " string_content ") , number_literal , (string_literal ""ecoff_build_symbols"" " string_content ") ))) ;) })) (if_statement "if (*(int *)((int)local_b4 + 4) == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }" if (parenthesized_expression "(*(int *)((int)local_b4 + 4) == 0)" ( (binary_expression "*(int *)((int)local_b4 + 4) == 0" (pointer_expression "*(int *)((int)local_b4 + 4)" * (cast_expression "(int *)((int)local_b4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + 4)" ( (binary_expression "(int)local_b4 + 4" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }" { (expression_statement "FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");" (call_expression "FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols")" identifier (argument_list "("../../gas/ecoff.c",0x1043,"ecoff_build_symbols")" ( (string_literal ""../../gas/ecoff.c"" " string_content ") , number_literal , (string_literal ""ecoff_build_symbols"" " string_content ") ))) ;) })) (expression_statement "iVar15 = FUN_0003e1d0(iVar26);" (assignment_expression "iVar15 = FUN_0003e1d0(iVar26)" identifier = (call_expression "FUN_0003e1d0(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (expression_statement "iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));" (assignment_expression "iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4))" identifier = (call_expression "FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4))" identifier (argument_list "(*(undefined4 *)((int)local_b4 + 4))" ( (pointer_expression "*(undefined4 *)((int)local_b4 + 4)" * (cast_expression "(undefined4 *)((int)local_b4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + 4)" ( (binary_expression "(int)local_b4 + 4" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (if_statement "if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }" if (parenthesized_expression "(iVar15 != iVar21)" ( (binary_expression "iVar15 != iVar21" identifier != identifier) )) (compound_statement "{\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }" { (expression_statement "uVar13 = dcgettext(0,".begin/.bend in different segments",5);" (assignment_expression "uVar13 = dcgettext(0,".begin/.bend in different segments",5)" identifier = (call_expression "dcgettext(0,".begin/.bend in different segments",5)" identifier (argument_list "(0,".begin/.bend in different segments",5)" ( number_literal , (string_literal "".begin/.bend in different segments"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_00031540(uVar13);" (call_expression "FUN_00031540(uVar13)" identifier (argument_list "(uVar13)" ( identifier ))) ;) })) (expression_statement "lVar45 = FUN_0003fad0(iVar26);" (assignment_expression "lVar45 = FUN_0003fad0(iVar26)" identifier = (call_expression "FUN_0003fad0(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (expression_statement "lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));" (assignment_expression "lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4))" identifier = (call_expression "FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4))" identifier (argument_list "(*(undefined4 *)((int)local_b4 + 4))" ( (pointer_expression "*(undefined4 *)((int)local_b4 + 4)" * (cast_expression "(undefined4 *)((int)local_b4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + 4)" ( (binary_expression "(int)local_b4 + 4" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "uVar10 = lVar45 - lVar46;" (assignment_expression "uVar10 = lVar45 - lVar46" identifier = (binary_expression "lVar45 - lVar46" identifier - identifier)) ;) (if_statement "if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }" if (parenthesized_expression "((uVar10 & 1) == 0)" ( (binary_expression "(uVar10 & 1) == 0" (parenthesized_expression "(uVar10 & 1)" ( (binary_expression "uVar10 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }" { (expression_statement "*(ulonglong *)(puVar6 + 0xd) = uVar10;" (assignment_expression "*(ulonglong *)(puVar6 + 0xd) = uVar10" (pointer_expression "*(ulonglong *)(puVar6 + 0xd)" * (cast_expression "(ulonglong *)(puVar6 + 0xd)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xd)" ( (binary_expression "puVar6 + 0xd" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }" else (compound_statement "{\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }" { (expression_statement "*(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;" (assignment_expression "*(ulonglong *)(puVar6 + 0xd) = uVar10 + 1" (pointer_expression "*(ulonglong *)(puVar6 + 0xd)" * (cast_expression "(ulonglong *)(puVar6 + 0xd)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xd)" ( (binary_expression "puVar6 + 0xd" identifier + number_literal) )))) = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) }))) (expression_statement "iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));" (assignment_expression "iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4))" identifier = (call_expression "FUN_000414f0(*(undefined4 *)((int)local_b4 + 4))" identifier (argument_list "(*(undefined4 *)((int)local_b4 + 4))" ( (pointer_expression "*(undefined4 *)((int)local_b4 + 4)" * (cast_expression "(undefined4 *)((int)local_b4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + 4)" ( (binary_expression "(int)local_b4 + 4" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "uVar13 = puVar6[0xe];" (assignment_expression "uVar13 = puVar6[0xe]" identifier = (subscript_expression "puVar6[0xe]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];" (assignment_expression "*(undefined4 *)(iVar15 + 0x28) = puVar6[0xd]" (pointer_expression "*(undefined4 *)(iVar15 + 0x28)" * (cast_expression "(undefined4 *)(iVar15 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x28)" ( (binary_expression "iVar15 + 0x28" identifier + number_literal) )))) = (subscript_expression "puVar6[0xd]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(iVar15 + 0x2c) = uVar13;" (assignment_expression "*(undefined4 *)(iVar15 + 0x2c) = uVar13" (pointer_expression "*(undefined4 *)(iVar15 + 0x2c)" * (cast_expression "(undefined4 *)(iVar15 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x2c)" ( (binary_expression "iVar15 + 0x2c" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar25 = (int *)puVar6[8];" (assignment_expression "piVar25 = (int *)puVar6[8]" identifier = (cast_expression "(int *)puVar6[8]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[8]" identifier [ number_literal ]))) ;) (if_statement "if (piVar25 != (int *)0x0) goto LAB_00024237;" if (parenthesized_expression "(piVar25 != (int *)0x0)" ( (binary_expression "piVar25 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00024237;" goto statement_identifier ;)) }))) }))) (labeled_statement "LAB_0002402d:\n          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;" statement_identifier : (expression_statement "uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;" (assignment_expression "uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f" identifier = (binary_expression "(int)pcVar1 - (int)local_a0 >> 0x1f" (binary_expression "(int)pcVar1 - (int)local_a0" (cast_expression "(int)pcVar1" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;)) (if_statement "if (uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }" if (parenthesized_expression "(uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36))" ( (binary_expression "uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)" (binary_expression "uVar32 < uVar16" identifier < identifier) || (binary_expression "uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)" (binary_expression "uVar32 - uVar16" identifier - identifier) < (call_expression "(uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)((int)pcVar1 - (int)local_a0) < uVar36)" ( (binary_expression "(uint)((int)pcVar1 - (int)local_a0) < uVar36" (call_expression "(uint)((int)pcVar1 - (int)local_a0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pcVar1 - (int)local_a0)" ( (binary_expression "(int)pcVar1 - (int)local_a0" (cast_expression "(int)pcVar1" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < identifier) ))))) )) (compound_statement "{\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }" { (expression_statement "local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);" (assignment_expression "local_a0 = (undefined4 ******)FUN_0001ff00(uVar36)" identifier = (cast_expression "(undefined4 ******)FUN_0001ff00(uVar36)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "FUN_0001ff00(uVar36)" identifier (argument_list "(uVar36)" ( identifier ))))) ;) })) (expression_statement "(*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);" (call_expression "(*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0)" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(DAT_00081544,puVar6 + 0xc,local_a0)" ( identifier , (binary_expression "puVar6 + 0xc" identifier + number_literal) , identifier ))) ;) (expression_statement "local_a0 = (undefined4 ******)((int)local_a0 + uVar36);" (assignment_expression "local_a0 = (undefined4 ******)((int)local_a0 + uVar36)" identifier = (cast_expression "(undefined4 ******)((int)local_a0 + uVar36)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)local_a0 + uVar36)" ( (binary_expression "(int)local_a0 + uVar36" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "puVar6[9] = local_a8;" (assignment_expression "puVar6[9] = local_a8" (subscript_expression "puVar6[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7 = (uint *)puVar6[5];" (assignment_expression "puVar7 = (uint *)puVar6[5]" identifier = (cast_expression "(uint *)puVar6[5]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[5]" identifier [ number_literal ]))) ;) (if_statement "if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {\n            puVar7[3] = (int)local_a8 - local_8c;\n          }" if (parenthesized_expression "((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6))" ( (binary_expression "(puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)" (parenthesized_expression "(puVar7 != (uint *)0x0)" ( (binary_expression "puVar7 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((undefined4 *)*puVar7 == puVar6)" ( (binary_expression "(undefined4 *)*puVar7 == puVar6" (cast_expression "(undefined4 *)*puVar7" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier)) == identifier) ))) )) (compound_statement "{\n            puVar7[3] = (int)local_a8 - local_8c;\n          }" { (expression_statement "puVar7[3] = (int)local_a8 - local_8c;" (assignment_expression "puVar7[3] = (int)local_a8 - local_8c" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = (binary_expression "(int)local_a8 - local_8c" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;) })) (expression_statement "local_a8 = (undefined4 ******)((int)local_a8 + 1);" (assignment_expression "local_a8 = (undefined4 ******)((int)local_a8 + 1)" identifier = (cast_expression "(undefined4 ******)((int)local_a8 + 1)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)local_a8 + 1)" ( (binary_expression "(int)local_a8 + 1" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }" if (parenthesized_expression "((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6))" ( (binary_expression "(iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)" (parenthesized_expression "(iVar26 != 0)" ( (binary_expression "iVar26 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)" ( (comma_expression "iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6" (assignment_expression "iVar15 = FUN_00041590(iVar26)" identifier = (call_expression "FUN_00041590(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) , (binary_expression "*(undefined4 **)(iVar15 + 0x10) == puVar6" (pointer_expression "*(undefined4 **)(iVar15 + 0x10)" * (cast_expression "(undefined4 **)(iVar15 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0x10)" ( (binary_expression "iVar15 + 0x10" identifier + number_literal) )))) == identifier)) ))) )) (compound_statement "{\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }" { (if_statement "if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }" if (parenthesized_expression "((*(byte *)(puVar6 + 0xf) & 0x37) == 6)" ( (binary_expression "(*(byte *)(puVar6 + 0xf) & 0x37) == 6" (parenthesized_expression "(*(byte *)(puVar6 + 0xf) & 0x37)" ( (binary_expression "*(byte *)(puVar6 + 0xf) & 0x37" (pointer_expression "*(byte *)(puVar6 + 0xf)" * (cast_expression "(byte *)(puVar6 + 0xf)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xf)" ( (binary_expression "puVar6 + 0xf" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }" { (expression_statement "puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;" (assignment_expression "puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000" (subscript_expression "puVar6[0xf]" identifier [ number_literal ]) = (binary_expression "puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000" (binary_expression "puVar6[0xf] & 0xfff" (subscript_expression "puVar6[0xf]" identifier [ number_literal ]) & number_literal) | (binary_expression "(((int)local_a8 - local_8c) + -1) * 0x1000" (parenthesized_expression "(((int)local_a8 - local_8c) + -1)" ( (binary_expression "((int)local_a8 - local_8c) + -1" (parenthesized_expression "((int)local_a8 - local_8c)" ( (binary_expression "(int)local_a8 - local_8c" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )) + number_literal) )) * number_literal))) ;) })) (goto_statement "goto LAB_00024347;" goto statement_identifier ;) })) }) (else_clause "else {\n          FUN_0003dd80(iVar26);\nLAB_0002410f:\n          if (puVar6[6] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (puVar6[8] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          iVar15 = FUN_00041590(iVar26);\n          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }\n        }" else (compound_statement "{\n          FUN_0003dd80(iVar26);\nLAB_0002410f:\n          if (puVar6[6] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (puVar6[8] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          iVar15 = FUN_00041590(iVar26);\n          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }\n        }" { (expression_statement "FUN_0003dd80(iVar26);" (call_expression "FUN_0003dd80(iVar26)" identifier (argument_list "(iVar26)" ( identifier ))) ;) (labeled_statement "LAB_0002410f:\n          if (puVar6[6] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }" statement_identifier : (if_statement "if (puVar6[6] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }" if (parenthesized_expression "(puVar6[6] != 0)" ( (binary_expression "puVar6[6] != 0" (subscript_expression "puVar6[6]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                    \n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }" { (expression_statement "FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");" (call_expression "FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols")" identifier (argument_list "("../../gas/ecoff.c",0x101e,"ecoff_build_symbols")" ( (string_literal ""../../gas/ecoff.c"" " string_content ") , number_literal , (string_literal ""ecoff_build_symbols"" " string_content ") ))) ;) }))) (if_statement "if (puVar6[8] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }" if (parenthesized_expression "(puVar6[8] != 0)" ( (binary_expression "puVar6[8] != 0" (subscript_expression "puVar6[8]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                    \n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }" { (expression_statement "FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");" (call_expression "FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols")" identifier (argument_list "("../../gas/ecoff.c",0x1069,"ecoff_build_symbols")" ( (string_literal ""../../gas/ecoff.c"" " string_content ") , number_literal , (string_literal ""ecoff_build_symbols"" " string_content ") ))) ;) })) (expression_statement "iVar15 = FUN_00041590(iVar26);" (assignment_expression "iVar15 = FUN_00041590(iVar26)" identifier = (call_expression "FUN_00041590(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (if_statement "if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }" if (parenthesized_expression "(puVar6 == *(undefined4 **)(iVar15 + 0x10))" ( (binary_expression "puVar6 == *(undefined4 **)(iVar15 + 0x10)" identifier == (pointer_expression "*(undefined4 **)(iVar15 + 0x10)" * (cast_expression "(undefined4 **)(iVar15 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0x10)" ( (binary_expression "iVar15 + 0x10" identifier + number_literal) ))))) )) (compound_statement "{\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }" { (labeled_statement "LAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);" statement_identifier : (expression_statement "puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);" (assignment_expression "puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70)" (subscript_expression "puVar6[0xb]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)((int)local_9c + 0x70)" * (cast_expression "(undefined4 *)((int)local_9c + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c + 0x70)" ( (binary_expression "(int)local_9c + 0x70" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (expression_statement "iVar15 = FUN_0003dc20(iVar26);" (assignment_expression "iVar15 = FUN_0003dc20(iVar26)" identifier = (call_expression "FUN_0003dc20(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (if_statement "if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }" if (parenthesized_expression "((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0))" ( (binary_expression "(iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)" (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)" ( (comma_expression "iVar26 = FUN_0003dc90(iVar26), iVar26 != 0" (assignment_expression "iVar26 = FUN_0003dc90(iVar26)" identifier = (call_expression "FUN_0003dc90(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) , (binary_expression "iVar26 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }" { (expression_statement "*(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;" (assignment_expression "*(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf" (pointer_expression "*(byte *)((int)local_9c + 0x44U)" * (cast_expression "(byte *)((int)local_9c + 0x44U)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c + 0x44U)" ( (binary_expression "(int)local_9c + 0x44U" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)local_9c + 0x44U) & 0xdf" (pointer_expression "*(byte *)((int)local_9c + 0x44U)" * (cast_expression "(byte *)((int)local_9c + 0x44U)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c + 0x44U)" ( (binary_expression "(int)local_9c + 0x44U" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal)) ;) })) })) }))) (if_statement "if (local_70 <= puVar6 + 0x10) goto LAB_00024380;" if (parenthesized_expression "(local_70 <= puVar6 + 0x10)" ( (binary_expression "local_70 <= puVar6 + 0x10" identifier <= (binary_expression "puVar6 + 0x10" identifier + number_literal)) )) (goto_statement "goto LAB_00024380;" goto statement_identifier ;)) (expression_statement "uVar32 = puVar6[0x14];" (assignment_expression "uVar32 = puVar6[0x14]" identifier = (subscript_expression "puVar6[0x14]" identifier [ number_literal ])) ;) (expression_statement "puVar6 = puVar6 + 0x10;" (assignment_expression "puVar6 = puVar6 + 0x10" identifier = (binary_expression "puVar6 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (goto_statement "goto LAB_000243a4;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(param_1 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x30) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x30)" * (cast_expression "(undefined4 *)(param_1 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_0002554e:\n  *(undefined4 *)(param_1 + 0x3c) = 0;" statement_identifier : (expression_statement "*(undefined4 *)(param_1 + 0x3c) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x3c) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x3c)" * (cast_expression "(undefined4 *)(param_1 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "*(undefined4 *)(param_1 + 0x40) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x40) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x40)" * (cast_expression "(undefined4 *)(param_1 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x44) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x44) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x44)" * (cast_expression "(undefined4 *)(param_1 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x50) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x50) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x50)" * (cast_expression "(undefined4 *)(param_1 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(param_1 + 0x4c) = local_68;" (assignment_expression "*(uint *)(param_1 + 0x4c) = local_68" (pointer_expression "*(uint *)(param_1 + 0x4c)" * (cast_expression "(uint *)(param_1 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) )))) = identifier) ;) (labeled_statement "LAB_00024eaa:\n  uVar16 = FUN_0001ff70(local_68,0);" statement_identifier : (expression_statement "uVar16 = FUN_0001ff70(local_68,0);" (assignment_expression "uVar16 = FUN_0001ff70(local_68,0)" identifier = (call_expression "FUN_0001ff70(local_68,0)" identifier (argument_list "(local_68,0)" ( identifier , number_literal )))) ;)) (expression_statement "*(uint *)(param_1 + 0x48) =\n       uVar16 - *(uint *)(param_1 + 0x4c) >> 2 |\n       (-(uint)(uVar16 < *(uint *)(param_1 + 0x4c)) - *(int *)(param_1 + 0x50)) * 0x40000000;" (assignment_expression "*(uint *)(param_1 + 0x48) =\n       uVar16 - *(uint *)(param_1 + 0x4c) >> 2 |\n       (-(uint)(uVar16 < *(uint *)(param_1 + 0x4c)) - *(int *)(param_1 + 0x50)) * 0x40000000" (pointer_expression "*(uint *)(param_1 + 0x48)" * (cast_expression "(uint *)(param_1 + 0x48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) )))) = (binary_expression "uVar16 - *(uint *)(param_1 + 0x4c) >> 2 |\n       (-(uint)(uVar16 < *(uint *)(param_1 + 0x4c)) - *(int *)(param_1 + 0x50)) * 0x40000000" (binary_expression "uVar16 - *(uint *)(param_1 + 0x4c) >> 2" (binary_expression "uVar16 - *(uint *)(param_1 + 0x4c)" identifier - (pointer_expression "*(uint *)(param_1 + 0x4c)" * (cast_expression "(uint *)(param_1 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) >> number_literal) | (binary_expression "(-(uint)(uVar16 < *(uint *)(param_1 + 0x4c)) - *(int *)(param_1 + 0x50)) * 0x40000000" (parenthesized_expression "(-(uint)(uVar16 < *(uint *)(param_1 + 0x4c)) - *(int *)(param_1 + 0x50))" ( (binary_expression "-(uint)(uVar16 < *(uint *)(param_1 + 0x4c)) - *(int *)(param_1 + 0x50)" (unary_expression "-(uint)(uVar16 < *(uint *)(param_1 + 0x4c))" - (call_expression "(uint)(uVar16 < *(uint *)(param_1 + 0x4c))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar16 < *(uint *)(param_1 + 0x4c))" ( (binary_expression "uVar16 < *(uint *)(param_1 + 0x4c)" identifier < (pointer_expression "*(uint *)(param_1 + 0x4c)" * (cast_expression "(uint *)(param_1 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) )))) - (pointer_expression "*(int *)(param_1 + 0x50)" * (cast_expression "(int *)(param_1 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) ))))) )) * number_literal))) ;) (expression_statement "*(uint *)(param_1 + 0x58) = uVar16;" (assignment_expression "*(uint *)(param_1 + 0x58) = uVar16" (pointer_expression "*(uint *)(param_1 + 0x58)" * (cast_expression "(uint *)(param_1 + 0x58)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar26 = DAT_00078240;" (assignment_expression "iVar26 = DAT_00078240" identifier = identifier) ;) (expression_statement "local_9c = (undefined4 *****)DAT_00078240;" (assignment_expression "local_9c = (undefined4 *****)DAT_00078240" identifier = (cast_expression "(undefined4 *****)DAT_00078240" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (expression_statement "*(undefined4 *)(param_1 + 0x5c) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x5c) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x5c)" * (cast_expression "(undefined4 *)(param_1 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar36 = uVar16;" (assignment_expression "uVar36 = uVar16" identifier = identifier) ;) (if_statement "if (iVar26 != 0) {\n    local_a8 = (undefined4 ******)0x0;\n    do {\n      uVar2 = DAT_00078250;\n      if (*(int *)((int)local_9c + 4) != 0) {\n        uVar2 = DAT_0007824e;\n      }\n      local_b4 = *(undefined4 ********)((int)local_9c + 8);\n      uVar32 = (uint)uVar2 * 0x294 + (int)local_b4;\n      pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      if (local_b4 < uVar32) {\n        do {\n          *(undefined4 *******)((int)local_b4 + 0xc) = local_a8;\n          iVar26 = *(int *)((int)local_b4 + 0x78);\n          pcVar24 = pcVar14 + uVar36;\n          if (iVar26 == 0) {\n            iVar15 = 0;\n            iVar26 = 0;\n          }\n          else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }\n          *(int *)((int)local_b4 + 0x10) = iVar15;\n          uVar33 = (int)local_b4 + 0x294;\n          *(int *)((int)local_b4 + 0x14) = iVar26;\n          local_b4 = (undefined4 *******)uVar33;\n        } while (uVar33 < uVar32);\n        pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      }\n      local_9c = pppppuVar17;\n    } while (local_9c != (undefined4 *****)0x0);\n  }" if (parenthesized_expression "(iVar26 != 0)" ( (binary_expression "iVar26 != 0" identifier != number_literal) )) (compound_statement "{\n    local_a8 = (undefined4 ******)0x0;\n    do {\n      uVar2 = DAT_00078250;\n      if (*(int *)((int)local_9c + 4) != 0) {\n        uVar2 = DAT_0007824e;\n      }\n      local_b4 = *(undefined4 ********)((int)local_9c + 8);\n      uVar32 = (uint)uVar2 * 0x294 + (int)local_b4;\n      pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      if (local_b4 < uVar32) {\n        do {\n          *(undefined4 *******)((int)local_b4 + 0xc) = local_a8;\n          iVar26 = *(int *)((int)local_b4 + 0x78);\n          pcVar24 = pcVar14 + uVar36;\n          if (iVar26 == 0) {\n            iVar15 = 0;\n            iVar26 = 0;\n          }\n          else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }\n          *(int *)((int)local_b4 + 0x10) = iVar15;\n          uVar33 = (int)local_b4 + 0x294;\n          *(int *)((int)local_b4 + 0x14) = iVar26;\n          local_b4 = (undefined4 *******)uVar33;\n        } while (uVar33 < uVar32);\n        pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      }\n      local_9c = pppppuVar17;\n    } while (local_9c != (undefined4 *****)0x0);\n  }" { (expression_statement "local_a8 = (undefined4 ******)0x0;" (assignment_expression "local_a8 = (undefined4 ******)0x0" identifier = (cast_expression "(undefined4 ******)0x0" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (do_statement "do {\n      uVar2 = DAT_00078250;\n      if (*(int *)((int)local_9c + 4) != 0) {\n        uVar2 = DAT_0007824e;\n      }\n      local_b4 = *(undefined4 ********)((int)local_9c + 8);\n      uVar32 = (uint)uVar2 * 0x294 + (int)local_b4;\n      pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      if (local_b4 < uVar32) {\n        do {\n          *(undefined4 *******)((int)local_b4 + 0xc) = local_a8;\n          iVar26 = *(int *)((int)local_b4 + 0x78);\n          pcVar24 = pcVar14 + uVar36;\n          if (iVar26 == 0) {\n            iVar15 = 0;\n            iVar26 = 0;\n          }\n          else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }\n          *(int *)((int)local_b4 + 0x10) = iVar15;\n          uVar33 = (int)local_b4 + 0x294;\n          *(int *)((int)local_b4 + 0x14) = iVar26;\n          local_b4 = (undefined4 *******)uVar33;\n        } while (uVar33 < uVar32);\n        pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      }\n      local_9c = pppppuVar17;\n    } while (local_9c != (undefined4 *****)0x0);" do (compound_statement "{\n      uVar2 = DAT_00078250;\n      if (*(int *)((int)local_9c + 4) != 0) {\n        uVar2 = DAT_0007824e;\n      }\n      local_b4 = *(undefined4 ********)((int)local_9c + 8);\n      uVar32 = (uint)uVar2 * 0x294 + (int)local_b4;\n      pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      if (local_b4 < uVar32) {\n        do {\n          *(undefined4 *******)((int)local_b4 + 0xc) = local_a8;\n          iVar26 = *(int *)((int)local_b4 + 0x78);\n          pcVar24 = pcVar14 + uVar36;\n          if (iVar26 == 0) {\n            iVar15 = 0;\n            iVar26 = 0;\n          }\n          else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }\n          *(int *)((int)local_b4 + 0x10) = iVar15;\n          uVar33 = (int)local_b4 + 0x294;\n          *(int *)((int)local_b4 + 0x14) = iVar26;\n          local_b4 = (undefined4 *******)uVar33;\n        } while (uVar33 < uVar32);\n        pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      }\n      local_9c = pppppuVar17;\n    }" { (expression_statement "uVar2 = DAT_00078250;" (assignment_expression "uVar2 = DAT_00078250" identifier = identifier) ;) (if_statement "if (*(int *)((int)local_9c + 4) != 0) {\n        uVar2 = DAT_0007824e;\n      }" if (parenthesized_expression "(*(int *)((int)local_9c + 4) != 0)" ( (binary_expression "*(int *)((int)local_9c + 4) != 0" (pointer_expression "*(int *)((int)local_9c + 4)" * (cast_expression "(int *)((int)local_9c + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c + 4)" ( (binary_expression "(int)local_9c + 4" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n        uVar2 = DAT_0007824e;\n      }" { (expression_statement "uVar2 = DAT_0007824e;" (assignment_expression "uVar2 = DAT_0007824e" identifier = identifier) ;) })) (expression_statement "local_b4 = *(undefined4 ********)((int)local_9c + 8);" (assignment_expression "local_b4 = *(undefined4 ********)((int)local_9c + 8)" identifier = (pointer_expression "*(undefined4 ********)((int)local_9c + 8)" * (cast_expression "(undefined4 ********)((int)local_9c + 8)" ( (type_descriptor "undefined4 ********" type_identifier (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "((int)local_9c + 8)" ( (binary_expression "(int)local_9c + 8" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar32 = (uint)uVar2 * 0x294 + (int)local_b4;" (assignment_expression "uVar32 = (uint)uVar2 * 0x294 + (int)local_b4" identifier = (binary_expression "(uint)uVar2 * 0x294 + (int)local_b4" (binary_expression "(uint)uVar2 * 0x294" (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) + (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);" (assignment_expression "pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4)" identifier = (cast_expression "(undefined4 *****)*(int *)((int)local_9c + 4)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (pointer_expression "*(int *)((int)local_9c + 4)" * (cast_expression "(int *)((int)local_9c + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c + 4)" ( (binary_expression "(int)local_9c + 4" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (if_statement "if (local_b4 < uVar32) {\n        do {\n          *(undefined4 *******)((int)local_b4 + 0xc) = local_a8;\n          iVar26 = *(int *)((int)local_b4 + 0x78);\n          pcVar24 = pcVar14 + uVar36;\n          if (iVar26 == 0) {\n            iVar15 = 0;\n            iVar26 = 0;\n          }\n          else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }\n          *(int *)((int)local_b4 + 0x10) = iVar15;\n          uVar33 = (int)local_b4 + 0x294;\n          *(int *)((int)local_b4 + 0x14) = iVar26;\n          local_b4 = (undefined4 *******)uVar33;\n        } while (uVar33 < uVar32);\n        pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      }" if (parenthesized_expression "(local_b4 < uVar32)" ( (binary_expression "local_b4 < uVar32" identifier < identifier) )) (compound_statement "{\n        do {\n          *(undefined4 *******)((int)local_b4 + 0xc) = local_a8;\n          iVar26 = *(int *)((int)local_b4 + 0x78);\n          pcVar24 = pcVar14 + uVar36;\n          if (iVar26 == 0) {\n            iVar15 = 0;\n            iVar26 = 0;\n          }\n          else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }\n          *(int *)((int)local_b4 + 0x10) = iVar15;\n          uVar33 = (int)local_b4 + 0x294;\n          *(int *)((int)local_b4 + 0x14) = iVar26;\n          local_b4 = (undefined4 *******)uVar33;\n        } while (uVar33 < uVar32);\n        pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      }" { (do_statement "do {\n          *(undefined4 *******)((int)local_b4 + 0xc) = local_a8;\n          iVar26 = *(int *)((int)local_b4 + 0x78);\n          pcVar24 = pcVar14 + uVar36;\n          if (iVar26 == 0) {\n            iVar15 = 0;\n            iVar26 = 0;\n          }\n          else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }\n          *(int *)((int)local_b4 + 0x10) = iVar15;\n          uVar33 = (int)local_b4 + 0x294;\n          *(int *)((int)local_b4 + 0x14) = iVar26;\n          local_b4 = (undefined4 *******)uVar33;\n        } while (uVar33 < uVar32);" do (compound_statement "{\n          *(undefined4 *******)((int)local_b4 + 0xc) = local_a8;\n          iVar26 = *(int *)((int)local_b4 + 0x78);\n          pcVar24 = pcVar14 + uVar36;\n          if (iVar26 == 0) {\n            iVar15 = 0;\n            iVar26 = 0;\n          }\n          else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }\n          *(int *)((int)local_b4 + 0x10) = iVar15;\n          uVar33 = (int)local_b4 + 0x294;\n          *(int *)((int)local_b4 + 0x14) = iVar26;\n          local_b4 = (undefined4 *******)uVar33;\n        }" { (expression_statement "*(undefined4 *******)((int)local_b4 + 0xc) = local_a8;" (assignment_expression "*(undefined4 *******)((int)local_b4 + 0xc) = local_a8" (pointer_expression "*(undefined4 *******)((int)local_b4 + 0xc)" * (cast_expression "(undefined4 *******)((int)local_b4 + 0xc)" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)local_b4 + 0xc)" ( (binary_expression "(int)local_b4 + 0xc" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "iVar26 = *(int *)((int)local_b4 + 0x78);" (assignment_expression "iVar26 = *(int *)((int)local_b4 + 0x78)" identifier = (pointer_expression "*(int *)((int)local_b4 + 0x78)" * (cast_expression "(int *)((int)local_b4 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + 0x78)" ( (binary_expression "(int)local_b4 + 0x78" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pcVar24 = pcVar14 + uVar36;" (assignment_expression "pcVar24 = pcVar14 + uVar36" identifier = (binary_expression "pcVar14 + uVar36" identifier + identifier)) ;) (if_statement "if (iVar26 == 0) {\n            iVar15 = 0;\n            iVar26 = 0;\n          }\n          else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }" if (parenthesized_expression "(iVar26 == 0)" ( (binary_expression "iVar26 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar15 = 0;\n            iVar26 = 0;\n          }" { (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (expression_statement "iVar26 = 0;" (assignment_expression "iVar26 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }" else (compound_statement "{\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }" { (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (do_statement "do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);" do (compound_statement "{\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            }" { (if_statement "if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }" if (parenthesized_expression "(*(int *)(iVar26 + 4) == 0)" ( (binary_expression "*(int *)(iVar26 + 4) == 0" (pointer_expression "*(int *)(iVar26 + 4)" * (cast_expression "(int *)(iVar26 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 4)" ( (binary_expression "iVar26 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }" { (expression_statement "uVar2 = *(ushort *)((int)local_b4 + 0x88);" (assignment_expression "uVar2 = *(ushort *)((int)local_b4 + 0x88)" identifier = (pointer_expression "*(ushort *)((int)local_b4 + 0x88)" * (cast_expression "(ushort *)((int)local_b4 + 0x88)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + 0x88)" ( (binary_expression "(int)local_b4 + 0x88" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }) (else_clause "else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }" else (compound_statement "{\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }" { (expression_statement "uVar2 = *(ushort *)((int)local_b4 + 0x86);" (assignment_expression "uVar2 = *(ushort *)((int)local_b4 + 0x86)" identifier = (pointer_expression "*(ushort *)((int)local_b4 + 0x86)" * (cast_expression "(ushort *)((int)local_b4 + 0x86)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + 0x86)" ( (binary_expression "(int)local_b4 + 0x86" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }))) (expression_statement "uVar36 = (uint)uVar2;" (assignment_expression "uVar36 = (uint)uVar2" identifier = (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }" if (parenthesized_expression "((uint)((int)pcVar1 - (int)pcVar24) < uVar36)" ( (binary_expression "(uint)((int)pcVar1 - (int)pcVar24) < uVar36" (call_expression "(uint)((int)pcVar1 - (int)pcVar24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pcVar1 - (int)pcVar24)" ( (binary_expression "(int)pcVar1 - (int)pcVar24" (cast_expression "(int)pcVar1" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < identifier) )) (compound_statement "{\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }" { (expression_statement "pcVar24 = (char *)FUN_0001ff00(uVar36);" (assignment_expression "pcVar24 = (char *)FUN_0001ff00(uVar36)" identifier = (cast_expression "(char *)FUN_0001ff00(uVar36)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001ff00(uVar36)" identifier (argument_list "(uVar36)" ( identifier ))))) ;) })) (expression_statement "iVar15 = iVar15 + uVar36;" (assignment_expression "iVar15 = iVar15 + uVar36" identifier = (binary_expression "iVar15 + uVar36" identifier + identifier)) ;) (expression_statement "memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);" (call_expression "memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36)" identifier (argument_list "(pcVar24,*(void **)(iVar26 + 8),uVar36)" ( identifier , (pointer_expression "*(void **)(iVar26 + 8)" * (cast_expression "(void **)(iVar26 + 8)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar26 + 8)" ( (binary_expression "iVar26 + 8" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "iVar26 = *(int *)(iVar26 + 4);" (assignment_expression "iVar26 = *(int *)(iVar26 + 4)" identifier = (pointer_expression "*(int *)(iVar26 + 4)" * (cast_expression "(int *)(iVar26 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 4)" ( (binary_expression "iVar26 + 4" identifier + number_literal) ))))) ;) (expression_statement "pcVar24 = pcVar24 + uVar36;" (assignment_expression "pcVar24 = pcVar24 + uVar36" identifier = (binary_expression "pcVar24 + uVar36" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar26 != 0)" ( (binary_expression "iVar26 != 0" identifier != number_literal) )) ;) (expression_statement "local_a8 = (undefined4 ******)((int)local_a8 + iVar15);" (assignment_expression "local_a8 = (undefined4 ******)((int)local_a8 + iVar15)" identifier = (cast_expression "(undefined4 ******)((int)local_a8 + iVar15)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)local_a8 + iVar15)" ( (binary_expression "(int)local_a8 + iVar15" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "iVar26 = iVar15 >> 0x1f;" (assignment_expression "iVar26 = iVar15 >> 0x1f" identifier = (binary_expression "iVar15 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "uVar36 = uVar16 + (int)local_a8;" (assignment_expression "uVar36 = uVar16 + (int)local_a8" identifier = (binary_expression "uVar16 + (int)local_a8" identifier + (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }))) (expression_statement "*(int *)((int)local_b4 + 0x10) = iVar15;" (assignment_expression "*(int *)((int)local_b4 + 0x10) = iVar15" (pointer_expression "*(int *)((int)local_b4 + 0x10)" * (cast_expression "(int *)((int)local_b4 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + 0x10)" ( (binary_expression "(int)local_b4 + 0x10" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "uVar33 = (int)local_b4 + 0x294;" (assignment_expression "uVar33 = (int)local_b4 + 0x294" identifier = (binary_expression "(int)local_b4 + 0x294" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(int *)((int)local_b4 + 0x14) = iVar26;" (assignment_expression "*(int *)((int)local_b4 + 0x14) = iVar26" (pointer_expression "*(int *)((int)local_b4 + 0x14)" * (cast_expression "(int *)((int)local_b4 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + 0x14)" ( (binary_expression "(int)local_b4 + 0x14" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_b4 = (undefined4 *******)uVar33;" (assignment_expression "local_b4 = (undefined4 *******)uVar33" identifier = (cast_expression "(undefined4 *******)uVar33" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) identifier)) ;) }) while (parenthesized_expression "(uVar33 < uVar32)" ( (binary_expression "uVar33 < uVar32" identifier < identifier) )) ;) (expression_statement "pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);" (assignment_expression "pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4)" identifier = (cast_expression "(undefined4 *****)*(int *)((int)local_9c + 4)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (pointer_expression "*(int *)((int)local_9c + 4)" * (cast_expression "(int *)((int)local_9c + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c + 4)" ( (binary_expression "(int)local_9c + 4" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) })) (expression_statement "local_9c = pppppuVar17;" (assignment_expression "local_9c = pppppuVar17" identifier = identifier) ;) }) while (parenthesized_expression "(local_9c != (undefined4 *****)0x0)" ( (binary_expression "local_9c != (undefined4 *****)0x0" identifier != (cast_expression "(undefined4 *****)0x0" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) ;) })) (expression_statement "local_9c = (undefined4 *****)FUN_0001ff70(uVar36,0);" (assignment_expression "local_9c = (undefined4 *****)FUN_0001ff70(uVar36,0)" identifier = (cast_expression "(undefined4 *****)FUN_0001ff70(uVar36,0)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (call_expression "FUN_0001ff70(uVar36,0)" identifier (argument_list "(uVar36,0)" ( identifier , number_literal ))))) ;) (expression_statement "uVar36 = *(uint *)(param_3 + 0x38);" (assignment_expression "uVar36 = *(uint *)(param_3 + 0x38)" identifier = (pointer_expression "*(uint *)(param_3 + 0x38)" * (cast_expression "(uint *)(param_3 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x38)" ( (binary_expression "param_3 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x78) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x78) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x78)" * (cast_expression "(undefined4 *)(param_1 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(param_1 + 0x54) = (int)local_9c - *(int *)(param_1 + 0x58);" (assignment_expression "*(int *)(param_1 + 0x54) = (int)local_9c - *(int *)(param_1 + 0x58)" (pointer_expression "*(int *)(param_1 + 0x54)" * (cast_expression "(int *)(param_1 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) = (binary_expression "(int)local_9c - *(int *)(param_1 + 0x58)" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(param_1 + 0x58)" * (cast_expression "(int *)(param_1 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) )))))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x7c) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x7c) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x7c)" * (cast_expression "(undefined4 *)(param_1 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x80) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x80) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x80)" * (cast_expression "(undefined4 *)(param_1 + 0x80)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x80)" ( (binary_expression "param_1 + 0x80" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 ******)(param_1 + 0x70) = local_9c;" (assignment_expression "*(undefined4 ******)(param_1 + 0x70) = local_9c" (pointer_expression "*(undefined4 ******)(param_1 + 0x70)" * (cast_expression "(undefined4 ******)(param_1 + 0x70)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar24 = pcVar14 + (int)local_9c;" (assignment_expression "pcVar24 = pcVar14 + (int)local_9c" identifier = (binary_expression "pcVar14 + (int)local_9c" identifier + (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x74) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x74) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x74)" * (cast_expression "(undefined4 *)(param_1 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x74)" ( (binary_expression "param_1 + 0x74" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar5 = *(code **)(param_3 + 0x88);" (assignment_expression "pcVar5 = *(code **)(param_3 + 0x88)" identifier = (pointer_expression "*(code **)(param_3 + 0x88)" * (cast_expression "(code **)(param_3 + 0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x88)" ( (binary_expression "param_3 + 0x88" identifier + number_literal) ))))) ;) (expression_statement "uVar16 = *(uint *)(param_3 + 0x34);" (assignment_expression "uVar16 = *(uint *)(param_3 + 0x34)" identifier = (pointer_expression "*(uint *)(param_3 + 0x34)" * (cast_expression "(uint *)(param_3 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x34)" ( (binary_expression "param_3 + 0x34" identifier + number_literal) ))))) ;) (if_statement "if (DAT_00078240 == 0) {\n    uVar13 = 0;\n  }\n  else {\n    local_ac = (undefined4 *****)0x0;\n    ppppppuVar27 = (undefined4 ******)DAT_00078240;\nLAB_000251e2:\n    do {\n      local_98 = ppppppuVar27;\n      uVar32 = *(uint *)((int)local_98 + 8);\n      pcVar19 = pcVar24;\n      if (*(int *)((int)local_98 + 4) == 0) {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);\n        if (local_b4 <= uVar32) {\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);\n        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n        if (local_b4 <= uVar32) goto LAB_000251e2;\n      }\n      do {\n        uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;\n        if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           ) {\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }\n        pcVar24 = pcVar19 + uVar16;\n        uVar33 = uVar32 + 0x294;\n        (*pcVar5)(DAT_00081544,uVar32,pcVar19);\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        pcVar19 = pcVar24;\n        uVar32 = uVar33;\n      } while (uVar33 < local_b4);\n      ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n    } while (*(int *)((int)local_98 + 4) != 0);\n    local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n    uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                          -(uint)(local_9c < *(uint *)(param_1 + 0x70)) - *(int *)(param_1 + 0x74),\n                          *(undefined4 *)(param_3 + 0x34),*(undefined4 *)(param_3 + 0x38));\n  }" if (parenthesized_expression "(DAT_00078240 == 0)" ( (binary_expression "DAT_00078240 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar13 = 0;\n  }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    local_ac = (undefined4 *****)0x0;\n    ppppppuVar27 = (undefined4 ******)DAT_00078240;\nLAB_000251e2:\n    do {\n      local_98 = ppppppuVar27;\n      uVar32 = *(uint *)((int)local_98 + 8);\n      pcVar19 = pcVar24;\n      if (*(int *)((int)local_98 + 4) == 0) {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);\n        if (local_b4 <= uVar32) {\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);\n        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n        if (local_b4 <= uVar32) goto LAB_000251e2;\n      }\n      do {\n        uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;\n        if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           ) {\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }\n        pcVar24 = pcVar19 + uVar16;\n        uVar33 = uVar32 + 0x294;\n        (*pcVar5)(DAT_00081544,uVar32,pcVar19);\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        pcVar19 = pcVar24;\n        uVar32 = uVar33;\n      } while (uVar33 < local_b4);\n      ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n    } while (*(int *)((int)local_98 + 4) != 0);\n    local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n    uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                          -(uint)(local_9c < *(uint *)(param_1 + 0x70)) - *(int *)(param_1 + 0x74),\n                          *(undefined4 *)(param_3 + 0x34),*(undefined4 *)(param_3 + 0x38));\n  }" else (compound_statement "{\n    local_ac = (undefined4 *****)0x0;\n    ppppppuVar27 = (undefined4 ******)DAT_00078240;\nLAB_000251e2:\n    do {\n      local_98 = ppppppuVar27;\n      uVar32 = *(uint *)((int)local_98 + 8);\n      pcVar19 = pcVar24;\n      if (*(int *)((int)local_98 + 4) == 0) {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);\n        if (local_b4 <= uVar32) {\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);\n        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n        if (local_b4 <= uVar32) goto LAB_000251e2;\n      }\n      do {\n        uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;\n        if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           ) {\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }\n        pcVar24 = pcVar19 + uVar16;\n        uVar33 = uVar32 + 0x294;\n        (*pcVar5)(DAT_00081544,uVar32,pcVar19);\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        pcVar19 = pcVar24;\n        uVar32 = uVar33;\n      } while (uVar33 < local_b4);\n      ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n    } while (*(int *)((int)local_98 + 4) != 0);\n    local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n    uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                          -(uint)(local_9c < *(uint *)(param_1 + 0x70)) - *(int *)(param_1 + 0x74),\n                          *(undefined4 *)(param_3 + 0x34),*(undefined4 *)(param_3 + 0x38));\n  }" { (expression_statement "local_ac = (undefined4 *****)0x0;" (assignment_expression "local_ac = (undefined4 *****)0x0" identifier = (cast_expression "(undefined4 *****)0x0" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "ppppppuVar27 = (undefined4 ******)DAT_00078240;" (assignment_expression "ppppppuVar27 = (undefined4 ******)DAT_00078240" identifier = (cast_expression "(undefined4 ******)DAT_00078240" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (labeled_statement "LAB_000251e2:\n    do {\n      local_98 = ppppppuVar27;\n      uVar32 = *(uint *)((int)local_98 + 8);\n      pcVar19 = pcVar24;\n      if (*(int *)((int)local_98 + 4) == 0) {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);\n        if (local_b4 <= uVar32) {\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);\n        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n        if (local_b4 <= uVar32) goto LAB_000251e2;\n      }\n      do {\n        uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;\n        if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           ) {\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }\n        pcVar24 = pcVar19 + uVar16;\n        uVar33 = uVar32 + 0x294;\n        (*pcVar5)(DAT_00081544,uVar32,pcVar19);\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        pcVar19 = pcVar24;\n        uVar32 = uVar33;\n      } while (uVar33 < local_b4);\n      ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n    } while (*(int *)((int)local_98 + 4) != 0);" statement_identifier : (do_statement "do {\n      local_98 = ppppppuVar27;\n      uVar32 = *(uint *)((int)local_98 + 8);\n      pcVar19 = pcVar24;\n      if (*(int *)((int)local_98 + 4) == 0) {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);\n        if (local_b4 <= uVar32) {\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);\n        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n        if (local_b4 <= uVar32) goto LAB_000251e2;\n      }\n      do {\n        uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;\n        if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           ) {\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }\n        pcVar24 = pcVar19 + uVar16;\n        uVar33 = uVar32 + 0x294;\n        (*pcVar5)(DAT_00081544,uVar32,pcVar19);\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        pcVar19 = pcVar24;\n        uVar32 = uVar33;\n      } while (uVar33 < local_b4);\n      ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n    } while (*(int *)((int)local_98 + 4) != 0);" do (compound_statement "{\n      local_98 = ppppppuVar27;\n      uVar32 = *(uint *)((int)local_98 + 8);\n      pcVar19 = pcVar24;\n      if (*(int *)((int)local_98 + 4) == 0) {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);\n        if (local_b4 <= uVar32) {\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);\n        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n        if (local_b4 <= uVar32) goto LAB_000251e2;\n      }\n      do {\n        uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;\n        if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           ) {\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }\n        pcVar24 = pcVar19 + uVar16;\n        uVar33 = uVar32 + 0x294;\n        (*pcVar5)(DAT_00081544,uVar32,pcVar19);\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        pcVar19 = pcVar24;\n        uVar32 = uVar33;\n      } while (uVar33 < local_b4);\n      ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n    }" { (expression_statement "local_98 = ppppppuVar27;" (assignment_expression "local_98 = ppppppuVar27" identifier = identifier) ;) (expression_statement "uVar32 = *(uint *)((int)local_98 + 8);" (assignment_expression "uVar32 = *(uint *)((int)local_98 + 8)" identifier = (pointer_expression "*(uint *)((int)local_98 + 8)" * (cast_expression "(uint *)((int)local_98 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_98 + 8)" ( (binary_expression "(int)local_98 + 8" (cast_expression "(int)local_98" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pcVar19 = pcVar24;" (assignment_expression "pcVar19 = pcVar24" identifier = identifier) ;) (if_statement "if (*(int *)((int)local_98 + 4) == 0) {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);\n        if (local_b4 <= uVar32) {\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);\n        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n        if (local_b4 <= uVar32) goto LAB_000251e2;\n      }" if (parenthesized_expression "(*(int *)((int)local_98 + 4) == 0)" ( (binary_expression "*(int *)((int)local_98 + 4) == 0" (pointer_expression "*(int *)((int)local_98 + 4)" * (cast_expression "(int *)((int)local_98 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_98 + 4)" ( (binary_expression "(int)local_98 + 4" (cast_expression "(int)local_98" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);\n        if (local_b4 <= uVar32) {\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }\n      }" { (expression_statement "local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);" (assignment_expression "local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294)" identifier = (cast_expression "(undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294)" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(uVar32 + (uint)DAT_00078250 * 0x294)" ( (binary_expression "uVar32 + (uint)DAT_00078250 * 0x294" identifier + (binary_expression "(uint)DAT_00078250 * 0x294" (cast_expression "(uint)DAT_00078250" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) ;) (if_statement "if (local_b4 <= uVar32) {\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }" if (parenthesized_expression "(local_b4 <= uVar32)" ( (binary_expression "local_b4 <= uVar32" identifier <= identifier) )) (compound_statement "{\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }" { (expression_statement "local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);" (assignment_expression "local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16)" identifier = (cast_expression "(undefined4 *****)((int)local_9c + (int)local_ac * uVar16)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_9c + (int)local_ac * uVar16)" ( (binary_expression "(int)local_9c + (int)local_ac * uVar16" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)local_ac * uVar16" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) * identifier)) )))) ;) (expression_statement "uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));" (assignment_expression "uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38))" identifier = (call_expression "FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38))" identifier (argument_list "((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38))" ( (binary_expression "(int)local_9c - *(uint *)(param_1 + 0x70)" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(uint *)(param_1 + 0x70)" * (cast_expression "(uint *)(param_1 + 0x70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) ))))) , (binary_expression "-(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74)" (unary_expression "-(uint)(local_9c < *(uint *)(param_1 + 0x70))" - (call_expression "(uint)(local_9c < *(uint *)(param_1 + 0x70))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_9c < *(uint *)(param_1 + 0x70))" ( (binary_expression "local_9c < *(uint *)(param_1 + 0x70)" identifier < (pointer_expression "*(uint *)(param_1 + 0x70)" * (cast_expression "(uint *)(param_1 + 0x70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) ))))) )))) - (pointer_expression "*(int *)(param_1 + 0x74)" * (cast_expression "(int *)(param_1 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x74)" ( (binary_expression "param_1 + 0x74" identifier + number_literal) ))))) , (pointer_expression "*(undefined4 *)(param_3 + 0x34)" * (cast_expression "(undefined4 *)(param_3 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x34)" ( (binary_expression "param_3 + 0x34" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_3 + 0x38)" * (cast_expression "(undefined4 *)(param_3 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x38)" ( (binary_expression "param_3 + 0x38" identifier + number_literal) )))) )))) ;) (goto_statement "goto LAB_000252e8;" goto statement_identifier ;) })) }) (else_clause "else {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);\n        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n        if (local_b4 <= uVar32) goto LAB_000251e2;\n      }" else (compound_statement "{\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);\n        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n        if (local_b4 <= uVar32) goto LAB_000251e2;\n      }" { (expression_statement "local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);" (assignment_expression "local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294)" identifier = (cast_expression "(undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294)" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(uVar32 + (uint)DAT_0007824e * 0x294)" ( (binary_expression "uVar32 + (uint)DAT_0007824e * 0x294" identifier + (binary_expression "(uint)DAT_0007824e * 0x294" (cast_expression "(uint)DAT_0007824e" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) ;) (expression_statement "ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);" (assignment_expression "ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4)" identifier = (cast_expression "(undefined4 ******)*(int *)((int)local_98 + 4)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "*(int *)((int)local_98 + 4)" * (cast_expression "(int *)((int)local_98 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_98 + 4)" ( (binary_expression "(int)local_98 + 4" (cast_expression "(int)local_98" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (if_statement "if (local_b4 <= uVar32) goto LAB_000251e2;" if (parenthesized_expression "(local_b4 <= uVar32)" ( (binary_expression "local_b4 <= uVar32" identifier <= identifier) )) (goto_statement "goto LAB_000251e2;" goto statement_identifier ;)) }))) (do_statement "do {\n        uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;\n        if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           ) {\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }\n        pcVar24 = pcVar19 + uVar16;\n        uVar33 = uVar32 + 0x294;\n        (*pcVar5)(DAT_00081544,uVar32,pcVar19);\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        pcVar19 = pcVar24;\n        uVar32 = uVar33;\n      } while (uVar33 < local_b4);" do (compound_statement "{\n        uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;\n        if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           ) {\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }\n        pcVar24 = pcVar19 + uVar16;\n        uVar33 = uVar32 + 0x294;\n        (*pcVar5)(DAT_00081544,uVar32,pcVar19);\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        pcVar19 = pcVar24;\n        uVar32 = uVar33;\n      }" { (expression_statement "uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;" (assignment_expression "uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f" identifier = (binary_expression "(int)pcVar1 - (int)pcVar19 >> 0x1f" (binary_expression "(int)pcVar1 - (int)pcVar19" (cast_expression "(int)pcVar1" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar19" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (if_statement "if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           ) {\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }" if (parenthesized_expression "(uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           )" ( (binary_expression "uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)" (binary_expression "uVar33 < uVar36" identifier < identifier) || (binary_expression "uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)" (binary_expression "uVar33 - uVar36" identifier - identifier) < (call_expression "(uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)((int)pcVar1 - (int)pcVar19) < uVar16)" ( (binary_expression "(uint)((int)pcVar1 - (int)pcVar19) < uVar16" (call_expression "(uint)((int)pcVar1 - (int)pcVar19)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pcVar1 - (int)pcVar19)" ( (binary_expression "(int)pcVar1 - (int)pcVar19" (cast_expression "(int)pcVar1" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < identifier) ))))) )) (compound_statement "{\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }" { (expression_statement "pcVar19 = (char *)FUN_0001ff00(uVar16);" (assignment_expression "pcVar19 = (char *)FUN_0001ff00(uVar16)" identifier = (cast_expression "(char *)FUN_0001ff00(uVar16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001ff00(uVar16)" identifier (argument_list "(uVar16)" ( identifier ))))) ;) })) (expression_statement "pcVar24 = pcVar19 + uVar16;" (assignment_expression "pcVar24 = pcVar19 + uVar16" identifier = (binary_expression "pcVar19 + uVar16" identifier + identifier)) ;) (expression_statement "uVar33 = uVar32 + 0x294;" (assignment_expression "uVar33 = uVar32 + 0x294" identifier = (binary_expression "uVar32 + 0x294" identifier + number_literal)) ;) (expression_statement "(*pcVar5)(DAT_00081544,uVar32,pcVar19);" (call_expression "(*pcVar5)(DAT_00081544,uVar32,pcVar19)" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(DAT_00081544,uVar32,pcVar19)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_ac = (undefined4 *****)((int)local_ac + 1);" (assignment_expression "local_ac = (undefined4 *****)((int)local_ac + 1)" identifier = (cast_expression "(undefined4 *****)((int)local_ac + 1)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_ac + 1)" ( (binary_expression "(int)local_ac + 1" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pcVar19 = pcVar24;" (assignment_expression "pcVar19 = pcVar24" identifier = identifier) ;) (expression_statement "uVar32 = uVar33;" (assignment_expression "uVar32 = uVar33" identifier = identifier) ;) }) while (parenthesized_expression "(uVar33 < local_b4)" ( (binary_expression "uVar33 < local_b4" identifier < identifier) )) ;) (expression_statement "ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);" (assignment_expression "ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4)" identifier = (cast_expression "(undefined4 ******)*(int *)((int)local_98 + 4)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "*(int *)((int)local_98 + 4)" * (cast_expression "(int *)((int)local_98 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_98 + 4)" ( (binary_expression "(int)local_98 + 4" (cast_expression "(int)local_98" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) }) while (parenthesized_expression "(*(int *)((int)local_98 + 4) != 0)" ( (binary_expression "*(int *)((int)local_98 + 4) != 0" (pointer_expression "*(int *)((int)local_98 + 4)" * (cast_expression "(int *)((int)local_98 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_98 + 4)" ( (binary_expression "(int)local_98 + 4" (cast_expression "(int)local_98" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) ;)) (expression_statement "local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);" (assignment_expression "local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16)" identifier = (cast_expression "(undefined4 *****)((int)local_9c + (int)local_ac * uVar16)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_9c + (int)local_ac * uVar16)" ( (binary_expression "(int)local_9c + (int)local_ac * uVar16" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)local_ac * uVar16" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) * identifier)) )))) ;) (expression_statement "uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                          -(uint)(local_9c < *(uint *)(param_1 + 0x70)) - *(int *)(param_1 + 0x74),\n                          *(undefined4 *)(param_3 + 0x34),*(undefined4 *)(param_3 + 0x38));" (assignment_expression "uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                          -(uint)(local_9c < *(uint *)(param_1 + 0x70)) - *(int *)(param_1 + 0x74),\n                          *(undefined4 *)(param_3 + 0x34),*(undefined4 *)(param_3 + 0x38))" identifier = (call_expression "FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                          -(uint)(local_9c < *(uint *)(param_1 + 0x70)) - *(int *)(param_1 + 0x74),\n                          *(undefined4 *)(param_3 + 0x34),*(undefined4 *)(param_3 + 0x38))" identifier (argument_list "((int)local_9c - *(uint *)(param_1 + 0x70),\n                          -(uint)(local_9c < *(uint *)(param_1 + 0x70)) - *(int *)(param_1 + 0x74),\n                          *(undefined4 *)(param_3 + 0x34),*(undefined4 *)(param_3 + 0x38))" ( (binary_expression "(int)local_9c - *(uint *)(param_1 + 0x70)" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(uint *)(param_1 + 0x70)" * (cast_expression "(uint *)(param_1 + 0x70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) ))))) , (binary_expression "-(uint)(local_9c < *(uint *)(param_1 + 0x70)) - *(int *)(param_1 + 0x74)" (unary_expression "-(uint)(local_9c < *(uint *)(param_1 + 0x70))" - (call_expression "(uint)(local_9c < *(uint *)(param_1 + 0x70))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_9c < *(uint *)(param_1 + 0x70))" ( (binary_expression "local_9c < *(uint *)(param_1 + 0x70)" identifier < (pointer_expression "*(uint *)(param_1 + 0x70)" * (cast_expression "(uint *)(param_1 + 0x70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) ))))) )))) - (pointer_expression "*(int *)(param_1 + 0x74)" * (cast_expression "(int *)(param_1 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x74)" ( (binary_expression "param_1 + 0x74" identifier + number_literal) ))))) , (pointer_expression "*(undefined4 *)(param_3 + 0x34)" * (cast_expression "(undefined4 *)(param_3 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x34)" ( (binary_expression "param_3 + 0x34" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_3 + 0x38)" * (cast_expression "(undefined4 *)(param_3 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x38)" ( (binary_expression "param_3 + 0x38" identifier + number_literal) )))) )))) ;) }))) (labeled_statement "LAB_000252e8:\n  *(undefined4 *)(param_1 + 0x6c) = uVar13;" statement_identifier : (expression_statement "*(undefined4 *)(param_1 + 0x6c) = uVar13;" (assignment_expression "*(undefined4 *)(param_1 + 0x6c) = uVar13" (pointer_expression "*(undefined4 *)(param_1 + 0x6c)" * (cast_expression "(undefined4 *)(param_1 + 0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x6c)" ( (binary_expression "param_1 + 0x6c" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined4 *)(param_1 + 0x60) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x60) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x60)" * (cast_expression "(undefined4 *)(param_1 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar26 = DAT_000816a4;" (assignment_expression "iVar26 = DAT_000816a4" identifier = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 100) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 100) = 0" (pointer_expression "*(undefined4 *)(param_1 + 100)" * (cast_expression "(undefined4 *)(param_1 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x68) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x68) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x68)" * (cast_expression "(undefined4 *)(param_1 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x84) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x84) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x84)" * (cast_expression "(undefined4 *)(param_1 + 0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x84)" ( (binary_expression "param_1 + 0x84" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x88) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" * (cast_expression "(undefined4 *)(param_1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x8c) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x8c) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x8c)" * (cast_expression "(undefined4 *)(param_1 + 0x8c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x8c)" ( (binary_expression "param_1 + 0x8c" identifier + number_literal) )))) = number_literal) ;) (for_statement "for (; iVar26 != 0; iVar26 = FUN_00040c00(iVar26)) {\n    iVar15 = FUN_00041590(iVar26);\n    if (*(int *)(iVar15 + 0x10) != 0) {\n      iVar15 = FUN_0003dc20(iVar26);\n      if (((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n         (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) {\n        iVar15 = FUN_00041590(iVar26);\n        iVar15 = *(int *)(iVar15 + 0x10);\n        *(undefined4 *)(iVar15 + 0x34) = 0;\n        *(undefined4 *)(iVar15 + 0x38) = 0;\n        *(uint *)(iVar15 + 0x3c) = *(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000;\n      }\n      iVar15 = FUN_00041590(iVar26);\n      FUN_0004ed20(iVar26,*(int *)(iVar15 + 0x10) + 0x28);\n    }\n  }" for ( ; (binary_expression "iVar26 != 0" identifier != number_literal) ; (assignment_expression "iVar26 = FUN_00040c00(iVar26)" identifier = (call_expression "FUN_00040c00(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ) (compound_statement "{\n    iVar15 = FUN_00041590(iVar26);\n    if (*(int *)(iVar15 + 0x10) != 0) {\n      iVar15 = FUN_0003dc20(iVar26);\n      if (((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n         (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) {\n        iVar15 = FUN_00041590(iVar26);\n        iVar15 = *(int *)(iVar15 + 0x10);\n        *(undefined4 *)(iVar15 + 0x34) = 0;\n        *(undefined4 *)(iVar15 + 0x38) = 0;\n        *(uint *)(iVar15 + 0x3c) = *(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000;\n      }\n      iVar15 = FUN_00041590(iVar26);\n      FUN_0004ed20(iVar26,*(int *)(iVar15 + 0x10) + 0x28);\n    }\n  }" { (expression_statement "iVar15 = FUN_00041590(iVar26);" (assignment_expression "iVar15 = FUN_00041590(iVar26)" identifier = (call_expression "FUN_00041590(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (if_statement "if (*(int *)(iVar15 + 0x10) != 0) {\n      iVar15 = FUN_0003dc20(iVar26);\n      if (((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n         (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) {\n        iVar15 = FUN_00041590(iVar26);\n        iVar15 = *(int *)(iVar15 + 0x10);\n        *(undefined4 *)(iVar15 + 0x34) = 0;\n        *(undefined4 *)(iVar15 + 0x38) = 0;\n        *(uint *)(iVar15 + 0x3c) = *(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000;\n      }\n      iVar15 = FUN_00041590(iVar26);\n      FUN_0004ed20(iVar26,*(int *)(iVar15 + 0x10) + 0x28);\n    }" if (parenthesized_expression "(*(int *)(iVar15 + 0x10) != 0)" ( (binary_expression "*(int *)(iVar15 + 0x10) != 0" (pointer_expression "*(int *)(iVar15 + 0x10)" * (cast_expression "(int *)(iVar15 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x10)" ( (binary_expression "iVar15 + 0x10" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      iVar15 = FUN_0003dc20(iVar26);\n      if (((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n         (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) {\n        iVar15 = FUN_00041590(iVar26);\n        iVar15 = *(int *)(iVar15 + 0x10);\n        *(undefined4 *)(iVar15 + 0x34) = 0;\n        *(undefined4 *)(iVar15 + 0x38) = 0;\n        *(uint *)(iVar15 + 0x3c) = *(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000;\n      }\n      iVar15 = FUN_00041590(iVar26);\n      FUN_0004ed20(iVar26,*(int *)(iVar15 + 0x10) + 0x28);\n    }" { (expression_statement "iVar15 = FUN_0003dc20(iVar26);" (assignment_expression "iVar15 = FUN_0003dc20(iVar26)" identifier = (call_expression "FUN_0003dc20(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (if_statement "if (((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n         (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) {\n        iVar15 = FUN_00041590(iVar26);\n        iVar15 = *(int *)(iVar15 + 0x10);\n        *(undefined4 *)(iVar15 + 0x34) = 0;\n        *(undefined4 *)(iVar15 + 0x38) = 0;\n        *(uint *)(iVar15 + 0x3c) = *(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000;\n      }" if (parenthesized_expression "(((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n         (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0))" ( (binary_expression "((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n         (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)" (parenthesized_expression "((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0))" ( (binary_expression "(iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)" (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)" ( (comma_expression "iVar15 = FUN_0003dc90(iVar26), iVar15 == 0" (assignment_expression "iVar15 = FUN_0003dc90(iVar26)" identifier = (call_expression "FUN_0003dc90(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) , (binary_expression "iVar15 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)" ( (comma_expression "iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0" (assignment_expression "iVar15 = FUN_0003ddd0(iVar26)" identifier = (call_expression "FUN_0003ddd0(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) , (binary_expression "iVar15 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        iVar15 = FUN_00041590(iVar26);\n        iVar15 = *(int *)(iVar15 + 0x10);\n        *(undefined4 *)(iVar15 + 0x34) = 0;\n        *(undefined4 *)(iVar15 + 0x38) = 0;\n        *(uint *)(iVar15 + 0x3c) = *(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000;\n      }" { (expression_statement "iVar15 = FUN_00041590(iVar26);" (assignment_expression "iVar15 = FUN_00041590(iVar26)" identifier = (call_expression "FUN_00041590(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (expression_statement "iVar15 = *(int *)(iVar15 + 0x10);" (assignment_expression "iVar15 = *(int *)(iVar15 + 0x10)" identifier = (pointer_expression "*(int *)(iVar15 + 0x10)" * (cast_expression "(int *)(iVar15 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x10)" ( (binary_expression "iVar15 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar15 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(iVar15 + 0x34) = 0" (pointer_expression "*(undefined4 *)(iVar15 + 0x34)" * (cast_expression "(undefined4 *)(iVar15 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x34)" ( (binary_expression "iVar15 + 0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar15 + 0x38) = 0;" (assignment_expression "*(undefined4 *)(iVar15 + 0x38) = 0" (pointer_expression "*(undefined4 *)(iVar15 + 0x38)" * (cast_expression "(undefined4 *)(iVar15 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x38)" ( (binary_expression "iVar15 + 0x38" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(iVar15 + 0x3c) = *(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000;" (assignment_expression "*(uint *)(iVar15 + 0x3c) = *(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000" (pointer_expression "*(uint *)(iVar15 + 0x3c)" * (cast_expression "(uint *)(iVar15 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x3c)" ( (binary_expression "iVar15 + 0x3c" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000" (binary_expression "*(uint *)(iVar15 + 0x3c) & 0x800" (pointer_expression "*(uint *)(iVar15 + 0x3c)" * (cast_expression "(uint *)(iVar15 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x3c)" ( (binary_expression "iVar15 + 0x3c" identifier + number_literal) )))) & number_literal) | number_literal)) ;) })) (expression_statement "iVar15 = FUN_00041590(iVar26);" (assignment_expression "iVar15 = FUN_00041590(iVar26)" identifier = (call_expression "FUN_00041590(iVar26)" identifier (argument_list "(iVar26)" ( identifier )))) ;) (expression_statement "FUN_0004ed20(iVar26,*(int *)(iVar15 + 0x10) + 0x28);" (call_expression "FUN_0004ed20(iVar26,*(int *)(iVar15 + 0x10) + 0x28)" identifier (argument_list "(iVar26,*(int *)(iVar15 + 0x10) + 0x28)" ( identifier , (binary_expression "*(int *)(iVar15 + 0x10) + 0x28" (pointer_expression "*(int *)(iVar15 + 0x10)" * (cast_expression "(int *)(iVar15 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x10)" ( (binary_expression "iVar15 + 0x10" identifier + number_literal) )))) + number_literal) ))) ;) })) })) (if_statement "if ((*(int *)(param_3 + 4) - 1U & (uint)local_9c) == 0) {\n    *(undefined2 *)(param_1 + 2) = 0x30b;\n    *param_2 = pcVar14;\n    return (uint)local_9c;\n  }" if (parenthesized_expression "((*(int *)(param_3 + 4) - 1U & (uint)local_9c) == 0)" ( (binary_expression "(*(int *)(param_3 + 4) - 1U & (uint)local_9c) == 0" (parenthesized_expression "(*(int *)(param_3 + 4) - 1U & (uint)local_9c)" ( (binary_expression "*(int *)(param_3 + 4) - 1U & (uint)local_9c" (binary_expression "*(int *)(param_3 + 4) - 1U" (pointer_expression "*(int *)(param_3 + 4)" * (cast_expression "(int *)(param_3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) )))) - number_literal) & (cast_expression "(uint)local_9c" ( (type_descriptor "uint" type_identifier) ) identifier)) )) == number_literal) )) (compound_statement "{\n    *(undefined2 *)(param_1 + 2) = 0x30b;\n    *param_2 = pcVar14;\n    return (uint)local_9c;\n  }" { (expression_statement "*(undefined2 *)(param_1 + 2) = 0x30b;" (assignment_expression "*(undefined2 *)(param_1 + 2) = 0x30b" (pointer_expression "*(undefined2 *)(param_1 + 2)" * (cast_expression "(undefined2 *)(param_1 + 2)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*param_2 = pcVar14;" (assignment_expression "*param_2 = pcVar14" (pointer_expression "*param_2" * identifier) = identifier) ;) (return_statement "return (uint)local_9c;" return (cast_expression "(uint)local_9c" ( (type_descriptor "uint" type_identifier) ) identifier) ;) })) (expression_statement "FUN_00031740("../../gas/ecoff.c",0x129d,"ecoff_build_debug",local_9c);" (call_expression "FUN_00031740("../../gas/ecoff.c",0x129d,"ecoff_build_debug",local_9c)" identifier (argument_list "("../../gas/ecoff.c",0x129d,"ecoff_build_debug",local_9c)" ( (string_literal ""../../gas/ecoff.c"" " string_content ") , number_literal , (string_literal ""ecoff_build_debug"" " string_content ") , identifier ))) ;) (labeled_statement "code_r0x00024a60:\n  local_ac = (undefined4 *****)((int)local_ac + 3);" statement_identifier : (expression_statement "local_ac = (undefined4 *****)((int)local_ac + 3);" (assignment_expression "local_ac = (undefined4 *****)((int)local_ac + 3)" identifier = (cast_expression "(undefined4 *****)((int)local_ac + 3)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_ac + 3)" ( (binary_expression "(int)local_ac + 3" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (expression_statement "pcVar24 = local_38 + 2;" (assignment_expression "pcVar24 = local_38 + 2" identifier = (binary_expression "local_38 + 2" identifier + number_literal)) ;) (expression_statement "local_38[1] = (char)((uint)iVar15 >> 8);" (assignment_expression "local_38[1] = (char)((uint)iVar15 >> 8)" (subscript_expression "local_38[1]" identifier [ number_literal ]) = (cast_expression "(char)((uint)iVar15 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar15 >> 8)" ( (binary_expression "(uint)iVar15 >> 8" (cast_expression "(uint)iVar15" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_38 = local_38 + 3;" (assignment_expression "local_38 = local_38 + 3" identifier = (binary_expression "local_38 + 3" identifier + number_literal)) ;) (expression_statement "*pcVar24 = (char)iVar15;" (assignment_expression "*pcVar24 = (char)iVar15" (pointer_expression "*pcVar24" * identifier) = (cast_expression "(char)iVar15" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (labeled_statement "LAB_000238d0:\n  if (0 < (int)pppppuVar17) {\n    uVar16 = (int)pppppuVar17 - 1;\n    local_ac = (undefined4 *****)((int)local_ac + 1);\n    pppppuVar17 = (undefined4 *****)((uVar16 >> 4) + (int)local_ac);\n    if (pcVar1 <= local_38) goto LAB_00023925;\n    while (pcVar24 = local_38 + 1, pcVar19 = local_38, local_38 = pcVar24, 0xf < uVar16) {\n      while( true ) {\n        uVar16 = uVar16 - 0x10;\n        *pcVar19 = '\x0f';\n        if (pppppuVar17 == local_ac) goto LAB_00023953;\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        if (local_38 < pcVar1) break;\nLAB_00023925:\n        pcVar19 = (char *)FUN_0001ff00(1);\n        local_38 = pcVar19 + 1;\n        if (uVar16 < 0x10) goto LAB_00023944;\n      }\n    }\nLAB_00023944:\n    *pcVar19 = (char)uVar16;\n  }" statement_identifier : (if_statement "if (0 < (int)pppppuVar17) {\n    uVar16 = (int)pppppuVar17 - 1;\n    local_ac = (undefined4 *****)((int)local_ac + 1);\n    pppppuVar17 = (undefined4 *****)((uVar16 >> 4) + (int)local_ac);\n    if (pcVar1 <= local_38) goto LAB_00023925;\n    while (pcVar24 = local_38 + 1, pcVar19 = local_38, local_38 = pcVar24, 0xf < uVar16) {\n      while( true ) {\n        uVar16 = uVar16 - 0x10;\n        *pcVar19 = '\x0f';\n        if (pppppuVar17 == local_ac) goto LAB_00023953;\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        if (local_38 < pcVar1) break;\nLAB_00023925:\n        pcVar19 = (char *)FUN_0001ff00(1);\n        local_38 = pcVar19 + 1;\n        if (uVar16 < 0x10) goto LAB_00023944;\n      }\n    }\nLAB_00023944:\n    *pcVar19 = (char)uVar16;\n  }" if (parenthesized_expression "(0 < (int)pppppuVar17)" ( (binary_expression "0 < (int)pppppuVar17" number_literal < (cast_expression "(int)pppppuVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    uVar16 = (int)pppppuVar17 - 1;\n    local_ac = (undefined4 *****)((int)local_ac + 1);\n    pppppuVar17 = (undefined4 *****)((uVar16 >> 4) + (int)local_ac);\n    if (pcVar1 <= local_38) goto LAB_00023925;\n    while (pcVar24 = local_38 + 1, pcVar19 = local_38, local_38 = pcVar24, 0xf < uVar16) {\n      while( true ) {\n        uVar16 = uVar16 - 0x10;\n        *pcVar19 = '\x0f';\n        if (pppppuVar17 == local_ac) goto LAB_00023953;\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        if (local_38 < pcVar1) break;\nLAB_00023925:\n        pcVar19 = (char *)FUN_0001ff00(1);\n        local_38 = pcVar19 + 1;\n        if (uVar16 < 0x10) goto LAB_00023944;\n      }\n    }\nLAB_00023944:\n    *pcVar19 = (char)uVar16;\n  }" { (expression_statement "uVar16 = (int)pppppuVar17 - 1;" (assignment_expression "uVar16 = (int)pppppuVar17 - 1" identifier = (binary_expression "(int)pppppuVar17 - 1" (cast_expression "(int)pppppuVar17" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal)) ;) (expression_statement "local_ac = (undefined4 *****)((int)local_ac + 1);" (assignment_expression "local_ac = (undefined4 *****)((int)local_ac + 1)" identifier = (cast_expression "(undefined4 *****)((int)local_ac + 1)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_ac + 1)" ( (binary_expression "(int)local_ac + 1" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pppppuVar17 = (undefined4 *****)((uVar16 >> 4) + (int)local_ac);" (assignment_expression "pppppuVar17 = (undefined4 *****)((uVar16 >> 4) + (int)local_ac)" identifier = (cast_expression "(undefined4 *****)((uVar16 >> 4) + (int)local_ac)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((uVar16 >> 4) + (int)local_ac)" ( (binary_expression "(uVar16 >> 4) + (int)local_ac" (parenthesized_expression "(uVar16 >> 4)" ( (binary_expression "uVar16 >> 4" identifier >> number_literal) )) + (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (pcVar1 <= local_38) goto LAB_00023925;" if (parenthesized_expression "(pcVar1 <= local_38)" ( (binary_expression "pcVar1 <= local_38" identifier <= identifier) )) (goto_statement "goto LAB_00023925;" goto statement_identifier ;)) (while_statement "while (pcVar24 = local_38 + 1, pcVar19 = local_38, local_38 = pcVar24, 0xf < uVar16) {\n      while( true ) {\n        uVar16 = uVar16 - 0x10;\n        *pcVar19 = '\x0f';\n        if (pppppuVar17 == local_ac) goto LAB_00023953;\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        if (local_38 < pcVar1) break;\nLAB_00023925:\n        pcVar19 = (char *)FUN_0001ff00(1);\n        local_38 = pcVar19 + 1;\n        if (uVar16 < 0x10) goto LAB_00023944;\n      }\n    }" while (parenthesized_expression "(pcVar24 = local_38 + 1, pcVar19 = local_38, local_38 = pcVar24, 0xf < uVar16)" ( (comma_expression "pcVar24 = local_38 + 1, pcVar19 = local_38, local_38 = pcVar24, 0xf < uVar16" (assignment_expression "pcVar24 = local_38 + 1" identifier = (binary_expression "local_38 + 1" identifier + number_literal)) , (comma_expression "pcVar19 = local_38, local_38 = pcVar24, 0xf < uVar16" (assignment_expression "pcVar19 = local_38" identifier = identifier) , (comma_expression "local_38 = pcVar24, 0xf < uVar16" (assignment_expression "local_38 = pcVar24" identifier = identifier) , (binary_expression "0xf < uVar16" number_literal < identifier)))) )) (compound_statement "{\n      while( true ) {\n        uVar16 = uVar16 - 0x10;\n        *pcVar19 = '\x0f';\n        if (pppppuVar17 == local_ac) goto LAB_00023953;\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        if (local_38 < pcVar1) break;\nLAB_00023925:\n        pcVar19 = (char *)FUN_0001ff00(1);\n        local_38 = pcVar19 + 1;\n        if (uVar16 < 0x10) goto LAB_00023944;\n      }\n    }" { (while_statement "while( true ) {\n        uVar16 = uVar16 - 0x10;\n        *pcVar19 = '\x0f';\n        if (pppppuVar17 == local_ac) goto LAB_00023953;\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        if (local_38 < pcVar1) break;\nLAB_00023925:\n        pcVar19 = (char *)FUN_0001ff00(1);\n        local_38 = pcVar19 + 1;\n        if (uVar16 < 0x10) goto LAB_00023944;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        uVar16 = uVar16 - 0x10;\n        *pcVar19 = '\x0f';\n        if (pppppuVar17 == local_ac) goto LAB_00023953;\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        if (local_38 < pcVar1) break;\nLAB_00023925:\n        pcVar19 = (char *)FUN_0001ff00(1);\n        local_38 = pcVar19 + 1;\n        if (uVar16 < 0x10) goto LAB_00023944;\n      }" { (expression_statement "uVar16 = uVar16 - 0x10;" (assignment_expression "uVar16 = uVar16 - 0x10" identifier = (binary_expression "uVar16 - 0x10" identifier - number_literal)) ;) (expression_statement "*pcVar19 = '\x0f';" (assignment_expression "*pcVar19 = '\x0f'" (pointer_expression "*pcVar19" * identifier) = (char_literal "'\x0f'" ' escape_sequence ')) ;) (if_statement "if (pppppuVar17 == local_ac) goto LAB_00023953;" if (parenthesized_expression "(pppppuVar17 == local_ac)" ( (binary_expression "pppppuVar17 == local_ac" identifier == identifier) )) (goto_statement "goto LAB_00023953;" goto statement_identifier ;)) (expression_statement "local_ac = (undefined4 *****)((int)local_ac + 1);" (assignment_expression "local_ac = (undefined4 *****)((int)local_ac + 1)" identifier = (cast_expression "(undefined4 *****)((int)local_ac + 1)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_ac + 1)" ( (binary_expression "(int)local_ac + 1" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (local_38 < pcVar1) break;" if (parenthesized_expression "(local_38 < pcVar1)" ( (binary_expression "local_38 < pcVar1" identifier < identifier) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00023925:\n        pcVar19 = (char *)FUN_0001ff00(1);" statement_identifier : (expression_statement "pcVar19 = (char *)FUN_0001ff00(1);" (assignment_expression "pcVar19 = (char *)FUN_0001ff00(1)" identifier = (cast_expression "(char *)FUN_0001ff00(1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001ff00(1)" identifier (argument_list "(1)" ( number_literal ))))) ;)) (expression_statement "local_38 = pcVar19 + 1;" (assignment_expression "local_38 = pcVar19 + 1" identifier = (binary_expression "pcVar19 + 1" identifier + number_literal)) ;) (if_statement "if (uVar16 < 0x10) goto LAB_00023944;" if (parenthesized_expression "(uVar16 < 0x10)" ( (binary_expression "uVar16 < 0x10" identifier < number_literal) )) (goto_statement "goto LAB_00023944;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_00023944:\n    *pcVar19 = (char)uVar16;" statement_identifier : (expression_statement "*pcVar19 = (char)uVar16;" (assignment_expression "*pcVar19 = (char)uVar16" (pointer_expression "*pcVar19" * identifier) = (cast_expression "(char)uVar16" ( (type_descriptor "char" primitive_type) ) identifier)) ;)) }))) (labeled_statement "LAB_00023953:\n  pppppppuVar30 = (undefined4 *******)*local_b4;" statement_identifier : (expression_statement "pppppppuVar30 = (undefined4 *******)*local_b4;" (assignment_expression "pppppppuVar30 = (undefined4 *******)*local_b4" identifier = (cast_expression "(undefined4 *******)*local_b4" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*local_b4" * identifier))) ;)) (if_statement "if (pppppppuVar30 == (undefined4 *******)0x0) goto LAB_00023a10;" if (parenthesized_expression "(pppppppuVar30 == (undefined4 *******)0x0)" ( (binary_expression "pppppppuVar30 == (undefined4 *******)0x0" identifier == (cast_expression "(undefined4 *******)0x0" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00023a10;" goto statement_identifier ;)) (expression_statement "local_9c = local_a4;" (assignment_expression "local_9c = local_a4" identifier = identifier) ;) (expression_statement "local_94 = local_b4;" (assignment_expression "local_94 = local_b4" identifier = identifier) ;) (expression_statement "local_98 = local_a8;" (assignment_expression "local_98 = local_a8" identifier = identifier) ;) (labeled_statement "LAB_000237a0:\n  pppppppuVar29 = (undefined4 *******)*pppppppuVar30;" statement_identifier : (expression_statement "pppppppuVar29 = (undefined4 *******)*pppppppuVar30;" (assignment_expression "pppppppuVar29 = (undefined4 *******)*pppppppuVar30" identifier = (cast_expression "(undefined4 *******)*pppppppuVar30" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*pppppppuVar30" * identifier))) ;)) (expression_statement "local_b4 = pppppppuVar30;" (assignment_expression "local_b4 = pppppppuVar30" identifier = identifier) ;) (goto_statement "goto LAB_000237a6;" goto statement_identifier ;) (labeled_statement "LAB_00023a10:\n  if (local_a8 != (undefined4 ******)0x0) {\n    local_a8[0xd] = local_b4[5];\n  }" statement_identifier : (if_statement "if (local_a8 != (undefined4 ******)0x0) {\n    local_a8[0xd] = local_b4[5];\n  }" if (parenthesized_expression "(local_a8 != (undefined4 ******)0x0)" ( (binary_expression "local_a8 != (undefined4 ******)0x0" identifier != (cast_expression "(undefined4 ******)0x0" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n    local_a8[0xd] = local_b4[5];\n  }" { (expression_statement "local_a8[0xd] = local_b4[5];" (assignment_expression "local_a8[0xd] = local_b4[5]" (subscript_expression "local_a8[0xd]" identifier [ number_literal ]) = (subscript_expression "local_b4[5]" identifier [ number_literal ])) ;) }))) (if_statement "if (local_a0 != (undefined4 ******)0x0) {\n    local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n    local_a0[0x15] = (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n    local_a0[9] = local_a4;\n  }" if (parenthesized_expression "(local_a0 != (undefined4 ******)0x0)" ( (binary_expression "local_a0 != (undefined4 ******)0x0" identifier != (cast_expression "(undefined4 ******)0x0" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n    local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n    local_a0[0x15] = (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n    local_a0[9] = local_a4;\n  }" { (expression_statement "local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);" (assignment_expression "local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12])" (subscript_expression "local_a0[0x14]" identifier [ number_literal ]) = (cast_expression "(undefined4 *****)((int)local_ac - (int)local_a0[0x12])" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_ac - (int)local_a0[0x12])" ( (binary_expression "(int)local_ac - (int)local_a0[0x12]" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_a0[0x12]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_a0[0x12]" identifier [ number_literal ]))) )))) ;) (expression_statement "local_a0[0x15] = (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);" (assignment_expression "local_a0[0x15] = (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13])" (subscript_expression "local_a0[0x15]" identifier [ number_literal ]) = (cast_expression "(undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13])" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13])" ( (binary_expression "-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]" (unary_expression "-(uint)(local_ac < local_a0[0x12])" - (call_expression "(uint)(local_ac < local_a0[0x12])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_ac < local_a0[0x12])" ( (binary_expression "local_ac < local_a0[0x12]" identifier < (subscript_expression "local_a0[0x12]" identifier [ number_literal ])) )))) - (cast_expression "(int)local_a0[0x13]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_a0[0x13]" identifier [ number_literal ]))) )))) ;) (expression_statement "local_a0[9] = local_a4;" (assignment_expression "local_a0[9] = local_a4" (subscript_expression "local_a0[9]" identifier [ number_literal ]) = identifier) ;) })) (goto_statement "goto LAB_00023a3f;" goto statement_identifier ;) (labeled_statement "LAB_00024380:\n  iVar26 = *(int *)(local_64 + 4);" statement_identifier : (expression_statement "iVar26 = *(int *)(local_64 + 4);" (assignment_expression "iVar26 = *(int *)(local_64 + 4)" identifier = (pointer_expression "*(int *)(local_64 + 4)" * (cast_expression "(int *)(local_64 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_64 + 4)" ( (binary_expression "local_64 + 4" identifier + number_literal) ))))) ;)) (if_statement "if (*(int *)(local_64 + 4) == 0) goto code_r0x00024393;" if (parenthesized_expression "(*(int *)(local_64 + 4) == 0)" ( (binary_expression "*(int *)(local_64 + 4) == 0" (pointer_expression "*(int *)(local_64 + 4)" * (cast_expression "(int *)(local_64 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_64 + 4)" ( (binary_expression "local_64 + 4" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto code_r0x00024393;" goto statement_identifier ;)) (goto_statement "goto LAB_00023bdc;" goto statement_identifier ;) (labeled_statement "code_r0x00024393:\n  iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);" statement_identifier : (expression_statement "iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);" (assignment_expression "iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18)" identifier = (binary_expression "(int)local_a8 - *(int *)((int)local_9c + 0x18)" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)((int)local_9c + 0x18)" * (cast_expression "(int *)((int)local_9c + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c + 0x18)" ( (binary_expression "(int)local_9c + 0x18" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;)) (expression_statement "local_8c = (int)local_a8;" (assignment_expression "local_8c = (int)local_a8" identifier = (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (labeled_statement "LAB_000243a4:\n  *(int *)((int)local_9c + 0x1c) = iVar26;" statement_identifier : (expression_statement "*(int *)((int)local_9c + 0x1c) = iVar26;" (assignment_expression "*(int *)((int)local_9c + 0x1c) = iVar26" (pointer_expression "*(int *)((int)local_9c + 0x1c)" * (cast_expression "(int *)((int)local_9c + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c + 0x1c)" ( (binary_expression "(int)local_9c + 0x1c" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "local_9c = (undefined4 *****)((int)local_9c + 0x294);" (assignment_expression "local_9c = (undefined4 *****)((int)local_9c + 0x294)" identifier = (cast_expression "(undefined4 *****)((int)local_9c + 0x294)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)local_9c + 0x294)" ( (binary_expression "(int)local_9c + 0x294" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (local_54 <= local_9c) goto code_r0x000243bf;" if (parenthesized_expression "(local_54 <= local_9c)" ( (binary_expression "local_54 <= local_9c" identifier <= identifier) )) (goto_statement "goto code_r0x000243bf;" goto statement_identifier ;)) (goto_statement "goto LAB_00023bb7;" goto statement_identifier ;) (labeled_statement "code_r0x000243bf:\n  iVar26 = *(int *)(local_5c + 4);" statement_identifier : (expression_statement "iVar26 = *(int *)(local_5c + 4);" (assignment_expression "iVar26 = *(int *)(local_5c + 4)" identifier = (pointer_expression "*(int *)(local_5c + 4)" * (cast_expression "(int *)(local_5c + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_5c + 4)" ( (binary_expression "local_5c + 4" identifier + number_literal) ))))) ;)) (if_statement "if (*(int *)(local_5c + 4) == 0) goto code_r0x000243ce;" if (parenthesized_expression "(*(int *)(local_5c + 4) == 0)" ( (binary_expression "*(int *)(local_5c + 4) == 0" (pointer_expression "*(int *)(local_5c + 4)" * (cast_expression "(int *)(local_5c + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_5c + 4)" ( (binary_expression "local_5c + 4" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto code_r0x000243ce;" goto statement_identifier ;)) (goto_statement "goto LAB_00023b80;" goto statement_identifier ;) (labeled_statement "code_r0x000243ce:\n  local_68 = local_68 + local_8c * uVar36;" statement_identifier : (expression_statement "local_68 = local_68 + local_8c * uVar36;" (assignment_expression "local_68 = local_68 + local_8c * uVar36" identifier = (binary_expression "local_68 + local_8c * uVar36" identifier + (binary_expression "local_8c * uVar36" identifier * identifier))) ;)) (expression_statement "uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                        -(uint)(local_68 < *(uint *)(param_1 + 0x34)) - *(int *)(param_1 + 0x38),\n                        *(undefined4 *)(param_3 + 0x24),*(undefined4 *)(param_3 + 0x28));" (assignment_expression "uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                        -(uint)(local_68 < *(uint *)(param_1 + 0x34)) - *(int *)(param_1 + 0x38),\n                        *(undefined4 *)(param_3 + 0x24),*(undefined4 *)(param_3 + 0x28))" identifier = (call_expression "FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                        -(uint)(local_68 < *(uint *)(param_1 + 0x34)) - *(int *)(param_1 + 0x38),\n                        *(undefined4 *)(param_3 + 0x24),*(undefined4 *)(param_3 + 0x28))" identifier (argument_list "(local_68 - *(uint *)(param_1 + 0x34),\n                        -(uint)(local_68 < *(uint *)(param_1 + 0x34)) - *(int *)(param_1 + 0x38),\n                        *(undefined4 *)(param_3 + 0x24),*(undefined4 *)(param_3 + 0x28))" ( (binary_expression "local_68 - *(uint *)(param_1 + 0x34)" identifier - (pointer_expression "*(uint *)(param_1 + 0x34)" * (cast_expression "(uint *)(param_1 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) , (binary_expression "-(uint)(local_68 < *(uint *)(param_1 + 0x34)) - *(int *)(param_1 + 0x38)" (unary_expression "-(uint)(local_68 < *(uint *)(param_1 + 0x34))" - (call_expression "(uint)(local_68 < *(uint *)(param_1 + 0x34))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_68 < *(uint *)(param_1 + 0x34))" ( (binary_expression "local_68 < *(uint *)(param_1 + 0x34)" identifier < (pointer_expression "*(uint *)(param_1 + 0x34)" * (cast_expression "(uint *)(param_1 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) )))) - (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) , (pointer_expression "*(undefined4 *)(param_3 + 0x24)" * (cast_expression "(undefined4 *)(param_3 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x24)" ( (binary_expression "param_3 + 0x24" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_3 + 0x28)" * (cast_expression "(undefined4 *)(param_3 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x28)" ( (binary_expression "param_3 + 0x28" identifier + number_literal) )))) )))) ;) (labeled_statement "LAB_0002441d:\n  puVar20 = (undefined4 *)DAT_00078240;" statement_identifier : (expression_statement "puVar20 = (undefined4 *)DAT_00078240;" (assignment_expression "puVar20 = (undefined4 *)DAT_00078240" identifier = (cast_expression "(undefined4 *)DAT_00078240" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "*(undefined4 *)(param_1 + 0x30) = uVar13;" (assignment_expression "*(undefined4 *)(param_1 + 0x30) = uVar13" (pointer_expression "*(undefined4 *)(param_1 + 0x30)" * (cast_expression "(undefined4 *)(param_1 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar24 = pcVar14 + *(int *)(param_1 + 0x28);" (assignment_expression "pcVar24 = pcVar14 + *(int *)(param_1 + 0x28)" identifier = (binary_expression "pcVar14 + *(int *)(param_1 + 0x28)" identifier + (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))))) ;) (expression_statement "uVar36 = *(uint *)(param_3 + 0x1c);" (assignment_expression "uVar36 = *(uint *)(param_3 + 0x1c)" identifier = (pointer_expression "*(uint *)(param_3 + 0x1c)" * (cast_expression "(uint *)(param_3 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x1c)" ( (binary_expression "param_3 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "uVar16 = *(uint *)(param_3 + 0x20);" (assignment_expression "uVar16 = *(uint *)(param_3 + 0x20)" identifier = (pointer_expression "*(uint *)(param_3 + 0x20)" * (cast_expression "(uint *)(param_3 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x20)" ( (binary_expression "param_3 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "pcVar5 = *(code **)(param_3 + 0x7c);" (assignment_expression "pcVar5 = *(code **)(param_3 + 0x7c)" identifier = (pointer_expression "*(code **)(param_3 + 0x7c)" * (cast_expression "(code **)(param_3 + 0x7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x7c)" ( (binary_expression "param_3 + 0x7c" identifier + number_literal) ))))) ;) (if_statement "if (puVar20 != (undefined4 *)0x0) {\n    sVar9 = 0;\nLAB_00024474:\n    do {\n      local_70 = puVar20;\n      local_a4 = *(undefined4 ******)((int)local_70 + 8);\n      if (*(int *)((int)local_70 + 4) == 0) {\n        local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5);\n        if (local_7c <= local_a4) break;\n      }\n      else {\n        local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);\n        puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }\n      do {\n        bVar41 = true;\n        *(short *)(local_a4 + 0xc) = sVar9;\n        uVar32 = (uint)local_a4[0x28];\n        if (uVar32 != 0) {\nLAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);\n          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);\n        }\n        *(short *)((int)local_a4 + 0x32) = (short)uVar32;\n        local_a4 = local_a4 + 0xa5;\n      } while (local_a4 < local_7c);\n      puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n    } while (*(int *)((int)local_70 + 4) != 0);\n    pppppppuVar29 = (undefined4 *******)DAT_00078240;\n    *(undefined4 *)(param_1 + 0x3c) = 0;\n    *(undefined4 *)(param_1 + 0x40) = 0;\n    *(undefined4 *)(param_1 + 0x44) = 0;\n    *(undefined4 *)(param_1 + 0x50) = 0;\n    *(uint *)(param_1 + 0x4c) = local_68;\n    iVar26 = *(int *)(*(int *)(DAT_00081544 + 4) + 8);\n    bVar41 = iVar26 == 0;\n    pcVar24 = pcVar14 + local_68;\n    if (pppppppuVar29 != (undefined4 *******)0x0) {\n      iVar15 = 0;\nLAB_00024d54:\n      do {\n        local_94 = pppppppuVar29;\n        local_a0 = *(undefined4 *******)((int)local_94 + 8);\n        if (*(int *)((int)local_94 + 4) == 0) {\n          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          *(int *)((int)local_a0 + 0x34) = iVar15;\n          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;\n          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);\n          if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }\n          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;\n          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);\n        } while (local_a0 < local_9c);\n        pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n      } while (*(int *)((int)local_94 + 4) != 0);\n      local_68 = local_68 + iVar15 * 4;\n    }\n    goto LAB_00024eaa;\n  }" if (parenthesized_expression "(puVar20 != (undefined4 *)0x0)" ( (binary_expression "puVar20 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sVar9 = 0;\nLAB_00024474:\n    do {\n      local_70 = puVar20;\n      local_a4 = *(undefined4 ******)((int)local_70 + 8);\n      if (*(int *)((int)local_70 + 4) == 0) {\n        local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5);\n        if (local_7c <= local_a4) break;\n      }\n      else {\n        local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);\n        puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }\n      do {\n        bVar41 = true;\n        *(short *)(local_a4 + 0xc) = sVar9;\n        uVar32 = (uint)local_a4[0x28];\n        if (uVar32 != 0) {\nLAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);\n          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);\n        }\n        *(short *)((int)local_a4 + 0x32) = (short)uVar32;\n        local_a4 = local_a4 + 0xa5;\n      } while (local_a4 < local_7c);\n      puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n    } while (*(int *)((int)local_70 + 4) != 0);\n    pppppppuVar29 = (undefined4 *******)DAT_00078240;\n    *(undefined4 *)(param_1 + 0x3c) = 0;\n    *(undefined4 *)(param_1 + 0x40) = 0;\n    *(undefined4 *)(param_1 + 0x44) = 0;\n    *(undefined4 *)(param_1 + 0x50) = 0;\n    *(uint *)(param_1 + 0x4c) = local_68;\n    iVar26 = *(int *)(*(int *)(DAT_00081544 + 4) + 8);\n    bVar41 = iVar26 == 0;\n    pcVar24 = pcVar14 + local_68;\n    if (pppppppuVar29 != (undefined4 *******)0x0) {\n      iVar15 = 0;\nLAB_00024d54:\n      do {\n        local_94 = pppppppuVar29;\n        local_a0 = *(undefined4 *******)((int)local_94 + 8);\n        if (*(int *)((int)local_94 + 4) == 0) {\n          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          *(int *)((int)local_a0 + 0x34) = iVar15;\n          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;\n          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);\n          if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }\n          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;\n          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);\n        } while (local_a0 < local_9c);\n        pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n      } while (*(int *)((int)local_94 + 4) != 0);\n      local_68 = local_68 + iVar15 * 4;\n    }\n    goto LAB_00024eaa;\n  }" { (expression_statement "sVar9 = 0;" (assignment_expression "sVar9 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00024474:\n    do {\n      local_70 = puVar20;\n      local_a4 = *(undefined4 ******)((int)local_70 + 8);\n      if (*(int *)((int)local_70 + 4) == 0) {\n        local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5);\n        if (local_7c <= local_a4) break;\n      }\n      else {\n        local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);\n        puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }\n      do {\n        bVar41 = true;\n        *(short *)(local_a4 + 0xc) = sVar9;\n        uVar32 = (uint)local_a4[0x28];\n        if (uVar32 != 0) {\nLAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);\n          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);\n        }\n        *(short *)((int)local_a4 + 0x32) = (short)uVar32;\n        local_a4 = local_a4 + 0xa5;\n      } while (local_a4 < local_7c);\n      puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n    } while (*(int *)((int)local_70 + 4) != 0);" statement_identifier : (do_statement "do {\n      local_70 = puVar20;\n      local_a4 = *(undefined4 ******)((int)local_70 + 8);\n      if (*(int *)((int)local_70 + 4) == 0) {\n        local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5);\n        if (local_7c <= local_a4) break;\n      }\n      else {\n        local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);\n        puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }\n      do {\n        bVar41 = true;\n        *(short *)(local_a4 + 0xc) = sVar9;\n        uVar32 = (uint)local_a4[0x28];\n        if (uVar32 != 0) {\nLAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);\n          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);\n        }\n        *(short *)((int)local_a4 + 0x32) = (short)uVar32;\n        local_a4 = local_a4 + 0xa5;\n      } while (local_a4 < local_7c);\n      puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n    } while (*(int *)((int)local_70 + 4) != 0);" do (compound_statement "{\n      local_70 = puVar20;\n      local_a4 = *(undefined4 ******)((int)local_70 + 8);\n      if (*(int *)((int)local_70 + 4) == 0) {\n        local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5);\n        if (local_7c <= local_a4) break;\n      }\n      else {\n        local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);\n        puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }\n      do {\n        bVar41 = true;\n        *(short *)(local_a4 + 0xc) = sVar9;\n        uVar32 = (uint)local_a4[0x28];\n        if (uVar32 != 0) {\nLAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);\n          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);\n        }\n        *(short *)((int)local_a4 + 0x32) = (short)uVar32;\n        local_a4 = local_a4 + 0xa5;\n      } while (local_a4 < local_7c);\n      puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n    }" { (expression_statement "local_70 = puVar20;" (assignment_expression "local_70 = puVar20" identifier = identifier) ;) (expression_statement "local_a4 = *(undefined4 ******)((int)local_70 + 8);" (assignment_expression "local_a4 = *(undefined4 ******)((int)local_70 + 8)" identifier = (pointer_expression "*(undefined4 ******)((int)local_70 + 8)" * (cast_expression "(undefined4 ******)((int)local_70 + 8)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)local_70 + 8)" ( (binary_expression "(int)local_70 + 8" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (*(int *)((int)local_70 + 4) == 0) {\n        local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5);\n        if (local_7c <= local_a4) break;\n      }\n      else {\n        local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);\n        puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }" if (parenthesized_expression "(*(int *)((int)local_70 + 4) == 0)" ( (binary_expression "*(int *)((int)local_70 + 4) == 0" (pointer_expression "*(int *)((int)local_70 + 4)" * (cast_expression "(int *)((int)local_70 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_70 + 4)" ( (binary_expression "(int)local_70 + 4" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n        local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5);\n        if (local_7c <= local_a4) break;\n      }" { (expression_statement "local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5);" (assignment_expression "local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5)" identifier = (cast_expression "(uint *)(local_a4 + (uint)DAT_00078250 * 0xa5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a4 + (uint)DAT_00078250 * 0xa5)" ( (binary_expression "local_a4 + (uint)DAT_00078250 * 0xa5" identifier + (binary_expression "(uint)DAT_00078250 * 0xa5" (cast_expression "(uint)DAT_00078250" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) ;) (if_statement "if (local_7c <= local_a4) break;" if (parenthesized_expression "(local_7c <= local_a4)" ( (binary_expression "local_7c <= local_a4" identifier <= identifier) )) (break_statement "break;" break ;)) }) (else_clause "else {\n        local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);\n        puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }" else (compound_statement "{\n        local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);\n        puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }" { (expression_statement "local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);" (assignment_expression "local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5)" identifier = (cast_expression "(uint *)(local_a4 + (uint)DAT_0007824e * 0xa5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a4 + (uint)DAT_0007824e * 0xa5)" ( (binary_expression "local_a4 + (uint)DAT_0007824e * 0xa5" identifier + (binary_expression "(uint)DAT_0007824e * 0xa5" (cast_expression "(uint)DAT_0007824e" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) ;) (expression_statement "puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);" (assignment_expression "puVar20 = (undefined4 *)*(int *)((int)local_70 + 4)" identifier = (cast_expression "(undefined4 *)*(int *)((int)local_70 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*(int *)((int)local_70 + 4)" * (cast_expression "(int *)((int)local_70 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_70 + 4)" ( (binary_expression "(int)local_70 + 4" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (if_statement "if (local_7c <= local_a4) goto LAB_00024474;" if (parenthesized_expression "(local_7c <= local_a4)" ( (binary_expression "local_7c <= local_a4" identifier <= identifier) )) (goto_statement "goto LAB_00024474;" goto statement_identifier ;)) }))) (do_statement "do {\n        bVar41 = true;\n        *(short *)(local_a4 + 0xc) = sVar9;\n        uVar32 = (uint)local_a4[0x28];\n        if (uVar32 != 0) {\nLAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);\n          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);\n        }\n        *(short *)((int)local_a4 + 0x32) = (short)uVar32;\n        local_a4 = local_a4 + 0xa5;\n      } while (local_a4 < local_7c);" do (compound_statement "{\n        bVar41 = true;\n        *(short *)(local_a4 + 0xc) = sVar9;\n        uVar32 = (uint)local_a4[0x28];\n        if (uVar32 != 0) {\nLAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);\n          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);\n        }\n        *(short *)((int)local_a4 + 0x32) = (short)uVar32;\n        local_a4 = local_a4 + 0xa5;\n      }" { (expression_statement "bVar41 = true;" (assignment_expression "bVar41 = true" identifier = true) ;) (expression_statement "*(short *)(local_a4 + 0xc) = sVar9;" (assignment_expression "*(short *)(local_a4 + 0xc) = sVar9" (pointer_expression "*(short *)(local_a4 + 0xc)" * (cast_expression "(short *)(local_a4 + 0xc)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a4 + 0xc)" ( (binary_expression "local_a4 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar32 = (uint)local_a4[0x28];" (assignment_expression "uVar32 = (uint)local_a4[0x28]" identifier = (cast_expression "(uint)local_a4[0x28]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_a4[0x28]" identifier [ number_literal ]))) ;) (if_statement "if (uVar32 != 0) {\nLAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);\n          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);\n        }" if (parenthesized_expression "(uVar32 != 0)" ( (binary_expression "uVar32 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);\n          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);\n        }" { (labeled_statement "LAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);" statement_identifier : (do_statement "do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);" do (compound_statement "{\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          }" { (expression_statement "local_88 = uVar32;" (assignment_expression "local_88 = uVar32" identifier = identifier) ;) (if_statement "if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }" if (parenthesized_expression "(*(uint *)(local_88 + 4) == 0)" ( (binary_expression "*(uint *)(local_88 + 4) == 0" (pointer_expression "*(uint *)(local_88 + 4)" * (cast_expression "(uint *)(local_88 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + 4)" ( (binary_expression "local_88 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }" { (expression_statement "piVar25 = *(int **)(local_88 + 8);" (assignment_expression "piVar25 = *(int **)(local_88 + 8)" identifier = (pointer_expression "*(int **)(local_88 + 8)" * (cast_expression "(int **)(local_88 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_88 + 8)" ( (binary_expression "local_88 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);" (assignment_expression "local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11)" identifier = (cast_expression "(undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11)" ( (binary_expression "piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11" identifier + (binary_expression "(uint)(ushort)local_a4[0x2c] * 0x11" (cast_expression "(uint)(ushort)local_a4[0x2c]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(ushort)local_a4[0x2c]" ( (type_descriptor "ushort" type_identifier) ) (subscript_expression "local_a4[0x2c]" identifier [ number_literal ]))) * number_literal)) )))) ;) (if_statement "if (local_a0 <= piVar25) break;" if (parenthesized_expression "(local_a0 <= piVar25)" ( (binary_expression "local_a0 <= piVar25" identifier <= identifier) )) (break_statement "break;" break ;)) }) (else_clause "else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }" else (compound_statement "{\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }" { (expression_statement "piVar25 = *(int **)(local_88 + 8);" (assignment_expression "piVar25 = *(int **)(local_88 + 8)" identifier = (pointer_expression "*(int **)(local_88 + 8)" * (cast_expression "(int **)(local_88 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_88 + 8)" ( (binary_expression "local_88 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);" (assignment_expression "local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11)" identifier = (cast_expression "(undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11)" ( (binary_expression "piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11" identifier + (binary_expression "(uint)*(ushort *)((int)local_a4 + 0xae) * 0x11" (binary_expression "(uint)*(ushort *)((int)local_a4 + 0xae)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)((int)local_a4 + 0xae)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a4 + 0xae)" ( (binary_expression "(int)local_a4 + 0xae" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) * number_literal)) )))) ;) (expression_statement "uVar32 = *(uint *)(local_88 + 4);" (assignment_expression "uVar32 = *(uint *)(local_88 + 4)" identifier = (pointer_expression "*(uint *)(local_88 + 4)" * (cast_expression "(uint *)(local_88 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + 4)" ( (binary_expression "local_88 + 4" identifier + number_literal) ))))) ;) (if_statement "if (local_a0 <= piVar25) goto LAB_000244d8;" if (parenthesized_expression "(local_a0 <= piVar25)" ( (binary_expression "local_a0 <= piVar25" identifier <= identifier) )) (goto_statement "goto LAB_000244d8;" goto statement_identifier ;)) }))) (do_statement "do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);" do (compound_statement "{\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            }" { (expression_statement "uVar13 = *(undefined4 *)(*piVar25 + 4);" (assignment_expression "uVar13 = *(undefined4 *)(*piVar25 + 4)" identifier = (pointer_expression "*(undefined4 *)(*piVar25 + 4)" * (cast_expression "(undefined4 *)(*piVar25 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar25 + 4)" ( (binary_expression "*piVar25 + 4" (pointer_expression "*piVar25" * identifier) + number_literal) ))))) ;) (expression_statement "iVar26 = FUN_0003fad0(uVar13);" (assignment_expression "iVar26 = FUN_0003fad0(uVar13)" identifier = (call_expression "FUN_0003fad0(uVar13)" identifier (argument_list "(uVar13)" ( identifier )))) ;) (expression_statement "iVar15 = FUN_0003e1d0(uVar13);" (assignment_expression "iVar15 = FUN_0003e1d0(uVar13)" identifier = (call_expression "FUN_0003e1d0(uVar13)" identifier (argument_list "(uVar13)" ( identifier )))) ;) (expression_statement "uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);" (assignment_expression "uVar32 = iVar26 + *(int *)(iVar15 + 0x1c)" identifier = (binary_expression "iVar26 + *(int *)(iVar15 + 0x1c)" identifier + (pointer_expression "*(int *)(iVar15 + 0x1c)" * (cast_expression "(int *)(iVar15 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x1c)" ( (binary_expression "iVar15 + 0x1c" identifier + number_literal) )))))) ;) (if_statement "if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }" if (parenthesized_expression "(bVar41)" ( identifier )) (compound_statement "{\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }" { (expression_statement "iVar26 = 0;" (assignment_expression "iVar26 = 0" identifier = number_literal) ;) (expression_statement "*local_a4 = (undefined4 ****)uVar32;" (assignment_expression "*local_a4 = (undefined4 ****)uVar32" (pointer_expression "*local_a4" * identifier) = (cast_expression "(undefined4 ****)uVar32" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (expression_statement "local_a4[1] = (undefined4 ****)0x0;" (assignment_expression "local_a4[1] = (undefined4 ****)0x0" (subscript_expression "local_a4[1]" identifier [ number_literal ]) = (cast_expression "(undefined4 ****)0x0" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) }) (else_clause "else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }" else (compound_statement "{\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }" { (expression_statement "iVar26 = uVar32 - (int)*local_a4;" (assignment_expression "iVar26 = uVar32 - (int)*local_a4" identifier = (binary_expression "uVar32 - (int)*local_a4" identifier - (cast_expression "(int)*local_a4" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*local_a4" * identifier)))) ;) (expression_statement "iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];" (assignment_expression "iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1]" identifier = (binary_expression "-(uint)(uVar32 < *local_a4) - (int)local_a4[1]" (unary_expression "-(uint)(uVar32 < *local_a4)" - (call_expression "(uint)(uVar32 < *local_a4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar32 < *local_a4)" ( (binary_expression "uVar32 < *local_a4" identifier < (pointer_expression "*local_a4" * identifier)) )))) - (cast_expression "(int)local_a4[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_a4[1]" identifier [ number_literal ])))) ;) }))) (expression_statement "piVar25[1] = iVar26;" (assignment_expression "piVar25[1] = iVar26" (subscript_expression "piVar25[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar25[2] = iVar15;" (assignment_expression "piVar25[2] = iVar15" (subscript_expression "piVar25[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;" (assignment_expression "uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f" identifier = (binary_expression "(int)pcVar1 - (int)pcVar24 >> 0x1f" (binary_expression "(int)pcVar1 - (int)pcVar24" (cast_expression "(int)pcVar1" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar24" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (if_statement "if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }" if (parenthesized_expression "(uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36))" ( (binary_expression "uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)" (binary_expression "uVar32 < uVar16" identifier < identifier) || (binary_expression "uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)" (binary_expression "uVar32 - uVar16" identifier - identifier) < (call_expression "(uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)((int)pcVar1 - (int)pcVar24) < uVar36)" ( (binary_expression "(uint)((int)pcVar1 - (int)pcVar24) < uVar36" (call_expression "(uint)((int)pcVar1 - (int)pcVar24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pcVar1 - (int)pcVar24)" ( (binary_expression "(int)pcVar1 - (int)pcVar24" (cast_expression "(int)pcVar1" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < identifier) ))))) )) (compound_statement "{\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }" { (expression_statement "pcVar24 = (char *)FUN_0001ff00(uVar36);" (assignment_expression "pcVar24 = (char *)FUN_0001ff00(uVar36)" identifier = (cast_expression "(char *)FUN_0001ff00(uVar36)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001ff00(uVar36)" identifier (argument_list "(uVar36)" ( identifier ))))) ;) })) (expression_statement "piVar3 = piVar25 + 1;" (assignment_expression "piVar3 = piVar25 + 1" identifier = (binary_expression "piVar25 + 1" identifier + number_literal)) ;) (expression_statement "piVar25 = piVar25 + 0x11;" (assignment_expression "piVar25 = piVar25 + 0x11" identifier = (binary_expression "piVar25 + 0x11" identifier + number_literal)) ;) (expression_statement "(*pcVar5)(DAT_00081544,piVar3,pcVar24);" (call_expression "(*pcVar5)(DAT_00081544,piVar3,pcVar24)" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(DAT_00081544,piVar3,pcVar24)" ( identifier , identifier , identifier ))) ;) (expression_statement "pcVar24 = pcVar24 + uVar36;" (assignment_expression "pcVar24 = pcVar24 + uVar36" identifier = (binary_expression "pcVar24 + uVar36" identifier + identifier)) ;) (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" identifier = false) ;) (expression_statement "sVar9 = sVar9 + 1;" (assignment_expression "sVar9 = sVar9 + 1" identifier = (binary_expression "sVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar25 < local_a0)" ( (binary_expression "piVar25 < local_a0" identifier < identifier) )) ;) (expression_statement "uVar32 = *(uint *)(local_88 + 4);" (assignment_expression "uVar32 = *(uint *)(local_88 + 4)" identifier = (pointer_expression "*(uint *)(local_88 + 4)" * (cast_expression "(uint *)(local_88 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + 4)" ( (binary_expression "local_88 + 4" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(*(uint *)(local_88 + 4) != 0)" ( (binary_expression "*(uint *)(local_88 + 4) != 0" (pointer_expression "*(uint *)(local_88 + 4)" * (cast_expression "(uint *)(local_88 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + 4)" ( (binary_expression "local_88 + 4" identifier + number_literal) )))) != number_literal) )) ;)) (expression_statement "uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);" (assignment_expression "uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc])" identifier = (call_expression "(uint)(ushort)(sVar9 - (short)local_a4[0xc])" (call_expression "(uint)(ushort)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ushort)" ( identifier ))) (argument_list "(sVar9 - (short)local_a4[0xc])" ( (binary_expression "sVar9 - (short)local_a4[0xc]" identifier - (cast_expression "(short)local_a4[0xc]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "local_a4[0xc]" identifier [ number_literal ]))) )))) ;) })) (expression_statement "*(short *)((int)local_a4 + 0x32) = (short)uVar32;" (assignment_expression "*(short *)((int)local_a4 + 0x32) = (short)uVar32" (pointer_expression "*(short *)((int)local_a4 + 0x32)" * (cast_expression "(short *)((int)local_a4 + 0x32)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a4 + 0x32)" ( (binary_expression "(int)local_a4 + 0x32" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(short)uVar32" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "local_a4 = local_a4 + 0xa5;" (assignment_expression "local_a4 = local_a4 + 0xa5" identifier = (binary_expression "local_a4 + 0xa5" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_a4 < local_7c)" ( (binary_expression "local_a4 < local_7c" identifier < identifier) )) ;) (expression_statement "puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);" (assignment_expression "puVar20 = (undefined4 *)*(int *)((int)local_70 + 4)" identifier = (cast_expression "(undefined4 *)*(int *)((int)local_70 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*(int *)((int)local_70 + 4)" * (cast_expression "(int *)((int)local_70 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_70 + 4)" ( (binary_expression "(int)local_70 + 4" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) }) while (parenthesized_expression "(*(int *)((int)local_70 + 4) != 0)" ( (binary_expression "*(int *)((int)local_70 + 4) != 0" (pointer_expression "*(int *)((int)local_70 + 4)" * (cast_expression "(int *)((int)local_70 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_70 + 4)" ( (binary_expression "(int)local_70 + 4" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) ;)) (expression_statement "pppppppuVar29 = (undefined4 *******)DAT_00078240;" (assignment_expression "pppppppuVar29 = (undefined4 *******)DAT_00078240" identifier = (cast_expression "(undefined4 *******)DAT_00078240" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) identifier)) ;) (expression_statement "*(undefined4 *)(param_1 + 0x3c) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x3c) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x3c)" * (cast_expression "(undefined4 *)(param_1 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x40) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x40) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x40)" * (cast_expression "(undefined4 *)(param_1 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x44) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x44) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x44)" * (cast_expression "(undefined4 *)(param_1 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x50) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x50) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x50)" * (cast_expression "(undefined4 *)(param_1 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(param_1 + 0x4c) = local_68;" (assignment_expression "*(uint *)(param_1 + 0x4c) = local_68" (pointer_expression "*(uint *)(param_1 + 0x4c)" * (cast_expression "(uint *)(param_1 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar26 = *(int *)(*(int *)(DAT_00081544 + 4) + 8);" (assignment_expression "iVar26 = *(int *)(*(int *)(DAT_00081544 + 4) + 8)" identifier = (pointer_expression "*(int *)(*(int *)(DAT_00081544 + 4) + 8)" * (cast_expression "(int *)(*(int *)(DAT_00081544 + 4) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_00081544 + 4) + 8)" ( (binary_expression "*(int *)(DAT_00081544 + 4) + 8" (pointer_expression "*(int *)(DAT_00081544 + 4)" * (cast_expression "(int *)(DAT_00081544 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00081544 + 4)" ( (binary_expression "DAT_00081544 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "bVar41 = iVar26 == 0;" (assignment_expression "bVar41 = iVar26 == 0" identifier = (binary_expression "iVar26 == 0" identifier == number_literal)) ;) (expression_statement "pcVar24 = pcVar14 + local_68;" (assignment_expression "pcVar24 = pcVar14 + local_68" identifier = (binary_expression "pcVar14 + local_68" identifier + identifier)) ;) (if_statement "if (pppppppuVar29 != (undefined4 *******)0x0) {\n      iVar15 = 0;\nLAB_00024d54:\n      do {\n        local_94 = pppppppuVar29;\n        local_a0 = *(undefined4 *******)((int)local_94 + 8);\n        if (*(int *)((int)local_94 + 4) == 0) {\n          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          *(int *)((int)local_a0 + 0x34) = iVar15;\n          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;\n          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);\n          if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }\n          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;\n          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);\n        } while (local_a0 < local_9c);\n        pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n      } while (*(int *)((int)local_94 + 4) != 0);\n      local_68 = local_68 + iVar15 * 4;\n    }" if (parenthesized_expression "(pppppppuVar29 != (undefined4 *******)0x0)" ( (binary_expression "pppppppuVar29 != (undefined4 *******)0x0" identifier != (cast_expression "(undefined4 *******)0x0" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n      iVar15 = 0;\nLAB_00024d54:\n      do {\n        local_94 = pppppppuVar29;\n        local_a0 = *(undefined4 *******)((int)local_94 + 8);\n        if (*(int *)((int)local_94 + 4) == 0) {\n          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          *(int *)((int)local_a0 + 0x34) = iVar15;\n          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;\n          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);\n          if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }\n          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;\n          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);\n        } while (local_a0 < local_9c);\n        pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n      } while (*(int *)((int)local_94 + 4) != 0);\n      local_68 = local_68 + iVar15 * 4;\n    }" { (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00024d54:\n      do {\n        local_94 = pppppppuVar29;\n        local_a0 = *(undefined4 *******)((int)local_94 + 8);\n        if (*(int *)((int)local_94 + 4) == 0) {\n          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          *(int *)((int)local_a0 + 0x34) = iVar15;\n          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;\n          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);\n          if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }\n          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;\n          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);\n        } while (local_a0 < local_9c);\n        pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n      } while (*(int *)((int)local_94 + 4) != 0);" statement_identifier : (do_statement "do {\n        local_94 = pppppppuVar29;\n        local_a0 = *(undefined4 *******)((int)local_94 + 8);\n        if (*(int *)((int)local_94 + 4) == 0) {\n          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          *(int *)((int)local_a0 + 0x34) = iVar15;\n          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;\n          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);\n          if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }\n          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;\n          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);\n        } while (local_a0 < local_9c);\n        pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n      } while (*(int *)((int)local_94 + 4) != 0);" do (compound_statement "{\n        local_94 = pppppppuVar29;\n        local_a0 = *(undefined4 *******)((int)local_94 + 8);\n        if (*(int *)((int)local_94 + 4) == 0) {\n          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          *(int *)((int)local_a0 + 0x34) = iVar15;\n          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;\n          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);\n          if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }\n          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;\n          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);\n        } while (local_a0 < local_9c);\n        pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n      }" { (expression_statement "local_94 = pppppppuVar29;" (assignment_expression "local_94 = pppppppuVar29" identifier = identifier) ;) (expression_statement "local_a0 = *(undefined4 *******)((int)local_94 + 8);" (assignment_expression "local_a0 = *(undefined4 *******)((int)local_94 + 8)" identifier = (pointer_expression "*(undefined4 *******)((int)local_94 + 8)" * (cast_expression "(undefined4 *******)((int)local_94 + 8)" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)local_94 + 8)" ( (binary_expression "(int)local_94 + 8" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (*(int *)((int)local_94 + 4) == 0) {\n          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }" if (parenthesized_expression "(*(int *)((int)local_94 + 4) == 0)" ( (binary_expression "*(int *)((int)local_94 + 4) == 0" (pointer_expression "*(int *)((int)local_94 + 4)" * (cast_expression "(int *)((int)local_94 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + 4)" ( (binary_expression "(int)local_94 + 4" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);\n          if (local_9c <= local_a0) break;\n        }" { (expression_statement "local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);" (assignment_expression "local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0)" identifier = (cast_expression "(undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((uint)DAT_00078250 * 0x294 + (int)local_a0)" ( (binary_expression "(uint)DAT_00078250 * 0x294 + (int)local_a0" (binary_expression "(uint)DAT_00078250 * 0x294" (cast_expression "(uint)DAT_00078250" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) + (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (local_9c <= local_a0) break;" if (parenthesized_expression "(local_9c <= local_a0)" ( (binary_expression "local_9c <= local_a0" identifier <= identifier) )) (break_statement "break;" break ;)) }) (else_clause "else {\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }" else (compound_statement "{\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }" { (expression_statement "local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);" (assignment_expression "local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0)" identifier = (cast_expression "(undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((uint)DAT_0007824e * 0x294 + (int)local_a0)" ( (binary_expression "(uint)DAT_0007824e * 0x294 + (int)local_a0" (binary_expression "(uint)DAT_0007824e * 0x294" (cast_expression "(uint)DAT_0007824e" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) + (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);" (assignment_expression "pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4)" identifier = (cast_expression "(undefined4 *******)*(int *)((int)local_94 + 4)" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*(int *)((int)local_94 + 4)" * (cast_expression "(int *)((int)local_94 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + 4)" ( (binary_expression "(int)local_94 + 4" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (if_statement "if (local_9c <= local_a0) goto LAB_00024d54;" if (parenthesized_expression "(local_9c <= local_a0)" ( (binary_expression "local_9c <= local_a0" identifier <= identifier) )) (goto_statement "goto LAB_00024d54;" goto statement_identifier ;)) }))) (do_statement "do {\n          *(int *)((int)local_a0 + 0x34) = iVar15;\n          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;\n          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);\n          if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }\n          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;\n          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);\n        } while (local_a0 < local_9c);" do (compound_statement "{\n          *(int *)((int)local_a0 + 0x34) = iVar15;\n          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;\n          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);\n          if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }\n          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;\n          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);\n        }" { (expression_statement "*(int *)((int)local_a0 + 0x34) = iVar15;" (assignment_expression "*(int *)((int)local_a0 + 0x34) = iVar15" (pointer_expression "*(int *)((int)local_a0 + 0x34)" * (cast_expression "(int *)((int)local_a0 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a0 + 0x34)" ( (binary_expression "(int)local_a0 + 0x34" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;" (assignment_expression "*(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7" (pointer_expression "*(byte *)((int)local_a0 + 0x44)" * (cast_expression "(byte *)((int)local_a0 + 0x44)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a0 + 0x44)" ( (binary_expression "(int)local_a0 + 0x44" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7" (binary_expression "*(byte *)((int)local_a0 + 0x44) & 0x7f" (pointer_expression "*(byte *)((int)local_a0 + 0x44)" * (cast_expression "(byte *)((int)local_a0 + 0x44)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a0 + 0x44)" ( (binary_expression "(int)local_a0 + 0x44" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) | (binary_expression "bVar41 << 7" identifier << number_literal))) ;) (expression_statement "ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);" (assignment_expression "ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4)" identifier = (pointer_expression "*(undefined4 *******)((int)local_a0 + 0xb4)" * (cast_expression "(undefined4 *******)((int)local_a0 + 0xb4)" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)local_a0 + 0xb4)" ( (binary_expression "(int)local_a0 + 0xb4" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }" if (parenthesized_expression "(ppppppuVar27 != (undefined4 ******)0x0)" ( (binary_expression "ppppppuVar27 != (undefined4 ******)0x0" identifier != (cast_expression "(undefined4 ******)0x0" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }" { (labeled_statement "LAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);" statement_identifier : (do_statement "do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);" do (compound_statement "{\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            }" { (expression_statement "local_a8 = ppppppuVar27;" (assignment_expression "local_a8 = ppppppuVar27" identifier = identifier) ;) (expression_statement "puVar20 = *(undefined4 **)((int)local_a8 + 8);" (assignment_expression "puVar20 = *(undefined4 **)((int)local_a8 + 8)" identifier = (pointer_expression "*(undefined4 **)((int)local_a8 + 8)" * (cast_expression "(undefined4 **)((int)local_a8 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_a8 + 8)" ( (binary_expression "(int)local_a8 + 8" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }" if (parenthesized_expression "(*(int *)((int)local_a8 + 4) == 0)" ( (binary_expression "*(int *)((int)local_a8 + 4) == 0" (pointer_expression "*(int *)((int)local_a8 + 4)" * (cast_expression "(int *)((int)local_a8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + 4)" ( (binary_expression "(int)local_a8 + 4" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }" { (expression_statement "local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;" (assignment_expression "local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)" identifier = (cast_expression "(undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)" ( (binary_expression "puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2" identifier + (binary_expression "(uint)*(ushort *)((int)local_a0 + 0xc4) * 2" (binary_expression "(uint)*(ushort *)((int)local_a0 + 0xc4)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)((int)local_a0 + 0xc4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a0 + 0xc4)" ( (binary_expression "(int)local_a0 + 0xc4" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) * number_literal)) )))) ;) (if_statement "if (local_ac <= puVar20) break;" if (parenthesized_expression "(local_ac <= puVar20)" ( (binary_expression "local_ac <= puVar20" identifier <= identifier) )) (break_statement "break;" break ;)) }) (else_clause "else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }" else (compound_statement "{\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }" { (expression_statement "local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;" (assignment_expression "local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)" identifier = (cast_expression "(undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)" ( (binary_expression "puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2" identifier + (binary_expression "(uint)*(ushort *)((int)local_a0 + 0xc2) * 2" (binary_expression "(uint)*(ushort *)((int)local_a0 + 0xc2)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)((int)local_a0 + 0xc2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a0 + 0xc2)" ( (binary_expression "(int)local_a0 + 0xc2" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) * number_literal)) )))) ;) (expression_statement "ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);" (assignment_expression "ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4)" identifier = (cast_expression "(undefined4 ******)*(int *)((int)local_a8 + 4)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "*(int *)((int)local_a8 + 4)" * (cast_expression "(int *)((int)local_a8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + 4)" ( (binary_expression "(int)local_a8 + 4" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (if_statement "if (local_ac <= puVar20) goto LAB_00024dd0;" if (parenthesized_expression "(local_ac <= puVar20)" ( (binary_expression "local_ac <= puVar20" identifier <= identifier) )) (goto_statement "goto LAB_00024dd0;" goto statement_identifier ;)) }))) (do_statement "do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);" do (compound_statement "{\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              }" { (if_statement "if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }" if (parenthesized_expression "((uint)((int)pcVar1 - (int)pcVar24) < 4)" ( (binary_expression "(uint)((int)pcVar1 - (int)pcVar24) < 4" (call_expression "(uint)((int)pcVar1 - (int)pcVar24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pcVar1 - (int)pcVar24)" ( (binary_expression "(int)pcVar1 - (int)pcVar24" (cast_expression "(int)pcVar1" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < number_literal) )) (compound_statement "{\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }" { (expression_statement "pcVar24 = (char *)FUN_0001ff00(4);" (assignment_expression "pcVar24 = (char *)FUN_0001ff00(4)" identifier = (cast_expression "(char *)FUN_0001ff00(4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001ff00(4)" identifier (argument_list "(4)" ( number_literal ))))) ;) })) (switch_statement "switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }" switch (parenthesized_expression "(*puVar20)" ( (pointer_expression "*puVar20" * identifier) )) (compound_statement "{\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }" { (case_statement "case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;" case number_literal : (expression_statement "(**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);" (call_expression "(**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24)" (parenthesized_expression "(**(code **)(param_3 + 0x94))" ( (pointer_expression "**(code **)(param_3 + 0x94)" * (pointer_expression "*(code **)(param_3 + 0x94)" * (cast_expression "(code **)(param_3 + 0x94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x94)" ( (binary_expression "param_3 + 0x94" identifier + number_literal) ))))) )) (argument_list "(bVar41,puVar20 + 1,pcVar24)" ( identifier , (binary_expression "puVar20 + 1" identifier + number_literal) , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;" case number_literal : (expression_statement "(**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);" (call_expression "(**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24)" (parenthesized_expression "(**(code **)(param_3 + 0x98))" ( (pointer_expression "**(code **)(param_3 + 0x98)" * (pointer_expression "*(code **)(param_3 + 0x98)" * (cast_expression "(code **)(param_3 + 0x98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x98)" ( (binary_expression "param_3 + 0x98" identifier + number_literal) ))))) )) (argument_list "(bVar41,puVar20 + 1,pcVar24)" ( identifier , (binary_expression "puVar20 + 1" identifier + number_literal) , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:" case number_literal :) (case_statement "case 4:" case number_literal :) (case_statement "case 5:" case number_literal :) (case_statement "case 6:" case number_literal :) (case_statement "case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }" case number_literal : (expression_statement "iVar21 = puVar20[1];" (assignment_expression "iVar21 = puVar20[1]" identifier = (subscript_expression "puVar20[1]" identifier [ number_literal ])) ;) (if_statement "if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }" if (parenthesized_expression "(iVar26 == 0)" ( (binary_expression "iVar26 == 0" identifier == number_literal) )) (compound_statement "{\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }" { (expression_statement "func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);" (call_expression "func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24)" identifier (argument_list "(iVar21,iVar21 >> 0x1f,pcVar24)" ( identifier , (binary_expression "iVar21 >> 0x1f" identifier >> number_literal) , identifier ))) ;) }) (else_clause "else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }" else (compound_statement "{\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }" { (expression_statement "func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);" (call_expression "func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24)" identifier (argument_list "(iVar21,iVar21 >> 0x1f,pcVar24)" ( identifier , (binary_expression "iVar21 >> 0x1f" identifier >> number_literal) , identifier ))) ;) })))) })) (expression_statement "pcVar24 = pcVar24 + 4;" (assignment_expression "pcVar24 = pcVar24 + 4" identifier = (binary_expression "pcVar24 + 4" identifier + number_literal)) ;) (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) (expression_statement "puVar20 = puVar20 + 2;" (assignment_expression "puVar20 = puVar20 + 2" identifier = (binary_expression "puVar20 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar20 < local_ac)" ( (binary_expression "puVar20 < local_ac" identifier < identifier) )) ;) (expression_statement "ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);" (assignment_expression "ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4)" identifier = (cast_expression "(undefined4 ******)*(int *)((int)local_a8 + 4)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "*(int *)((int)local_a8 + 4)" * (cast_expression "(int *)((int)local_a8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + 4)" ( (binary_expression "(int)local_a8 + 4" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) }) while (parenthesized_expression "(*(int *)((int)local_a8 + 4) != 0)" ( (binary_expression "*(int *)((int)local_a8 + 4) != 0" (pointer_expression "*(int *)((int)local_a8 + 4)" * (cast_expression "(int *)((int)local_a8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + 4)" ( (binary_expression "(int)local_a8 + 4" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) ;)) (expression_statement "ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));" (assignment_expression "ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34))" identifier = (cast_expression "(undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34))" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(iVar15 - *(int *)((int)local_a0 + 0x34))" ( (binary_expression "iVar15 - *(int *)((int)local_a0 + 0x34)" identifier - (pointer_expression "*(int *)((int)local_a0 + 0x34)" * (cast_expression "(int *)((int)local_a0 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a0 + 0x34)" ( (binary_expression "(int)local_a0 + 0x34" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )))) ;) })) (expression_statement "*(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;" (assignment_expression "*(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27" (pointer_expression "*(undefined4 *******)((int)local_a0 + 0x38)" * (cast_expression "(undefined4 *******)((int)local_a0 + 0x38)" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)local_a0 + 0x38)" ( (binary_expression "(int)local_a0 + 0x38" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_a0 = (undefined4 ******)((int)local_a0 + 0x294);" (assignment_expression "local_a0 = (undefined4 ******)((int)local_a0 + 0x294)" identifier = (cast_expression "(undefined4 ******)((int)local_a0 + 0x294)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)local_a0 + 0x294)" ( (binary_expression "(int)local_a0 + 0x294" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(local_a0 < local_9c)" ( (binary_expression "local_a0 < local_9c" identifier < identifier) )) ;) (expression_statement "pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);" (assignment_expression "pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4)" identifier = (cast_expression "(undefined4 *******)*(int *)((int)local_94 + 4)" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*(int *)((int)local_94 + 4)" * (cast_expression "(int *)((int)local_94 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + 4)" ( (binary_expression "(int)local_94 + 4" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) }) while (parenthesized_expression "(*(int *)((int)local_94 + 4) != 0)" ( (binary_expression "*(int *)((int)local_94 + 4) != 0" (pointer_expression "*(int *)((int)local_94 + 4)" * (cast_expression "(int *)((int)local_94 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_94 + 4)" ( (binary_expression "(int)local_94 + 4" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) ;)) (expression_statement "local_68 = local_68 + iVar15 * 4;" (assignment_expression "local_68 = local_68 + iVar15 * 4" identifier = (binary_expression "local_68 + iVar15 * 4" identifier + (binary_expression "iVar15 * 4" identifier * number_literal))) ;) })) (goto_statement "goto LAB_00024eaa;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002554e;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (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 * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier short) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 * (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 * (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 * (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 * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (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 (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (for_statement for ( (assignment_expression IDENT = IDENT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , IDENT , LIT ))) ;) })) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , LIT , LIT , LIT , LIT ))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) IDENT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (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) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( IDENT )) || (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) 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 * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * IDENT))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (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 * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))))) == LIT) && (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) == LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (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)) ;)) (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 * (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 * (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 * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) 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)) ;) (labeled_statement statement_identifier : (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 * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (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 * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) - (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 * (abstract_pointer_declarator *)))))) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (char_literal ' escape_sequence ')) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (break_statement break ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (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 = LIT) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) }) (else_clause else (compound_statement { (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 = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }) while (parenthesized_expression ( BOOL )) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT != IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) && IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) && 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 != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) 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 (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )))) - (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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) - (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_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 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) ) (subscript_expression IDENT [ LIT ])) + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )))) ;) (expression_statement (assignment_expression IDENT = 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 (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (labeled_statement 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 * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 IDENT [ LIT ]) = (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) - (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) , (binary_expression (parenthesized_expression ( IDENT )) * IDENT) )))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) , (binary_expression (parenthesized_expression ( IDENT )) * IDENT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < 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 (binary_expression (binary_expression IDENT - IDENT) >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) )) * LIT)) )))) ;) (goto_statement goto statement_identifier ;) })) (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 *)))))) ) 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 *)))))) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_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 IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT) ))) + (binary_expression IDENT * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ))) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT * IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 + IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (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 = (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 (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (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) )))) )))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + (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 IDENT <= IDENT) )) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (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 { (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 * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (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))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (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 IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (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) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_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 * (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 *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (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 *)))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) )))) ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT - IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (subscript_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 ]) = (binary_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 ]) = (binary_expression (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + (subscript_expression IDENT [ LIT ])) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , (subscript_expression IDENT [ LIT ]) ))))) + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) * (char_literal ' escape_sequence ')))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT != LIT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT == LIT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (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 (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> LIT) & LIT) )) != LIT) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> LIT) & LIT) )) != LIT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> LIT) & LIT) )) == LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression (binary_expression IDENT == LIT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT == LIT)) )))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT != LIT)) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) * (char_literal ' escape_sequence ')) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) ))) & LIT) )) + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression (binary_expression IDENT != LIT) || (binary_expression (binary_expression (parenthesized_expression ( IDENT )) - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == IDENT) ))) * LIT) + LIT)) ;) })) })) })) })) })) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) <= (binary_expression (parenthesized_expression ( IDENT )) - IDENT))) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | (binary_expression IDENT & LIT))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT == LIT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT != LIT)) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) ))) )) ))) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> LIT) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) , LIT )))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_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 * (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 *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_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) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_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 * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 *)))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;))) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (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 { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (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 (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) + LIT) & LIT) )) == 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 *)))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )) * LIT))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) , (binary_expression (binary_expression IDENT + (binary_expression IDENT * IDENT)) + IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT - IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) }) (else_clause else (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) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (goto_statement goto statement_identifier ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (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) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }))) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) < 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 * (abstract_pointer_declarator *))))))) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (binary_expression 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 * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) == IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) | (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) )) + LIT) )) * LIT))) ;) })) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 ( IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT)) ;) })) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (binary_expression IDENT + LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (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) ;) (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) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (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) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) * LIT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression 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 *)))))) ) 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 = 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 * (abstract_pointer_declarator *))))))) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (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) + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + (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 *)))))) ) (pointer_expression * (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 < IDENT) )) (compound_statement { (do_statement do (compound_statement { (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 * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) while (parenthesized_expression ( (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 * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (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 (cast_expression ( (type_descriptor TYPE) ) 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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) IDENT)) ;) }) while (parenthesized_expression ( (binary_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 * (abstract_pointer_declarator *)))))) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (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)) )) ;) })) (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 ( 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 (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) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (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 IDENT = (binary_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) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_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 *)))))) ) 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 * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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) + LIT) )))) == 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 * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (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) )))) )))) ;) (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 * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT + (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 * (abstract_pointer_declarator *))))))) ) (pointer_expression * (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 <= IDENT) )) (goto_statement goto statement_identifier ;)) }))) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) < IDENT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_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 * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != LIT) )) ;)) (expression_statement (assignment_expression IDENT = (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) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (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) )))) )))) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression 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) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (for_statement for ( ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT == LIT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (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 (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - LIT) & (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return (cast_expression ( (type_descriptor TYPE) ) IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) (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 *)))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression 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 IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 *)))))) ) (parenthesized_expression ( (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 *)))))) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression LIT < IDENT)))) )) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) }))) (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 * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * 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 * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * IDENT))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) (labeled_statement 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 * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_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 * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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) - (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )))) - (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (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) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_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 (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * IDENT))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (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) )))) )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression 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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (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) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (break_statement break ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (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 <= IDENT) )) (goto_statement goto statement_identifier ;)) }))) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) * LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (break_statement break ;)) }) (else_clause else (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 = (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 + (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 IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) }))) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_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 = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (pointer_expression * IDENT)) )))) - (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) < IDENT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (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 (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression IDENT - (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (subscript_expression IDENT [ LIT ]))) )))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != LIT) )) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) 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) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + 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 * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (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) + LIT) )))) == 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 *)))))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (break_statement break ;)) }) (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 (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + (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 * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * (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 <= IDENT) )) (goto_statement goto statement_identifier ;)) }))) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) | (binary_expression IDENT << LIT))) ;) (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 * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (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) + LIT) )))) == 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 *)))))) ) (parenthesized_expression ( (binary_expression IDENT + (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)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (break_statement break ;)) }) (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 + (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 IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (pointer_expression * (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 <= IDENT) )) (goto_statement goto statement_identifier ;)) }))) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) })) (switch_statement switch (parenthesized_expression ( (pointer_expression * IDENT) )) (compound_statement { (case_statement case 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 , (binary_expression IDENT + LIT) , IDENT ))) ;) (break_statement break ;)) (case_statement case 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 , (binary_expression IDENT + LIT) , IDENT ))) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT >> LIT) , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT >> LIT) , IDENT ))) ;) })))) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_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 * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != LIT) )) ;)) (expression_statement (assignment_expression IDENT = (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 - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) )))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (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) + LIT) )))) = 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 * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }) while (parenthesized_expression ( (binary_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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != LIT) )) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) })) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })))
(function_definition "uint FUN_00023460(int param_1,undefined4 *param_2,int param_3)\n\n{\n  char *pcVar1;\n  ushort uVar2;\n  int *piVar3;\n  undefined4 *****pppppuVar4;\n  code *pcVar5;\n  undefined4 *puVar6;\n  uint *puVar7;\n  undefined1 uVar8;\n  short sVar9;\n  ulonglong uVar10;\n  byte bVar11;\n  int iVar12;\n  undefined4 uVar13;\n  char *pcVar14;\n  int iVar15;\n  uint uVar16;\n  undefined4 *****pppppuVar17;\n  undefined4 *****pppppuVar18;\n  char *pcVar19;\n  undefined4 *puVar20;\n  int iVar21;\n  undefined4 uVar22;\n  undefined4 *puVar23;\n  char *pcVar24;\n  int *piVar25;\n  int iVar26;\n  undefined4 ******ppppppuVar27;\n  char cVar28;\n  undefined4 *******pppppppuVar29;\n  undefined4 *******pppppppuVar30;\n  byte bVar31;\n  uint uVar32;\n  uint uVar33;\n  byte *pbVar34;\n  byte *pbVar35;\n  uint uVar36;\n  char cVar37;\n  uint uVar38;\n  byte *pbVar39;\n  bool bVar40;\n  bool bVar41;\n  bool bVar42;\n  byte bVar43;\n  undefined8 uVar44;\n  longlong lVar45;\n  longlong lVar46;\n  undefined4 *******local_b4;\n  undefined4 *****local_ac;\n  undefined4 ******local_a8;\n  undefined4 *****local_a4;\n  undefined4 ******local_a0;\n  undefined4 *****local_9c;\n  undefined4 ******local_98;\n  undefined4 *******local_94;\n  int local_8c;\n  uint local_88;\n  uint *local_7c;\n  undefined4 *local_70;\n  uint local_68;\n  int local_64;\n  int local_5c;\n  uint local_54;\n  char *local_38;\n  undefined4 *******local_34;\n  undefined4 ******local_30;\n  undefined4 ******local_2c;\n  undefined4 *local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar43 = 0;\n  uStack_14 = 0x23469;\n  uVar36 = *(uint *)(param_3 + 0x1c);\n  iVar26 = *(int *)(param_3 + 0x20);\n  if (DAT_00080ca0 == 0) {\n    FUN_00020ec0();\n  }\n  piVar25 = *(int **)(DAT_000809e4 + 8);\n  uVar13 = DAT_000809ec;\n  while (DAT_000809ec = uVar13, piVar25 != (int *)0x0) {\n    iVar15 = piVar25[1];\n    if (piVar25[4] != 0) {\n      FUN_00020e40();\n      iVar15 = piVar25[1];\n    }\n    piVar3 = (int *)piVar25[3];\n    DAT_00080aa0 = DAT_00080aa0 + 1;\n    *(int *)(iVar15 + 0x14) = piVar25[2];\n    *piVar25 = DAT_00080a94;\n    DAT_00080a94 = (int)piVar25;\n    piVar25 = piVar3;\n    uVar13 = DAT_000809ec;\n  }\n  DAT_00080ad8 = DAT_00080ad8 + 1;\n  iVar15 = DAT_000809e4;\n  *(int *)(DAT_000809e4 + 4) = DAT_00080acc;\n  DAT_00080acc = iVar15;\n  iVar21 = DAT_000809f0;\n  DAT_000809ec = 0;\n  for (iVar15 = DAT_000816a4; iVar15 != 0; iVar15 = FUN_00040c00(iVar15)) {\n    iVar12 = FUN_00041590(iVar15);\n    if (((*(int *)(iVar12 + 0x10) == 0) &&\n        (iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0)) &&\n       (iVar12 = FUN_000414f0(iVar15), (*(byte *)(iVar12 + 0x11) & 1) == 0)) {\n      iVar12 = FUN_00041590(iVar15);\n      DAT_000809f0 = *(int *)(iVar12 + 0xc);\n      uVar22 = FUN_0003fad0(iVar15);\n      FUN_00020930(iVar15,0,0,uVar22,0xfffff);\n    }\n  }\n  uVar8 = false;\n  DAT_000809ec = uVar13;\n  DAT_000809f0 = iVar21;\n  iVar15 = DAT_00080ca0;\njoined_r0x000235e4:\n  if (iVar15 != 0) {\n    piVar25 = *(int **)(iVar15 + 0x6c);\n    iVar21 = iVar15;\n    DAT_000809f0 = iVar15;\n    while (piVar25 != (int *)0x0) {\n      while( true ) {\n        piVar25 = (int *)*piVar25;\n        if (piVar25 == (int *)0x0) {\n          FUN_00020930(0,0,0,0,0);\n          iVar15 = *(int *)(iVar15 + 200);\n          goto joined_r0x000235e4;\n        }\n        *(int **)(iVar21 + 0x6c) = piVar25;\n        if (((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)) break;\n        uVar8 = true;\n        uVar13 = dcgettext(0,"missing .end or .bend at end of file",5);\n        FUN_00031540(uVar13);\n        piVar25 = *(int **)(DAT_000809f0 + 0x6c);\n        iVar21 = DAT_000809f0;\n        if (piVar25 == (int *)0x0) goto LAB_00023650;\n      }\n    }\nLAB_00023650:\n    iVar15 = *(int *)(iVar15 + 200);\n    goto joined_r0x000235e4;\n  }\n  pcVar14 = (char *)xmalloc(0x2000);\n  pppppppuVar29 = DAT_00080c9c;\n  pcVar1 = pcVar14 + 0x2000;\n  bVar41 = DAT_00080758 == 3;\n  *(undefined4 *)(param_1 + 0x10) = 0;\n  *(undefined4 *)(param_1 + 0x14) = 0;\n  *(undefined4 *)(param_1 + 4) = 0;\n  local_38 = pcVar14;\n  local_b4 = pppppppuVar29;\n  if ((bVar41) || (DAT_000809e8 == (int *)0x0)) {\n    if (pppppppuVar29 != (undefined4 *******)0x0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n      goto LAB_00023764;\n    }\n  }\n  else if (pppppppuVar29 != (undefined4 *******)0x0) {\n    uVar44 = FUN_0003fad0(*(undefined4 *)(*DAT_000809e8 + 4));\n    iVar15 = FUN_0003e1d0(*(undefined4 *)(*DAT_000809e8 + 4));\n    if ((int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +\n        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c)) == 0 &&\n        (uint)uVar44 + *(uint *)(iVar15 + 0x1c) == 0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n    }\n    else {\n      local_30 = pppppppuVar29[1];\n      local_24 = 0;\n      local_2c = pppppppuVar29[2];\n      local_20 = 0;\n      local_28 = &DAT_000813a0;\n      local_b4 = &local_34;\n      local_34 = pppppppuVar29;\n    }\nLAB_00023764:\n    local_9c = (undefined4 *****)0x0;\n    local_ac = (undefined4 *****)0x0;\n    local_94 = (undefined4 *******)0x0;\n    local_a0 = (undefined4 ******)0x0;\n    local_98 = (undefined4 ******)0x0;\nLAB_000237a6:\n    pppppppuVar30 = pppppppuVar29;\n    if (pppppppuVar30 == (undefined4 *******)0x0) {\n      pppppuVar17 = (undefined4 *****)0x1;\nLAB_000237e1:\n      ppppppuVar27 = local_b4[1];\n      local_a8 = local_b4[2];\n      local_a4 = (undefined4 *****)((int)local_9c + (int)pppppuVar17);\n      if (ppppppuVar27 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }\n      }\n      else {\n        bVar41 = local_98 != local_a8;\n        if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }\n        pppppuVar18 = (undefined4 *****)0x0;\n        if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }\n        ppppppuVar27[8] = pppppuVar18;\n        ppppppuVar27[0x12] = local_ac;\n        ppppppuVar27[0x13] = (undefined4 *****)0x0;\n        local_a0 = ppppppuVar27;\n        if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }\n      goto LAB_000238d0;\n    }\n    ppppppuVar27 = pppppppuVar30[3];\n    uVar33 = (int)pppppppuVar30[4] + (int)*ppppppuVar27;\n    uVar38 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27);\n    ppppppuVar27 = local_b4[3];\n    uVar16 = (int)local_b4[4] + (int)*ppppppuVar27;\n    uVar32 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)local_b4[4],(uint)*ppppppuVar27);\n    if (uVar32 < uVar38 || uVar32 - uVar38 < (uint)(uVar16 < uVar33)) {\n      pppppuVar17 = (undefined4 *****)\n                    (uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000);\n      goto LAB_000237e1;\n    }\n    goto LAB_000237a0;\n  }\n  local_a4 = (undefined4 *****)0x0;\n  local_ac = (undefined4 *****)0x0;\nLAB_00023a3f:\n  *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n  local_68 = FUN_0001ff70(local_ac,&local_38);\n  *(uint *)(param_1 + 0x28) = local_68;\n  *(uint *)(param_1 + 8) = local_68 - *(uint *)(param_1 + 0x10);\n  uVar16 = DAT_00080ca4;\n  *(uint *)(param_1 + 0xc) =\n       -(uint)(local_68 < *(uint *)(param_1 + 0x10)) - *(int *)(param_1 + 0x14);\n  *(undefined4 *)(param_1 + 0x2c) = 0;\n  *(undefined4 *)(param_1 + 0x18) = 0;\n  *(undefined4 *)(param_1 + 0x1c) = 0;\n  *(undefined4 *)(param_1 + 0x20) = 0;\n  *(uint *)(param_1 + 0x24) = uVar16;\n  uVar32 = (int)pcVar1 - (int)(pcVar14 + local_68) >> 0x1f;\n  uVar33 = (int)((ulonglong)uVar36 * (ulonglong)uVar16 >> 0x20) + iVar26 * uVar16;\n  if (uVar32 < uVar33 ||\n      uVar32 - uVar33 <\n      (uint)((uint)((int)pcVar1 - (int)(pcVar14 + local_68)) <\n            (uint)((ulonglong)uVar36 * (ulonglong)uVar16))) {\n    FUN_0001ff00(uVar16 * uVar36);\n    uVar16 = DAT_00080ca4;\n  }\n  local_68 = uVar16 * uVar36 + local_68;\n  uVar36 = *(uint *)(param_3 + 0x24);\n  local_a0 = (undefined4 ******)(pcVar14 + local_68);\n  *(uint *)(param_1 + 0x34) = local_68;\n  uVar16 = *(uint *)(param_3 + 0x28);\n  *(undefined4 *)(param_1 + 0x38) = 0;\n  pcVar5 = *(code **)(param_3 + 0x80);\n  if (DAT_00078240 != 0) {\n    local_8c = 0;\n    puVar20 = (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0x180);\n    iVar26 = DAT_00078240;\nLAB_00023b80:\n    local_5c = iVar26;\n    local_9c = *(undefined4 ******)(local_5c + 8);\n    if (*(int *)(local_5c + 4) == 0) {\n      local_54 = (uint)DAT_00078250 * 0x294 + (int)local_9c;\n      if (local_54 <= local_9c) {\n        local_68 = local_68 + local_8c * uVar36;\n        uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28));\n        goto LAB_0002441d;\n      }\n    }\n    else {\n      local_54 = (uint)DAT_0007824e * 0x294 + (int)local_9c;\n      iVar26 = *(int *)(local_5c + 4);\n      if (local_54 <= local_9c) goto LAB_00023b80;\n    }\nLAB_00023bb7:\n    *(int *)((int)local_9c + 0x18) = local_8c;\n    iVar26 = *(int *)((int)local_9c + 0x8c);\n    if (iVar26 != 0) {\n      local_a8 = (undefined4 ******)local_8c;\nLAB_00023bdc:\n      local_64 = iVar26;\n      puVar6 = *(undefined4 **)(local_64 + 8);\n      if (*(int *)(local_64 + 4) == 0) {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10;\n        if (local_70 <= puVar6) {\n          local_8c = (int)local_a8;\n          iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n          goto LAB_000243a4;\n        }\n      }\n      else {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10;\n        iVar26 = *(int *)(local_64 + 4);\n        if (local_70 <= puVar6) goto LAB_00023bdc;\n      }\n      uVar32 = puVar6[4];\n      do {\n        if ((undefined4 *****)uVar32 != local_9c) {\n                    \n          FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }\n        iVar26 = puVar6[1];\n        if (iVar26 == 0) {\n          local_b4 = (undefined4 *******)puVar6[6];\n          if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n          piVar25 = (int *)puVar6[8];\n          if (piVar25 == (int *)0x0) goto LAB_0002402d;\nLAB_00024237:\n          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n          goto LAB_00023ff8;\n        }\n        if ((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47) {\n          if ((int *)puVar6[5] == (int *)0x0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }\n          uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n          iVar15 = FUN_0003e1d0(iVar26);\n          iVar21 = FUN_0003e1d0(uVar13);\n          if (iVar15 != iVar21) {\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }\n          lVar45 = FUN_0003fad0(iVar26);\n          lVar46 = FUN_0003fad0(uVar13);\n          *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n        }\n        else {\n          uVar44 = FUN_0003fad0(iVar26);\n          iVar21 = FUN_0003e1d0(iVar26);\n          uVar33 = (uint)uVar44 + puVar6[2];\n          uVar32 = *(uint *)(iVar21 + 0x1c);\n          iVar15 = *(int *)(iVar21 + 0x20);\n          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);\n          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);\n        }\n        bVar11 = FUN_0003dc90(iVar26);\n        *(byte *)(puVar6 + 10) = *(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04';\n        if (((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&\n           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) {\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;\n        }\n        if (((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&\n           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))) {\n          puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);\n          pbVar35 = (byte *)*puVar23;\n          if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }\n          else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }\n          iVar15 = FUN_0003ddd0(iVar26);\n          if (iVar15 == 0) {\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }\n          else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }\nLAB_00023df1:\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;\n          *(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);\n        }\n        iVar15 = FUN_0003dc20(iVar26);\n        if (((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||\n           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)) {\n          iVar15 = FUN_0003dd80(iVar26);\n          if (iVar15 != 0) goto LAB_0002410f;\n          if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }\n          else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }\nLAB_0002402d:\n          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;\n          if (uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }\n          (*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);\n          local_a0 = (undefined4 ******)((int)local_a0 + uVar36);\n          puVar6[9] = local_a8;\n          puVar7 = (uint *)puVar6[5];\n          if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {\n            puVar7[3] = (int)local_a8 - local_8c;\n          }\n          local_a8 = (undefined4 ******)((int)local_a8 + 1);\n          if ((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          FUN_0003dd80(iVar26);\nLAB_0002410f:\n          if (puVar6[6] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (puVar6[8] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          iVar15 = FUN_00041590(iVar26);\n          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }\n        }\n        if (local_70 <= puVar6 + 0x10) goto LAB_00024380;\n        uVar32 = puVar6[0x14];\n        puVar6 = puVar6 + 0x10;\n      } while( true );\n    }\n    goto LAB_000243a4;\n  }\n  *(undefined4 *)(param_1 + 0x30) = 0;\nLAB_0002554e:\n  *(undefined4 *)(param_1 + 0x3c) = 0;\n  *(undefined4 *)(param_1 + 0x40) = 0;\n  *(undefined4 *)(param_1 + 0x44) = 0;\n  *(undefined4 *)(param_1 + 0x50) = 0;\n  *(uint *)(param_1 + 0x4c) = local_68;\nLAB_00024eaa:\n  uVar16 = FUN_0001ff70(local_68,0);\n  *(uint *)(param_1 + 0x48) =\n       uVar16 - *(uint *)(param_1 + 0x4c) >> 2 |\n       (-(uint)(uVar16 < *(uint *)(param_1 + 0x4c)) - *(int *)(param_1 + 0x50)) * 0x40000000;\n  *(uint *)(param_1 + 0x58) = uVar16;\n  iVar26 = DAT_00078240;\n  local_9c = (undefined4 *****)DAT_00078240;\n  *(undefined4 *)(param_1 + 0x5c) = 0;\n  uVar36 = uVar16;\n  if (iVar26 != 0) {\n    local_a8 = (undefined4 ******)0x0;\n    do {\n      uVar2 = DAT_00078250;\n      if (*(int *)((int)local_9c + 4) != 0) {\n        uVar2 = DAT_0007824e;\n      }\n      local_b4 = *(undefined4 ********)((int)local_9c + 8);\n      uVar32 = (uint)uVar2 * 0x294 + (int)local_b4;\n      pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      if (local_b4 < uVar32) {\n        do {\n          *(undefined4 *******)((int)local_b4 + 0xc) = local_a8;\n          iVar26 = *(int *)((int)local_b4 + 0x78);\n          pcVar24 = pcVar14 + uVar36;\n          if (iVar26 == 0) {\n            iVar15 = 0;\n            iVar26 = 0;\n          }\n          else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }\n          *(int *)((int)local_b4 + 0x10) = iVar15;\n          uVar33 = (int)local_b4 + 0x294;\n          *(int *)((int)local_b4 + 0x14) = iVar26;\n          local_b4 = (undefined4 *******)uVar33;\n        } while (uVar33 < uVar32);\n        pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      }\n      local_9c = pppppuVar17;\n    } while (local_9c != (undefined4 *****)0x0);\n  }\n  local_9c = (undefined4 *****)FUN_0001ff70(uVar36,0);\n  uVar36 = *(uint *)(param_3 + 0x38);\n  *(undefined4 *)(param_1 + 0x78) = 0;\n  *(int *)(param_1 + 0x54) = (int)local_9c - *(int *)(param_1 + 0x58);\n  *(undefined4 *)(param_1 + 0x7c) = 0;\n  *(undefined4 *)(param_1 + 0x80) = 0;\n  *(undefined4 ******)(param_1 + 0x70) = local_9c;\n  pcVar24 = pcVar14 + (int)local_9c;\n  *(undefined4 *)(param_1 + 0x74) = 0;\n  pcVar5 = *(code **)(param_3 + 0x88);\n  uVar16 = *(uint *)(param_3 + 0x34);\n  if (DAT_00078240 == 0) {\n    uVar13 = 0;\n  }\n  else {\n    local_ac = (undefined4 *****)0x0;\n    ppppppuVar27 = (undefined4 ******)DAT_00078240;\nLAB_000251e2:\n    do {\n      local_98 = ppppppuVar27;\n      uVar32 = *(uint *)((int)local_98 + 8);\n      pcVar19 = pcVar24;\n      if (*(int *)((int)local_98 + 4) == 0) {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);\n        if (local_b4 <= uVar32) {\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);\n        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n        if (local_b4 <= uVar32) goto LAB_000251e2;\n      }\n      do {\n        uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;\n        if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           ) {\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }\n        pcVar24 = pcVar19 + uVar16;\n        uVar33 = uVar32 + 0x294;\n        (*pcVar5)(DAT_00081544,uVar32,pcVar19);\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        pcVar19 = pcVar24;\n        uVar32 = uVar33;\n      } while (uVar33 < local_b4);\n      ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n    } while (*(int *)((int)local_98 + 4) != 0);\n    local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n    uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                          -(uint)(local_9c < *(uint *)(param_1 + 0x70)) - *(int *)(param_1 + 0x74),\n                          *(undefined4 *)(param_3 + 0x34),*(undefined4 *)(param_3 + 0x38));\n  }\nLAB_000252e8:\n  *(undefined4 *)(param_1 + 0x6c) = uVar13;\n  *(undefined4 *)(param_1 + 0x60) = 0;\n  iVar26 = DAT_000816a4;\n  *(undefined4 *)(param_1 + 100) = 0;\n  *(undefined4 *)(param_1 + 0x68) = 0;\n  *(undefined4 *)(param_1 + 0x84) = 0;\n  *(undefined4 *)(param_1 + 0x88) = 0;\n  *(undefined4 *)(param_1 + 0x8c) = 0;\n  for (; iVar26 != 0; iVar26 = FUN_00040c00(iVar26)) {\n    iVar15 = FUN_00041590(iVar26);\n    if (*(int *)(iVar15 + 0x10) != 0) {\n      iVar15 = FUN_0003dc20(iVar26);\n      if (((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n         (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) {\n        iVar15 = FUN_00041590(iVar26);\n        iVar15 = *(int *)(iVar15 + 0x10);\n        *(undefined4 *)(iVar15 + 0x34) = 0;\n        *(undefined4 *)(iVar15 + 0x38) = 0;\n        *(uint *)(iVar15 + 0x3c) = *(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000;\n      }\n      iVar15 = FUN_00041590(iVar26);\n      FUN_0004ed20(iVar26,*(int *)(iVar15 + 0x10) + 0x28);\n    }\n  }\n  if ((*(int *)(param_3 + 4) - 1U & (uint)local_9c) == 0) {\n    *(undefined2 *)(param_1 + 2) = 0x30b;\n    *param_2 = pcVar14;\n    return (uint)local_9c;\n  }\n                    \n  FUN_00031740("../../gas/ecoff.c",0x129d,"ecoff_build_debug",local_9c);\ncode_r0x00024a60:\n  local_ac = (undefined4 *****)((int)local_ac + 3);\n  pcVar24 = local_38 + 2;\n  local_38[1] = (char)((uint)iVar15 >> 8);\n  local_38 = local_38 + 3;\n  *pcVar24 = (char)iVar15;\nLAB_000238d0:\n  if (0 < (int)pppppuVar17) {\n    uVar16 = (int)pppppuVar17 - 1;\n    local_ac = (undefined4 *****)((int)local_ac + 1);\n    pppppuVar17 = (undefined4 *****)((uVar16 >> 4) + (int)local_ac);\n    if (pcVar1 <= local_38) goto LAB_00023925;\n    while (pcVar24 = local_38 + 1, pcVar19 = local_38, local_38 = pcVar24, 0xf < uVar16) {\n      while( true ) {\n        uVar16 = uVar16 - 0x10;\n        *pcVar19 = '\x0f';\n        if (pppppuVar17 == local_ac) goto LAB_00023953;\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        if (local_38 < pcVar1) break;\nLAB_00023925:\n        pcVar19 = (char *)FUN_0001ff00(1);\n        local_38 = pcVar19 + 1;\n        if (uVar16 < 0x10) goto LAB_00023944;\n      }\n    }\nLAB_00023944:\n    *pcVar19 = (char)uVar16;\n  }\nLAB_00023953:\n  pppppppuVar30 = (undefined4 *******)*local_b4;\n  if (pppppppuVar30 == (undefined4 *******)0x0) goto LAB_00023a10;\n  local_9c = local_a4;\n  local_94 = local_b4;\n  local_98 = local_a8;\nLAB_000237a0:\n  pppppppuVar29 = (undefined4 *******)*pppppppuVar30;\n  local_b4 = pppppppuVar30;\n  goto LAB_000237a6;\nLAB_00023a10:\n  if (local_a8 != (undefined4 ******)0x0) {\n    local_a8[0xd] = local_b4[5];\n  }\n  if (local_a0 != (undefined4 ******)0x0) {\n    local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n    local_a0[0x15] = (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n    local_a0[9] = local_a4;\n  }\n  goto LAB_00023a3f;\nLAB_00024380:\n  iVar26 = *(int *)(local_64 + 4);\n  if (*(int *)(local_64 + 4) == 0) goto code_r0x00024393;\n  goto LAB_00023bdc;\ncode_r0x00024393:\n  iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n  local_8c = (int)local_a8;\nLAB_000243a4:\n  *(int *)((int)local_9c + 0x1c) = iVar26;\n  local_9c = (undefined4 *****)((int)local_9c + 0x294);\n  if (local_54 <= local_9c) goto code_r0x000243bf;\n  goto LAB_00023bb7;\ncode_r0x000243bf:\n  iVar26 = *(int *)(local_5c + 4);\n  if (*(int *)(local_5c + 4) == 0) goto code_r0x000243ce;\n  goto LAB_00023b80;\ncode_r0x000243ce:\n  local_68 = local_68 + local_8c * uVar36;\n  uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                        -(uint)(local_68 < *(uint *)(param_1 + 0x34)) - *(int *)(param_1 + 0x38),\n                        *(undefined4 *)(param_3 + 0x24),*(undefined4 *)(param_3 + 0x28));\nLAB_0002441d:\n  puVar20 = (undefined4 *)DAT_00078240;\n  *(undefined4 *)(param_1 + 0x30) = uVar13;\n  pcVar24 = pcVar14 + *(int *)(param_1 + 0x28);\n  uVar36 = *(uint *)(param_3 + 0x1c);\n  uVar16 = *(uint *)(param_3 + 0x20);\n  pcVar5 = *(code **)(param_3 + 0x7c);\n  if (puVar20 != (undefined4 *)0x0) {\n    sVar9 = 0;\nLAB_00024474:\n    do {\n      local_70 = puVar20;\n      local_a4 = *(undefined4 ******)((int)local_70 + 8);\n      if (*(int *)((int)local_70 + 4) == 0) {\n        local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5);\n        if (local_7c <= local_a4) break;\n      }\n      else {\n        local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);\n        puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }\n      do {\n        bVar41 = true;\n        *(short *)(local_a4 + 0xc) = sVar9;\n        uVar32 = (uint)local_a4[0x28];\n        if (uVar32 != 0) {\nLAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);\n          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);\n        }\n        *(short *)((int)local_a4 + 0x32) = (short)uVar32;\n        local_a4 = local_a4 + 0xa5;\n      } while (local_a4 < local_7c);\n      puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n    } while (*(int *)((int)local_70 + 4) != 0);\n    pppppppuVar29 = (undefined4 *******)DAT_00078240;\n    *(undefined4 *)(param_1 + 0x3c) = 0;\n    *(undefined4 *)(param_1 + 0x40) = 0;\n    *(undefined4 *)(param_1 + 0x44) = 0;\n    *(undefined4 *)(param_1 + 0x50) = 0;\n    *(uint *)(param_1 + 0x4c) = local_68;\n    iVar26 = *(int *)(*(int *)(DAT_00081544 + 4) + 8);\n    bVar41 = iVar26 == 0;\n    pcVar24 = pcVar14 + local_68;\n    if (pppppppuVar29 != (undefined4 *******)0x0) {\n      iVar15 = 0;\nLAB_00024d54:\n      do {\n        local_94 = pppppppuVar29;\n        local_a0 = *(undefined4 *******)((int)local_94 + 8);\n        if (*(int *)((int)local_94 + 4) == 0) {\n          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          *(int *)((int)local_a0 + 0x34) = iVar15;\n          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;\n          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);\n          if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }\n          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;\n          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);\n        } while (local_a0 < local_9c);\n        pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n      } while (*(int *)((int)local_94 + 4) != 0);\n      local_68 = local_68 + iVar15 * 4;\n    }\n    goto LAB_00024eaa;\n  }\n  goto LAB_0002554e;\n}" (type_identifier "uint") (function_declarator "FUN_00023460(int param_1,undefined4 *param_2,int param_3)" (identifier "FUN_00023460") (parameter_list "(int param_1,undefined4 *param_2,int param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 *param_2" (type_identifier "undefined4") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) () ")"))) (compound_statement "{\n  char *pcVar1;\n  ushort uVar2;\n  int *piVar3;\n  undefined4 *****pppppuVar4;\n  code *pcVar5;\n  undefined4 *puVar6;\n  uint *puVar7;\n  undefined1 uVar8;\n  short sVar9;\n  ulonglong uVar10;\n  byte bVar11;\n  int iVar12;\n  undefined4 uVar13;\n  char *pcVar14;\n  int iVar15;\n  uint uVar16;\n  undefined4 *****pppppuVar17;\n  undefined4 *****pppppuVar18;\n  char *pcVar19;\n  undefined4 *puVar20;\n  int iVar21;\n  undefined4 uVar22;\n  undefined4 *puVar23;\n  char *pcVar24;\n  int *piVar25;\n  int iVar26;\n  undefined4 ******ppppppuVar27;\n  char cVar28;\n  undefined4 *******pppppppuVar29;\n  undefined4 *******pppppppuVar30;\n  byte bVar31;\n  uint uVar32;\n  uint uVar33;\n  byte *pbVar34;\n  byte *pbVar35;\n  uint uVar36;\n  char cVar37;\n  uint uVar38;\n  byte *pbVar39;\n  bool bVar40;\n  bool bVar41;\n  bool bVar42;\n  byte bVar43;\n  undefined8 uVar44;\n  longlong lVar45;\n  longlong lVar46;\n  undefined4 *******local_b4;\n  undefined4 *****local_ac;\n  undefined4 ******local_a8;\n  undefined4 *****local_a4;\n  undefined4 ******local_a0;\n  undefined4 *****local_9c;\n  undefined4 ******local_98;\n  undefined4 *******local_94;\n  int local_8c;\n  uint local_88;\n  uint *local_7c;\n  undefined4 *local_70;\n  uint local_68;\n  int local_64;\n  int local_5c;\n  uint local_54;\n  char *local_38;\n  undefined4 *******local_34;\n  undefined4 ******local_30;\n  undefined4 ******local_2c;\n  undefined4 *local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar43 = 0;\n  uStack_14 = 0x23469;\n  uVar36 = *(uint *)(param_3 + 0x1c);\n  iVar26 = *(int *)(param_3 + 0x20);\n  if (DAT_00080ca0 == 0) {\n    FUN_00020ec0();\n  }\n  piVar25 = *(int **)(DAT_000809e4 + 8);\n  uVar13 = DAT_000809ec;\n  while (DAT_000809ec = uVar13, piVar25 != (int *)0x0) {\n    iVar15 = piVar25[1];\n    if (piVar25[4] != 0) {\n      FUN_00020e40();\n      iVar15 = piVar25[1];\n    }\n    piVar3 = (int *)piVar25[3];\n    DAT_00080aa0 = DAT_00080aa0 + 1;\n    *(int *)(iVar15 + 0x14) = piVar25[2];\n    *piVar25 = DAT_00080a94;\n    DAT_00080a94 = (int)piVar25;\n    piVar25 = piVar3;\n    uVar13 = DAT_000809ec;\n  }\n  DAT_00080ad8 = DAT_00080ad8 + 1;\n  iVar15 = DAT_000809e4;\n  *(int *)(DAT_000809e4 + 4) = DAT_00080acc;\n  DAT_00080acc = iVar15;\n  iVar21 = DAT_000809f0;\n  DAT_000809ec = 0;\n  for (iVar15 = DAT_000816a4; iVar15 != 0; iVar15 = FUN_00040c00(iVar15)) {\n    iVar12 = FUN_00041590(iVar15);\n    if (((*(int *)(iVar12 + 0x10) == 0) &&\n        (iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0)) &&\n       (iVar12 = FUN_000414f0(iVar15), (*(byte *)(iVar12 + 0x11) & 1) == 0)) {\n      iVar12 = FUN_00041590(iVar15);\n      DAT_000809f0 = *(int *)(iVar12 + 0xc);\n      uVar22 = FUN_0003fad0(iVar15);\n      FUN_00020930(iVar15,0,0,uVar22,0xfffff);\n    }\n  }\n  uVar8 = false;\n  DAT_000809ec = uVar13;\n  DAT_000809f0 = iVar21;\n  iVar15 = DAT_00080ca0;\njoined_r0x000235e4:\n  if (iVar15 != 0) {\n    piVar25 = *(int **)(iVar15 + 0x6c);\n    iVar21 = iVar15;\n    DAT_000809f0 = iVar15;\n    while (piVar25 != (int *)0x0) {\n      while( true ) {\n        piVar25 = (int *)*piVar25;\n        if (piVar25 == (int *)0x0) {\n          FUN_00020930(0,0,0,0,0);\n          iVar15 = *(int *)(iVar15 + 200);\n          goto joined_r0x000235e4;\n        }\n        *(int **)(iVar21 + 0x6c) = piVar25;\n        if (((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)) break;\n        uVar8 = true;\n        uVar13 = dcgettext(0,"missing .end or .bend at end of file",5);\n        FUN_00031540(uVar13);\n        piVar25 = *(int **)(DAT_000809f0 + 0x6c);\n        iVar21 = DAT_000809f0;\n        if (piVar25 == (int *)0x0) goto LAB_00023650;\n      }\n    }\nLAB_00023650:\n    iVar15 = *(int *)(iVar15 + 200);\n    goto joined_r0x000235e4;\n  }\n  pcVar14 = (char *)xmalloc(0x2000);\n  pppppppuVar29 = DAT_00080c9c;\n  pcVar1 = pcVar14 + 0x2000;\n  bVar41 = DAT_00080758 == 3;\n  *(undefined4 *)(param_1 + 0x10) = 0;\n  *(undefined4 *)(param_1 + 0x14) = 0;\n  *(undefined4 *)(param_1 + 4) = 0;\n  local_38 = pcVar14;\n  local_b4 = pppppppuVar29;\n  if ((bVar41) || (DAT_000809e8 == (int *)0x0)) {\n    if (pppppppuVar29 != (undefined4 *******)0x0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n      goto LAB_00023764;\n    }\n  }\n  else if (pppppppuVar29 != (undefined4 *******)0x0) {\n    uVar44 = FUN_0003fad0(*(undefined4 *)(*DAT_000809e8 + 4));\n    iVar15 = FUN_0003e1d0(*(undefined4 *)(*DAT_000809e8 + 4));\n    if ((int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +\n        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c)) == 0 &&\n        (uint)uVar44 + *(uint *)(iVar15 + 0x1c) == 0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n    }\n    else {\n      local_30 = pppppppuVar29[1];\n      local_24 = 0;\n      local_2c = pppppppuVar29[2];\n      local_20 = 0;\n      local_28 = &DAT_000813a0;\n      local_b4 = &local_34;\n      local_34 = pppppppuVar29;\n    }\nLAB_00023764:\n    local_9c = (undefined4 *****)0x0;\n    local_ac = (undefined4 *****)0x0;\n    local_94 = (undefined4 *******)0x0;\n    local_a0 = (undefined4 ******)0x0;\n    local_98 = (undefined4 ******)0x0;\nLAB_000237a6:\n    pppppppuVar30 = pppppppuVar29;\n    if (pppppppuVar30 == (undefined4 *******)0x0) {\n      pppppuVar17 = (undefined4 *****)0x1;\nLAB_000237e1:\n      ppppppuVar27 = local_b4[1];\n      local_a8 = local_b4[2];\n      local_a4 = (undefined4 *****)((int)local_9c + (int)pppppuVar17);\n      if (ppppppuVar27 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }\n      }\n      else {\n        bVar41 = local_98 != local_a8;\n        if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }\n        pppppuVar18 = (undefined4 *****)0x0;\n        if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }\n        ppppppuVar27[8] = pppppuVar18;\n        ppppppuVar27[0x12] = local_ac;\n        ppppppuVar27[0x13] = (undefined4 *****)0x0;\n        local_a0 = ppppppuVar27;\n        if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }\n      goto LAB_000238d0;\n    }\n    ppppppuVar27 = pppppppuVar30[3];\n    uVar33 = (int)pppppppuVar30[4] + (int)*ppppppuVar27;\n    uVar38 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27);\n    ppppppuVar27 = local_b4[3];\n    uVar16 = (int)local_b4[4] + (int)*ppppppuVar27;\n    uVar32 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)local_b4[4],(uint)*ppppppuVar27);\n    if (uVar32 < uVar38 || uVar32 - uVar38 < (uint)(uVar16 < uVar33)) {\n      pppppuVar17 = (undefined4 *****)\n                    (uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000);\n      goto LAB_000237e1;\n    }\n    goto LAB_000237a0;\n  }\n  local_a4 = (undefined4 *****)0x0;\n  local_ac = (undefined4 *****)0x0;\nLAB_00023a3f:\n  *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n  local_68 = FUN_0001ff70(local_ac,&local_38);\n  *(uint *)(param_1 + 0x28) = local_68;\n  *(uint *)(param_1 + 8) = local_68 - *(uint *)(param_1 + 0x10);\n  uVar16 = DAT_00080ca4;\n  *(uint *)(param_1 + 0xc) =\n       -(uint)(local_68 < *(uint *)(param_1 + 0x10)) - *(int *)(param_1 + 0x14);\n  *(undefined4 *)(param_1 + 0x2c) = 0;\n  *(undefined4 *)(param_1 + 0x18) = 0;\n  *(undefined4 *)(param_1 + 0x1c) = 0;\n  *(undefined4 *)(param_1 + 0x20) = 0;\n  *(uint *)(param_1 + 0x24) = uVar16;\n  uVar32 = (int)pcVar1 - (int)(pcVar14 + local_68) >> 0x1f;\n  uVar33 = (int)((ulonglong)uVar36 * (ulonglong)uVar16 >> 0x20) + iVar26 * uVar16;\n  if (uVar32 < uVar33 ||\n      uVar32 - uVar33 <\n      (uint)((uint)((int)pcVar1 - (int)(pcVar14 + local_68)) <\n            (uint)((ulonglong)uVar36 * (ulonglong)uVar16))) {\n    FUN_0001ff00(uVar16 * uVar36);\n    uVar16 = DAT_00080ca4;\n  }\n  local_68 = uVar16 * uVar36 + local_68;\n  uVar36 = *(uint *)(param_3 + 0x24);\n  local_a0 = (undefined4 ******)(pcVar14 + local_68);\n  *(uint *)(param_1 + 0x34) = local_68;\n  uVar16 = *(uint *)(param_3 + 0x28);\n  *(undefined4 *)(param_1 + 0x38) = 0;\n  pcVar5 = *(code **)(param_3 + 0x80);\n  if (DAT_00078240 != 0) {\n    local_8c = 0;\n    puVar20 = (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0x180);\n    iVar26 = DAT_00078240;\nLAB_00023b80:\n    local_5c = iVar26;\n    local_9c = *(undefined4 ******)(local_5c + 8);\n    if (*(int *)(local_5c + 4) == 0) {\n      local_54 = (uint)DAT_00078250 * 0x294 + (int)local_9c;\n      if (local_54 <= local_9c) {\n        local_68 = local_68 + local_8c * uVar36;\n        uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28));\n        goto LAB_0002441d;\n      }\n    }\n    else {\n      local_54 = (uint)DAT_0007824e * 0x294 + (int)local_9c;\n      iVar26 = *(int *)(local_5c + 4);\n      if (local_54 <= local_9c) goto LAB_00023b80;\n    }\nLAB_00023bb7:\n    *(int *)((int)local_9c + 0x18) = local_8c;\n    iVar26 = *(int *)((int)local_9c + 0x8c);\n    if (iVar26 != 0) {\n      local_a8 = (undefined4 ******)local_8c;\nLAB_00023bdc:\n      local_64 = iVar26;\n      puVar6 = *(undefined4 **)(local_64 + 8);\n      if (*(int *)(local_64 + 4) == 0) {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10;\n        if (local_70 <= puVar6) {\n          local_8c = (int)local_a8;\n          iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n          goto LAB_000243a4;\n        }\n      }\n      else {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10;\n        iVar26 = *(int *)(local_64 + 4);\n        if (local_70 <= puVar6) goto LAB_00023bdc;\n      }\n      uVar32 = puVar6[4];\n      do {\n        if ((undefined4 *****)uVar32 != local_9c) {\n                    \n          FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }\n        iVar26 = puVar6[1];\n        if (iVar26 == 0) {\n          local_b4 = (undefined4 *******)puVar6[6];\n          if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n          piVar25 = (int *)puVar6[8];\n          if (piVar25 == (int *)0x0) goto LAB_0002402d;\nLAB_00024237:\n          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n          goto LAB_00023ff8;\n        }\n        if ((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47) {\n          if ((int *)puVar6[5] == (int *)0x0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }\n          uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n          iVar15 = FUN_0003e1d0(iVar26);\n          iVar21 = FUN_0003e1d0(uVar13);\n          if (iVar15 != iVar21) {\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }\n          lVar45 = FUN_0003fad0(iVar26);\n          lVar46 = FUN_0003fad0(uVar13);\n          *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n        }\n        else {\n          uVar44 = FUN_0003fad0(iVar26);\n          iVar21 = FUN_0003e1d0(iVar26);\n          uVar33 = (uint)uVar44 + puVar6[2];\n          uVar32 = *(uint *)(iVar21 + 0x1c);\n          iVar15 = *(int *)(iVar21 + 0x20);\n          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);\n          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);\n        }\n        bVar11 = FUN_0003dc90(iVar26);\n        *(byte *)(puVar6 + 10) = *(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04';\n        if (((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&\n           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) {\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;\n        }\n        if (((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&\n           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))) {\n          puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);\n          pbVar35 = (byte *)*puVar23;\n          if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }\n          else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }\n          iVar15 = FUN_0003ddd0(iVar26);\n          if (iVar15 == 0) {\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }\n          else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }\nLAB_00023df1:\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;\n          *(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);\n        }\n        iVar15 = FUN_0003dc20(iVar26);\n        if (((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||\n           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)) {\n          iVar15 = FUN_0003dd80(iVar26);\n          if (iVar15 != 0) goto LAB_0002410f;\n          if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }\n          else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }\nLAB_0002402d:\n          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;\n          if (uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }\n          (*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);\n          local_a0 = (undefined4 ******)((int)local_a0 + uVar36);\n          puVar6[9] = local_a8;\n          puVar7 = (uint *)puVar6[5];\n          if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {\n            puVar7[3] = (int)local_a8 - local_8c;\n          }\n          local_a8 = (undefined4 ******)((int)local_a8 + 1);\n          if ((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          FUN_0003dd80(iVar26);\nLAB_0002410f:\n          if (puVar6[6] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (puVar6[8] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          iVar15 = FUN_00041590(iVar26);\n          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }\n        }\n        if (local_70 <= puVar6 + 0x10) goto LAB_00024380;\n        uVar32 = puVar6[0x14];\n        puVar6 = puVar6 + 0x10;\n      } while( true );\n    }\n    goto LAB_000243a4;\n  }\n  *(undefined4 *)(param_1 + 0x30) = 0;\nLAB_0002554e:\n  *(undefined4 *)(param_1 + 0x3c) = 0;\n  *(undefined4 *)(param_1 + 0x40) = 0;\n  *(undefined4 *)(param_1 + 0x44) = 0;\n  *(undefined4 *)(param_1 + 0x50) = 0;\n  *(uint *)(param_1 + 0x4c) = local_68;\nLAB_00024eaa:\n  uVar16 = FUN_0001ff70(local_68,0);\n  *(uint *)(param_1 + 0x48) =\n       uVar16 - *(uint *)(param_1 + 0x4c) >> 2 |\n       (-(uint)(uVar16 < *(uint *)(param_1 + 0x4c)) - *(int *)(param_1 + 0x50)) * 0x40000000;\n  *(uint *)(param_1 + 0x58) = uVar16;\n  iVar26 = DAT_00078240;\n  local_9c = (undefined4 *****)DAT_00078240;\n  *(undefined4 *)(param_1 + 0x5c) = 0;\n  uVar36 = uVar16;\n  if (iVar26 != 0) {\n    local_a8 = (undefined4 ******)0x0;\n    do {\n      uVar2 = DAT_00078250;\n      if (*(int *)((int)local_9c + 4) != 0) {\n        uVar2 = DAT_0007824e;\n      }\n      local_b4 = *(undefined4 ********)((int)local_9c + 8);\n      uVar32 = (uint)uVar2 * 0x294 + (int)local_b4;\n      pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      if (local_b4 < uVar32) {\n        do {\n          *(undefined4 *******)((int)local_b4 + 0xc) = local_a8;\n          iVar26 = *(int *)((int)local_b4 + 0x78);\n          pcVar24 = pcVar14 + uVar36;\n          if (iVar26 == 0) {\n            iVar15 = 0;\n            iVar26 = 0;\n          }\n          else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }\n          *(int *)((int)local_b4 + 0x10) = iVar15;\n          uVar33 = (int)local_b4 + 0x294;\n          *(int *)((int)local_b4 + 0x14) = iVar26;\n          local_b4 = (undefined4 *******)uVar33;\n        } while (uVar33 < uVar32);\n        pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      }\n      local_9c = pppppuVar17;\n    } while (local_9c != (undefined4 *****)0x0);\n  }\n  local_9c = (undefined4 *****)FUN_0001ff70(uVar36,0);\n  uVar36 = *(uint *)(param_3 + 0x38);\n  *(undefined4 *)(param_1 + 0x78) = 0;\n  *(int *)(param_1 + 0x54) = (int)local_9c - *(int *)(param_1 + 0x58);\n  *(undefined4 *)(param_1 + 0x7c) = 0;\n  *(undefined4 *)(param_1 + 0x80) = 0;\n  *(undefined4 ******)(param_1 + 0x70) = local_9c;\n  pcVar24 = pcVar14 + (int)local_9c;\n  *(undefined4 *)(param_1 + 0x74) = 0;\n  pcVar5 = *(code **)(param_3 + 0x88);\n  uVar16 = *(uint *)(param_3 + 0x34);\n  if (DAT_00078240 == 0) {\n    uVar13 = 0;\n  }\n  else {\n    local_ac = (undefined4 *****)0x0;\n    ppppppuVar27 = (undefined4 ******)DAT_00078240;\nLAB_000251e2:\n    do {\n      local_98 = ppppppuVar27;\n      uVar32 = *(uint *)((int)local_98 + 8);\n      pcVar19 = pcVar24;\n      if (*(int *)((int)local_98 + 4) == 0) {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);\n        if (local_b4 <= uVar32) {\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);\n        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n        if (local_b4 <= uVar32) goto LAB_000251e2;\n      }\n      do {\n        uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;\n        if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           ) {\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }\n        pcVar24 = pcVar19 + uVar16;\n        uVar33 = uVar32 + 0x294;\n        (*pcVar5)(DAT_00081544,uVar32,pcVar19);\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        pcVar19 = pcVar24;\n        uVar32 = uVar33;\n      } while (uVar33 < local_b4);\n      ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n    } while (*(int *)((int)local_98 + 4) != 0);\n    local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n    uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                          -(uint)(local_9c < *(uint *)(param_1 + 0x70)) - *(int *)(param_1 + 0x74),\n                          *(undefined4 *)(param_3 + 0x34),*(undefined4 *)(param_3 + 0x38));\n  }\nLAB_000252e8:\n  *(undefined4 *)(param_1 + 0x6c) = uVar13;\n  *(undefined4 *)(param_1 + 0x60) = 0;\n  iVar26 = DAT_000816a4;\n  *(undefined4 *)(param_1 + 100) = 0;\n  *(undefined4 *)(param_1 + 0x68) = 0;\n  *(undefined4 *)(param_1 + 0x84) = 0;\n  *(undefined4 *)(param_1 + 0x88) = 0;\n  *(undefined4 *)(param_1 + 0x8c) = 0;\n  for (; iVar26 != 0; iVar26 = FUN_00040c00(iVar26)) {\n    iVar15 = FUN_00041590(iVar26);\n    if (*(int *)(iVar15 + 0x10) != 0) {\n      iVar15 = FUN_0003dc20(iVar26);\n      if (((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n         (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) {\n        iVar15 = FUN_00041590(iVar26);\n        iVar15 = *(int *)(iVar15 + 0x10);\n        *(undefined4 *)(iVar15 + 0x34) = 0;\n        *(undefined4 *)(iVar15 + 0x38) = 0;\n        *(uint *)(iVar15 + 0x3c) = *(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000;\n      }\n      iVar15 = FUN_00041590(iVar26);\n      FUN_0004ed20(iVar26,*(int *)(iVar15 + 0x10) + 0x28);\n    }\n  }\n  if ((*(int *)(param_3 + 4) - 1U & (uint)local_9c) == 0) {\n    *(undefined2 *)(param_1 + 2) = 0x30b;\n    *param_2 = pcVar14;\n    return (uint)local_9c;\n  }\n                    \n  FUN_00031740("../../gas/ecoff.c",0x129d,"ecoff_build_debug",local_9c);\ncode_r0x00024a60:\n  local_ac = (undefined4 *****)((int)local_ac + 3);\n  pcVar24 = local_38 + 2;\n  local_38[1] = (char)((uint)iVar15 >> 8);\n  local_38 = local_38 + 3;\n  *pcVar24 = (char)iVar15;\nLAB_000238d0:\n  if (0 < (int)pppppuVar17) {\n    uVar16 = (int)pppppuVar17 - 1;\n    local_ac = (undefined4 *****)((int)local_ac + 1);\n    pppppuVar17 = (undefined4 *****)((uVar16 >> 4) + (int)local_ac);\n    if (pcVar1 <= local_38) goto LAB_00023925;\n    while (pcVar24 = local_38 + 1, pcVar19 = local_38, local_38 = pcVar24, 0xf < uVar16) {\n      while( true ) {\n        uVar16 = uVar16 - 0x10;\n        *pcVar19 = '\x0f';\n        if (pppppuVar17 == local_ac) goto LAB_00023953;\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        if (local_38 < pcVar1) break;\nLAB_00023925:\n        pcVar19 = (char *)FUN_0001ff00(1);\n        local_38 = pcVar19 + 1;\n        if (uVar16 < 0x10) goto LAB_00023944;\n      }\n    }\nLAB_00023944:\n    *pcVar19 = (char)uVar16;\n  }\nLAB_00023953:\n  pppppppuVar30 = (undefined4 *******)*local_b4;\n  if (pppppppuVar30 == (undefined4 *******)0x0) goto LAB_00023a10;\n  local_9c = local_a4;\n  local_94 = local_b4;\n  local_98 = local_a8;\nLAB_000237a0:\n  pppppppuVar29 = (undefined4 *******)*pppppppuVar30;\n  local_b4 = pppppppuVar30;\n  goto LAB_000237a6;\nLAB_00023a10:\n  if (local_a8 != (undefined4 ******)0x0) {\n    local_a8[0xd] = local_b4[5];\n  }\n  if (local_a0 != (undefined4 ******)0x0) {\n    local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n    local_a0[0x15] = (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n    local_a0[9] = local_a4;\n  }\n  goto LAB_00023a3f;\nLAB_00024380:\n  iVar26 = *(int *)(local_64 + 4);\n  if (*(int *)(local_64 + 4) == 0) goto code_r0x00024393;\n  goto LAB_00023bdc;\ncode_r0x00024393:\n  iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n  local_8c = (int)local_a8;\nLAB_000243a4:\n  *(int *)((int)local_9c + 0x1c) = iVar26;\n  local_9c = (undefined4 *****)((int)local_9c + 0x294);\n  if (local_54 <= local_9c) goto code_r0x000243bf;\n  goto LAB_00023bb7;\ncode_r0x000243bf:\n  iVar26 = *(int *)(local_5c + 4);\n  if (*(int *)(local_5c + 4) == 0) goto code_r0x000243ce;\n  goto LAB_00023b80;\ncode_r0x000243ce:\n  local_68 = local_68 + local_8c * uVar36;\n  uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                        -(uint)(local_68 < *(uint *)(param_1 + 0x34)) - *(int *)(param_1 + 0x38),\n                        *(undefined4 *)(param_3 + 0x24),*(undefined4 *)(param_3 + 0x28));\nLAB_0002441d:\n  puVar20 = (undefined4 *)DAT_00078240;\n  *(undefined4 *)(param_1 + 0x30) = uVar13;\n  pcVar24 = pcVar14 + *(int *)(param_1 + 0x28);\n  uVar36 = *(uint *)(param_3 + 0x1c);\n  uVar16 = *(uint *)(param_3 + 0x20);\n  pcVar5 = *(code **)(param_3 + 0x7c);\n  if (puVar20 != (undefined4 *)0x0) {\n    sVar9 = 0;\nLAB_00024474:\n    do {\n      local_70 = puVar20;\n      local_a4 = *(undefined4 ******)((int)local_70 + 8);\n      if (*(int *)((int)local_70 + 4) == 0) {\n        local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5);\n        if (local_7c <= local_a4) break;\n      }\n      else {\n        local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);\n        puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }\n      do {\n        bVar41 = true;\n        *(short *)(local_a4 + 0xc) = sVar9;\n        uVar32 = (uint)local_a4[0x28];\n        if (uVar32 != 0) {\nLAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);\n          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);\n        }\n        *(short *)((int)local_a4 + 0x32) = (short)uVar32;\n        local_a4 = local_a4 + 0xa5;\n      } while (local_a4 < local_7c);\n      puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n    } while (*(int *)((int)local_70 + 4) != 0);\n    pppppppuVar29 = (undefined4 *******)DAT_00078240;\n    *(undefined4 *)(param_1 + 0x3c) = 0;\n    *(undefined4 *)(param_1 + 0x40) = 0;\n    *(undefined4 *)(param_1 + 0x44) = 0;\n    *(undefined4 *)(param_1 + 0x50) = 0;\n    *(uint *)(param_1 + 0x4c) = local_68;\n    iVar26 = *(int *)(*(int *)(DAT_00081544 + 4) + 8);\n    bVar41 = iVar26 == 0;\n    pcVar24 = pcVar14 + local_68;\n    if (pppppppuVar29 != (undefined4 *******)0x0) {\n      iVar15 = 0;\nLAB_00024d54:\n      do {\n        local_94 = pppppppuVar29;\n        local_a0 = *(undefined4 *******)((int)local_94 + 8);\n        if (*(int *)((int)local_94 + 4) == 0) {\n          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          *(int *)((int)local_a0 + 0x34) = iVar15;\n          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;\n          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);\n          if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }\n          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;\n          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);\n        } while (local_a0 < local_9c);\n        pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n      } while (*(int *)((int)local_94 + 4) != 0);\n      local_68 = local_68 + iVar15 * 4;\n    }\n    goto LAB_00024eaa;\n  }\n  goto LAB_0002554e;\n}" ({ "{") (declaration "char *pcVar1;" (primitive_type "char") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "ushort uVar2;" (type_identifier "ushort") (identifier "uVar2") (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "undefined4 *****pppppuVar4;" (type_identifier "undefined4") (pointer_declarator "*****pppppuVar4" (* "*") (pointer_declarator "****pppppuVar4" (* "*") (pointer_declarator "***pppppuVar4" (* "*") (pointer_declarator "**pppppuVar4" (* "*") (pointer_declarator "*pppppuVar4" (* "*") (identifier "pppppuVar4")))))) (; ";")) (declaration "code *pcVar5;" (type_identifier "code") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "uint *puVar7;" (type_identifier "uint") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined1 uVar8;" (type_identifier "undefined1") (identifier "uVar8") (; ";")) (declaration "short sVar9;" (sized_type_specifier "short" (short "short")) (identifier "sVar9") (; ";")) (declaration "ulonglong uVar10;" (type_identifier "ulonglong") (identifier "uVar10") (; ";")) (declaration "byte bVar11;" (type_identifier "byte") (identifier "bVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "undefined4 uVar13;" (type_identifier "undefined4") (identifier "uVar13") (; ";")) (declaration "char *pcVar14;" (primitive_type "char") (pointer_declarator "*pcVar14" (* "*") (identifier "pcVar14")) (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "undefined4 *****pppppuVar17;" (type_identifier "undefined4") (pointer_declarator "*****pppppuVar17" (* "*") (pointer_declarator "****pppppuVar17" (* "*") (pointer_declarator "***pppppuVar17" (* "*") (pointer_declarator "**pppppuVar17" (* "*") (pointer_declarator "*pppppuVar17" (* "*") (identifier "pppppuVar17")))))) (; ";")) (declaration "undefined4 *****pppppuVar18;" (type_identifier "undefined4") (pointer_declarator "*****pppppuVar18" (* "*") (pointer_declarator "****pppppuVar18" (* "*") (pointer_declarator "***pppppuVar18" (* "*") (pointer_declarator "**pppppuVar18" (* "*") (pointer_declarator "*pppppuVar18" (* "*") (identifier "pppppuVar18")))))) (; ";")) (declaration "char *pcVar19;" (primitive_type "char") (pointer_declarator "*pcVar19" (* "*") (identifier "pcVar19")) (; ";")) (declaration "undefined4 *puVar20;" (type_identifier "undefined4") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "int iVar21;" (primitive_type "int") (identifier "iVar21") (; ";")) (declaration "undefined4 uVar22;" (type_identifier "undefined4") (identifier "uVar22") (; ";")) (declaration "undefined4 *puVar23;" (type_identifier "undefined4") (pointer_declarator "*puVar23" (* "*") (identifier "puVar23")) (; ";")) (declaration "char *pcVar24;" (primitive_type "char") (pointer_declarator "*pcVar24" (* "*") (identifier "pcVar24")) (; ";")) (declaration "int *piVar25;" (primitive_type "int") (pointer_declarator "*piVar25" (* "*") (identifier "piVar25")) (; ";")) (declaration "int iVar26;" (primitive_type "int") (identifier "iVar26") (; ";")) (declaration "undefined4 ******ppppppuVar27;" (type_identifier "undefined4") (pointer_declarator "******ppppppuVar27" (* "*") (pointer_declarator "*****ppppppuVar27" (* "*") (pointer_declarator "****ppppppuVar27" (* "*") (pointer_declarator "***ppppppuVar27" (* "*") (pointer_declarator "**ppppppuVar27" (* "*") (pointer_declarator "*ppppppuVar27" (* "*") (identifier "ppppppuVar27"))))))) (; ";")) (declaration "char cVar28;" (primitive_type "char") (identifier "cVar28") (; ";")) (declaration "undefined4 *******pppppppuVar29;" (type_identifier "undefined4") (pointer_declarator "*******pppppppuVar29" (* "*") (pointer_declarator "******pppppppuVar29" (* "*") (pointer_declarator "*****pppppppuVar29" (* "*") (pointer_declarator "****pppppppuVar29" (* "*") (pointer_declarator "***pppppppuVar29" (* "*") (pointer_declarator "**pppppppuVar29" (* "*") (pointer_declarator "*pppppppuVar29" (* "*") (identifier "pppppppuVar29")))))))) (; ";")) (declaration "undefined4 *******pppppppuVar30;" (type_identifier "undefined4") (pointer_declarator "*******pppppppuVar30" (* "*") (pointer_declarator "******pppppppuVar30" (* "*") (pointer_declarator "*****pppppppuVar30" (* "*") (pointer_declarator "****pppppppuVar30" (* "*") (pointer_declarator "***pppppppuVar30" (* "*") (pointer_declarator "**pppppppuVar30" (* "*") (pointer_declarator "*pppppppuVar30" (* "*") (identifier "pppppppuVar30")))))))) (; ";")) (declaration "byte bVar31;" (type_identifier "byte") (identifier "bVar31") (; ";")) (declaration "uint uVar32;" (type_identifier "uint") (identifier "uVar32") (; ";")) (declaration "uint uVar33;" (type_identifier "uint") (identifier "uVar33") (; ";")) (declaration "byte *pbVar34;" (type_identifier "byte") (pointer_declarator "*pbVar34" (* "*") (identifier "pbVar34")) (; ";")) (declaration "byte *pbVar35;" (type_identifier "byte") (pointer_declarator "*pbVar35" (* "*") (identifier "pbVar35")) (; ";")) (declaration "uint uVar36;" (type_identifier "uint") (identifier "uVar36") (; ";")) (declaration "char cVar37;" (primitive_type "char") (identifier "cVar37") (; ";")) (declaration "uint uVar38;" (type_identifier "uint") (identifier "uVar38") (; ";")) (declaration "byte *pbVar39;" (type_identifier "byte") (pointer_declarator "*pbVar39" (* "*") (identifier "pbVar39")) (; ";")) (declaration "bool bVar40;" (primitive_type "bool") (identifier "bVar40") (; ";")) (declaration "bool bVar41;" (primitive_type "bool") (identifier "bVar41") (; ";")) (declaration "bool bVar42;" (primitive_type "bool") (identifier "bVar42") (; ";")) (declaration "byte bVar43;" (type_identifier "byte") (identifier "bVar43") (; ";")) (declaration "undefined8 uVar44;" (type_identifier "undefined8") (identifier "uVar44") (; ";")) (declaration "longlong lVar45;" (type_identifier "longlong") (identifier "lVar45") (; ";")) (declaration "longlong lVar46;" (type_identifier "longlong") (identifier "lVar46") (; ";")) (declaration "undefined4 *******local_b4;" (type_identifier "undefined4") (pointer_declarator "*******local_b4" (* "*") (pointer_declarator "******local_b4" (* "*") (pointer_declarator "*****local_b4" (* "*") (pointer_declarator "****local_b4" (* "*") (pointer_declarator "***local_b4" (* "*") (pointer_declarator "**local_b4" (* "*") (pointer_declarator "*local_b4" (* "*") (identifier "local_b4")))))))) (; ";")) (declaration "undefined4 *****local_ac;" (type_identifier "undefined4") (pointer_declarator "*****local_ac" (* "*") (pointer_declarator "****local_ac" (* "*") (pointer_declarator "***local_ac" (* "*") (pointer_declarator "**local_ac" (* "*") (pointer_declarator "*local_ac" (* "*") (identifier "local_ac")))))) (; ";")) (declaration "undefined4 ******local_a8;" (type_identifier "undefined4") (pointer_declarator "******local_a8" (* "*") (pointer_declarator "*****local_a8" (* "*") (pointer_declarator "****local_a8" (* "*") (pointer_declarator "***local_a8" (* "*") (pointer_declarator "**local_a8" (* "*") (pointer_declarator "*local_a8" (* "*") (identifier "local_a8"))))))) (; ";")) (declaration "undefined4 *****local_a4;" (type_identifier "undefined4") (pointer_declarator "*****local_a4" (* "*") (pointer_declarator "****local_a4" (* "*") (pointer_declarator "***local_a4" (* "*") (pointer_declarator "**local_a4" (* "*") (pointer_declarator "*local_a4" (* "*") (identifier "local_a4")))))) (; ";")) (declaration "undefined4 ******local_a0;" (type_identifier "undefined4") (pointer_declarator "******local_a0" (* "*") (pointer_declarator "*****local_a0" (* "*") (pointer_declarator "****local_a0" (* "*") (pointer_declarator "***local_a0" (* "*") (pointer_declarator "**local_a0" (* "*") (pointer_declarator "*local_a0" (* "*") (identifier "local_a0"))))))) (; ";")) (declaration "undefined4 *****local_9c;" (type_identifier "undefined4") (pointer_declarator "*****local_9c" (* "*") (pointer_declarator "****local_9c" (* "*") (pointer_declarator "***local_9c" (* "*") (pointer_declarator "**local_9c" (* "*") (pointer_declarator "*local_9c" (* "*") (identifier "local_9c")))))) (; ";")) (declaration "undefined4 ******local_98;" (type_identifier "undefined4") (pointer_declarator "******local_98" (* "*") (pointer_declarator "*****local_98" (* "*") (pointer_declarator "****local_98" (* "*") (pointer_declarator "***local_98" (* "*") (pointer_declarator "**local_98" (* "*") (pointer_declarator "*local_98" (* "*") (identifier "local_98"))))))) (; ";")) (declaration "undefined4 *******local_94;" (type_identifier "undefined4") (pointer_declarator "*******local_94" (* "*") (pointer_declarator "******local_94" (* "*") (pointer_declarator "*****local_94" (* "*") (pointer_declarator "****local_94" (* "*") (pointer_declarator "***local_94" (* "*") (pointer_declarator "**local_94" (* "*") (pointer_declarator "*local_94" (* "*") (identifier "local_94")))))))) (; ";")) (declaration "int local_8c;" (primitive_type "int") (identifier "local_8c") (; ";")) (declaration "uint local_88;" (type_identifier "uint") (identifier "local_88") (; ";")) (declaration "uint *local_7c;" (type_identifier "uint") (pointer_declarator "*local_7c" (* "*") (identifier "local_7c")) (; ";")) (declaration "undefined4 *local_70;" (type_identifier "undefined4") (pointer_declarator "*local_70" (* "*") (identifier "local_70")) (; ";")) (declaration "uint local_68;" (type_identifier "uint") (identifier "local_68") (; ";")) (declaration "int local_64;" (primitive_type "int") (identifier "local_64") (; ";")) (declaration "int local_5c;" (primitive_type "int") (identifier "local_5c") (; ";")) (declaration "uint local_54;" (type_identifier "uint") (identifier "local_54") (; ";")) (declaration "char *local_38;" (primitive_type "char") (pointer_declarator "*local_38" (* "*") (identifier "local_38")) (; ";")) (declaration "undefined4 *******local_34;" (type_identifier "undefined4") (pointer_declarator "*******local_34" (* "*") (pointer_declarator "******local_34" (* "*") (pointer_declarator "*****local_34" (* "*") (pointer_declarator "****local_34" (* "*") (pointer_declarator "***local_34" (* "*") (pointer_declarator "**local_34" (* "*") (pointer_declarator "*local_34" (* "*") (identifier "local_34")))))))) (; ";")) (declaration "undefined4 ******local_30;" (type_identifier "undefined4") (pointer_declarator "******local_30" (* "*") (pointer_declarator "*****local_30" (* "*") (pointer_declarator "****local_30" (* "*") (pointer_declarator "***local_30" (* "*") (pointer_declarator "**local_30" (* "*") (pointer_declarator "*local_30" (* "*") (identifier "local_30"))))))) (; ";")) (declaration "undefined4 ******local_2c;" (type_identifier "undefined4") (pointer_declarator "******local_2c" (* "*") (pointer_declarator "*****local_2c" (* "*") (pointer_declarator "****local_2c" (* "*") (pointer_declarator "***local_2c" (* "*") (pointer_declarator "**local_2c" (* "*") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c"))))))) (; ";")) (declaration "undefined4 *local_28;" (type_identifier "undefined4") (pointer_declarator "*local_28" (* "*") (identifier "local_28")) (; ";")) (declaration "undefined4 local_24;" (type_identifier "undefined4") (identifier "local_24") (; ";")) (declaration "undefined4 local_20;" (type_identifier "undefined4") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "bVar43 = 0;" (assignment_expression "bVar43 = 0" (identifier "bVar43") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x23469;" (assignment_expression "uStack_14 = 0x23469" (identifier "uStack_14") (= "=") (number_literal "0x23469")) (; ";")) (expression_statement "uVar36 = *(uint *)(param_3 + 0x1c);" (assignment_expression "uVar36 = *(uint *)(param_3 + 0x1c)" (identifier "uVar36") (= "=") (pointer_expression "*(uint *)(param_3 + 0x1c)" (* "*") (cast_expression "(uint *)(param_3 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x1c)" (( "(") (binary_expression "param_3 + 0x1c" (identifier "param_3") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "iVar26 = *(int *)(param_3 + 0x20);" (assignment_expression "iVar26 = *(int *)(param_3 + 0x20)" (identifier "iVar26") (= "=") (pointer_expression "*(int *)(param_3 + 0x20)" (* "*") (cast_expression "(int *)(param_3 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x20)" (( "(") (binary_expression "param_3 + 0x20" (identifier "param_3") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (if_statement "if (DAT_00080ca0 == 0) {\n    FUN_00020ec0();\n  }" (if "if") (parenthesized_expression "(DAT_00080ca0 == 0)" (( "(") (binary_expression "DAT_00080ca0 == 0" (identifier "DAT_00080ca0") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00020ec0();\n  }" ({ "{") (expression_statement "FUN_00020ec0();" (call_expression "FUN_00020ec0()" (identifier "FUN_00020ec0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar25 = *(int **)(DAT_000809e4 + 8);" (assignment_expression "piVar25 = *(int **)(DAT_000809e4 + 8)" (identifier "piVar25") (= "=") (pointer_expression "*(int **)(DAT_000809e4 + 8)" (* "*") (cast_expression "(int **)(DAT_000809e4 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(DAT_000809e4 + 8)" (( "(") (binary_expression "DAT_000809e4 + 8" (identifier "DAT_000809e4") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar13 = DAT_000809ec;" (assignment_expression "uVar13 = DAT_000809ec" (identifier "uVar13") (= "=") (identifier "DAT_000809ec")) (; ";")) (while_statement "while (DAT_000809ec = uVar13, piVar25 != (int *)0x0) {\n    iVar15 = piVar25[1];\n    if (piVar25[4] != 0) {\n      FUN_00020e40();\n      iVar15 = piVar25[1];\n    }\n    piVar3 = (int *)piVar25[3];\n    DAT_00080aa0 = DAT_00080aa0 + 1;\n    *(int *)(iVar15 + 0x14) = piVar25[2];\n    *piVar25 = DAT_00080a94;\n    DAT_00080a94 = (int)piVar25;\n    piVar25 = piVar3;\n    uVar13 = DAT_000809ec;\n  }" (while "while") (parenthesized_expression "(DAT_000809ec = uVar13, piVar25 != (int *)0x0)" (( "(") (comma_expression "DAT_000809ec = uVar13, piVar25 != (int *)0x0" (assignment_expression "DAT_000809ec = uVar13" (identifier "DAT_000809ec") (= "=") (identifier "uVar13")) (, ",") (binary_expression "piVar25 != (int *)0x0" (identifier "piVar25") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\n    iVar15 = piVar25[1];\n    if (piVar25[4] != 0) {\n      FUN_00020e40();\n      iVar15 = piVar25[1];\n    }\n    piVar3 = (int *)piVar25[3];\n    DAT_00080aa0 = DAT_00080aa0 + 1;\n    *(int *)(iVar15 + 0x14) = piVar25[2];\n    *piVar25 = DAT_00080a94;\n    DAT_00080a94 = (int)piVar25;\n    piVar25 = piVar3;\n    uVar13 = DAT_000809ec;\n  }" ({ "{") (expression_statement "iVar15 = piVar25[1];" (assignment_expression "iVar15 = piVar25[1]" (identifier "iVar15") (= "=") (subscript_expression "piVar25[1]" (identifier "piVar25") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (piVar25[4] != 0) {\n      FUN_00020e40();\n      iVar15 = piVar25[1];\n    }" (if "if") (parenthesized_expression "(piVar25[4] != 0)" (( "(") (binary_expression "piVar25[4] != 0" (subscript_expression "piVar25[4]" (identifier "piVar25") ([ "[") (number_literal "4") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00020e40();\n      iVar15 = piVar25[1];\n    }" ({ "{") (expression_statement "FUN_00020e40();" (call_expression "FUN_00020e40()" (identifier "FUN_00020e40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar15 = piVar25[1];" (assignment_expression "iVar15 = piVar25[1]" (identifier "iVar15") (= "=") (subscript_expression "piVar25[1]" (identifier "piVar25") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}"))) (expression_statement "piVar3 = (int *)piVar25[3];" (assignment_expression "piVar3 = (int *)piVar25[3]" (identifier "piVar3") (= "=") (cast_expression "(int *)piVar25[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar25[3]" (identifier "piVar25") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "DAT_00080aa0 = DAT_00080aa0 + 1;" (assignment_expression "DAT_00080aa0 = DAT_00080aa0 + 1" (identifier "DAT_00080aa0") (= "=") (binary_expression "DAT_00080aa0 + 1" (identifier "DAT_00080aa0") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(iVar15 + 0x14) = piVar25[2];" (assignment_expression "*(int *)(iVar15 + 0x14) = piVar25[2]" (pointer_expression "*(int *)(iVar15 + 0x14)" (* "*") (cast_expression "(int *)(iVar15 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x14)" (( "(") (binary_expression "iVar15 + 0x14" (identifier "iVar15") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (subscript_expression "piVar25[2]" (identifier "piVar25") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "*piVar25 = DAT_00080a94;" (assignment_expression "*piVar25 = DAT_00080a94" (pointer_expression "*piVar25" (* "*") (identifier "piVar25")) (= "=") (identifier "DAT_00080a94")) (; ";")) (expression_statement "DAT_00080a94 = (int)piVar25;" (assignment_expression "DAT_00080a94 = (int)piVar25" (identifier "DAT_00080a94") (= "=") (cast_expression "(int)piVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar25"))) (; ";")) (expression_statement "piVar25 = piVar3;" (assignment_expression "piVar25 = piVar3" (identifier "piVar25") (= "=") (identifier "piVar3")) (; ";")) (expression_statement "uVar13 = DAT_000809ec;" (assignment_expression "uVar13 = DAT_000809ec" (identifier "uVar13") (= "=") (identifier "DAT_000809ec")) (; ";")) (} "}"))) (expression_statement "DAT_00080ad8 = DAT_00080ad8 + 1;" (assignment_expression "DAT_00080ad8 = DAT_00080ad8 + 1" (identifier "DAT_00080ad8") (= "=") (binary_expression "DAT_00080ad8 + 1" (identifier "DAT_00080ad8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar15 = DAT_000809e4;" (assignment_expression "iVar15 = DAT_000809e4" (identifier "iVar15") (= "=") (identifier "DAT_000809e4")) (; ";")) (expression_statement "*(int *)(DAT_000809e4 + 4) = DAT_00080acc;" (assignment_expression "*(int *)(DAT_000809e4 + 4) = DAT_00080acc" (pointer_expression "*(int *)(DAT_000809e4 + 4)" (* "*") (cast_expression "(int *)(DAT_000809e4 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_000809e4 + 4)" (( "(") (binary_expression "DAT_000809e4 + 4" (identifier "DAT_000809e4") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "DAT_00080acc")) (; ";")) (expression_statement "DAT_00080acc = iVar15;" (assignment_expression "DAT_00080acc = iVar15" (identifier "DAT_00080acc") (= "=") (identifier "iVar15")) (; ";")) (expression_statement "iVar21 = DAT_000809f0;" (assignment_expression "iVar21 = DAT_000809f0" (identifier "iVar21") (= "=") (identifier "DAT_000809f0")) (; ";")) (expression_statement "DAT_000809ec = 0;" (assignment_expression "DAT_000809ec = 0" (identifier "DAT_000809ec") (= "=") (number_literal "0")) (; ";")) (for_statement "for (iVar15 = DAT_000816a4; iVar15 != 0; iVar15 = FUN_00040c00(iVar15)) {\n    iVar12 = FUN_00041590(iVar15);\n    if (((*(int *)(iVar12 + 0x10) == 0) &&\n        (iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0)) &&\n       (iVar12 = FUN_000414f0(iVar15), (*(byte *)(iVar12 + 0x11) & 1) == 0)) {\n      iVar12 = FUN_00041590(iVar15);\n      DAT_000809f0 = *(int *)(iVar12 + 0xc);\n      uVar22 = FUN_0003fad0(iVar15);\n      FUN_00020930(iVar15,0,0,uVar22,0xfffff);\n    }\n  }" (for "for") (( "(") (assignment_expression "iVar15 = DAT_000816a4" (identifier "iVar15") (= "=") (identifier "DAT_000816a4")) (; ";") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar15 = FUN_00040c00(iVar15)" (identifier "iVar15") (= "=") (call_expression "FUN_00040c00(iVar15)" (identifier "FUN_00040c00") (argument_list "(iVar15)" (( "(") (identifier "iVar15") () ")")))) () ")") (compound_statement "{\n    iVar12 = FUN_00041590(iVar15);\n    if (((*(int *)(iVar12 + 0x10) == 0) &&\n        (iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0)) &&\n       (iVar12 = FUN_000414f0(iVar15), (*(byte *)(iVar12 + 0x11) & 1) == 0)) {\n      iVar12 = FUN_00041590(iVar15);\n      DAT_000809f0 = *(int *)(iVar12 + 0xc);\n      uVar22 = FUN_0003fad0(iVar15);\n      FUN_00020930(iVar15,0,0,uVar22,0xfffff);\n    }\n  }" ({ "{") (expression_statement "iVar12 = FUN_00041590(iVar15);" (assignment_expression "iVar12 = FUN_00041590(iVar15)" (identifier "iVar12") (= "=") (call_expression "FUN_00041590(iVar15)" (identifier "FUN_00041590") (argument_list "(iVar15)" (( "(") (identifier "iVar15") () ")")))) (; ";")) (if_statement "if (((*(int *)(iVar12 + 0x10) == 0) &&\n        (iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0)) &&\n       (iVar12 = FUN_000414f0(iVar15), (*(byte *)(iVar12 + 0x11) & 1) == 0)) {\n      iVar12 = FUN_00041590(iVar15);\n      DAT_000809f0 = *(int *)(iVar12 + 0xc);\n      uVar22 = FUN_0003fad0(iVar15);\n      FUN_00020930(iVar15,0,0,uVar22,0xfffff);\n    }" (if "if") (parenthesized_expression "(((*(int *)(iVar12 + 0x10) == 0) &&\n        (iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0)) &&\n       (iVar12 = FUN_000414f0(iVar15), (*(byte *)(iVar12 + 0x11) & 1) == 0))" (( "(") (binary_expression "((*(int *)(iVar12 + 0x10) == 0) &&\n        (iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0)) &&\n       (iVar12 = FUN_000414f0(iVar15), (*(byte *)(iVar12 + 0x11) & 1) == 0)" (parenthesized_expression "((*(int *)(iVar12 + 0x10) == 0) &&\n        (iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0))" (( "(") (binary_expression "(*(int *)(iVar12 + 0x10) == 0) &&\n        (iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0)" (parenthesized_expression "(*(int *)(iVar12 + 0x10) == 0)" (( "(") (binary_expression "*(int *)(iVar12 + 0x10) == 0" (pointer_expression "*(int *)(iVar12 + 0x10)" (* "*") (cast_expression "(int *)(iVar12 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x10)" (( "(") (binary_expression "iVar12 + 0x10" (identifier "iVar12") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0)" (( "(") (comma_expression "iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0" (assignment_expression "iVar12 = FUN_00041590(iVar15)" (identifier "iVar12") (= "=") (call_expression "FUN_00041590(iVar15)" (identifier "FUN_00041590") (argument_list "(iVar15)" (( "(") (identifier "iVar15") () ")")))) (, ",") (binary_expression "*(int *)(iVar12 + 0xc) != 0" (pointer_expression "*(int *)(iVar12 + 0xc)" (* "*") (cast_expression "(int *)(iVar12 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xc)" (( "(") (binary_expression "iVar12 + 0xc" (identifier "iVar12") (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar12 = FUN_000414f0(iVar15), (*(byte *)(iVar12 + 0x11) & 1) == 0)" (( "(") (comma_expression "iVar12 = FUN_000414f0(iVar15), (*(byte *)(iVar12 + 0x11) & 1) == 0" (assignment_expression "iVar12 = FUN_000414f0(iVar15)" (identifier "iVar12") (= "=") (call_expression "FUN_000414f0(iVar15)" (identifier "FUN_000414f0") (argument_list "(iVar15)" (( "(") (identifier "iVar15") () ")")))) (, ",") (binary_expression "(*(byte *)(iVar12 + 0x11) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar12 + 0x11) & 1)" (( "(") (binary_expression "*(byte *)(iVar12 + 0x11) & 1" (pointer_expression "*(byte *)(iVar12 + 0x11)" (* "*") (cast_expression "(byte *)(iVar12 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x11)" (( "(") (binary_expression "iVar12 + 0x11" (identifier "iVar12") (+ "+") (number_literal "0x11")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      iVar12 = FUN_00041590(iVar15);\n      DAT_000809f0 = *(int *)(iVar12 + 0xc);\n      uVar22 = FUN_0003fad0(iVar15);\n      FUN_00020930(iVar15,0,0,uVar22,0xfffff);\n    }" ({ "{") (expression_statement "iVar12 = FUN_00041590(iVar15);" (assignment_expression "iVar12 = FUN_00041590(iVar15)" (identifier "iVar12") (= "=") (call_expression "FUN_00041590(iVar15)" (identifier "FUN_00041590") (argument_list "(iVar15)" (( "(") (identifier "iVar15") () ")")))) (; ";")) (expression_statement "DAT_000809f0 = *(int *)(iVar12 + 0xc);" (assignment_expression "DAT_000809f0 = *(int *)(iVar12 + 0xc)" (identifier "DAT_000809f0") (= "=") (pointer_expression "*(int *)(iVar12 + 0xc)" (* "*") (cast_expression "(int *)(iVar12 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xc)" (( "(") (binary_expression "iVar12 + 0xc" (identifier "iVar12") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "uVar22 = FUN_0003fad0(iVar15);" (assignment_expression "uVar22 = FUN_0003fad0(iVar15)" (identifier "uVar22") (= "=") (call_expression "FUN_0003fad0(iVar15)" (identifier "FUN_0003fad0") (argument_list "(iVar15)" (( "(") (identifier "iVar15") () ")")))) (; ";")) (expression_statement "FUN_00020930(iVar15,0,0,uVar22,0xfffff);" (call_expression "FUN_00020930(iVar15,0,0,uVar22,0xfffff)" (identifier "FUN_00020930") (argument_list "(iVar15,0,0,uVar22,0xfffff)" (( "(") (identifier "iVar15") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "uVar22") (, ",") (number_literal "0xfffff") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar8 = false;" (assignment_expression "uVar8 = false" (identifier "uVar8") (= "=") (false "false")) (; ";")) (expression_statement "DAT_000809ec = uVar13;" (assignment_expression "DAT_000809ec = uVar13" (identifier "DAT_000809ec") (= "=") (identifier "uVar13")) (; ";")) (expression_statement "DAT_000809f0 = iVar21;" (assignment_expression "DAT_000809f0 = iVar21" (identifier "DAT_000809f0") (= "=") (identifier "iVar21")) (; ";")) (expression_statement "iVar15 = DAT_00080ca0;" (assignment_expression "iVar15 = DAT_00080ca0" (identifier "iVar15") (= "=") (identifier "DAT_00080ca0")) (; ";")) (labeled_statement "joined_r0x000235e4:\n  if (iVar15 != 0) {\n    piVar25 = *(int **)(iVar15 + 0x6c);\n    iVar21 = iVar15;\n    DAT_000809f0 = iVar15;\n    while (piVar25 != (int *)0x0) {\n      while( true ) {\n        piVar25 = (int *)*piVar25;\n        if (piVar25 == (int *)0x0) {\n          FUN_00020930(0,0,0,0,0);\n          iVar15 = *(int *)(iVar15 + 200);\n          goto joined_r0x000235e4;\n        }\n        *(int **)(iVar21 + 0x6c) = piVar25;\n        if (((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)) break;\n        uVar8 = true;\n        uVar13 = dcgettext(0,"missing .end or .bend at end of file",5);\n        FUN_00031540(uVar13);\n        piVar25 = *(int **)(DAT_000809f0 + 0x6c);\n        iVar21 = DAT_000809f0;\n        if (piVar25 == (int *)0x0) goto LAB_00023650;\n      }\n    }\nLAB_00023650:\n    iVar15 = *(int *)(iVar15 + 200);\n    goto joined_r0x000235e4;\n  }" (statement_identifier "joined_r0x000235e4") (: ":") (if_statement "if (iVar15 != 0) {\n    piVar25 = *(int **)(iVar15 + 0x6c);\n    iVar21 = iVar15;\n    DAT_000809f0 = iVar15;\n    while (piVar25 != (int *)0x0) {\n      while( true ) {\n        piVar25 = (int *)*piVar25;\n        if (piVar25 == (int *)0x0) {\n          FUN_00020930(0,0,0,0,0);\n          iVar15 = *(int *)(iVar15 + 200);\n          goto joined_r0x000235e4;\n        }\n        *(int **)(iVar21 + 0x6c) = piVar25;\n        if (((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)) break;\n        uVar8 = true;\n        uVar13 = dcgettext(0,"missing .end or .bend at end of file",5);\n        FUN_00031540(uVar13);\n        piVar25 = *(int **)(DAT_000809f0 + 0x6c);\n        iVar21 = DAT_000809f0;\n        if (piVar25 == (int *)0x0) goto LAB_00023650;\n      }\n    }\nLAB_00023650:\n    iVar15 = *(int *)(iVar15 + 200);\n    goto joined_r0x000235e4;\n  }" (if "if") (parenthesized_expression "(iVar15 != 0)" (( "(") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    piVar25 = *(int **)(iVar15 + 0x6c);\n    iVar21 = iVar15;\n    DAT_000809f0 = iVar15;\n    while (piVar25 != (int *)0x0) {\n      while( true ) {\n        piVar25 = (int *)*piVar25;\n        if (piVar25 == (int *)0x0) {\n          FUN_00020930(0,0,0,0,0);\n          iVar15 = *(int *)(iVar15 + 200);\n          goto joined_r0x000235e4;\n        }\n        *(int **)(iVar21 + 0x6c) = piVar25;\n        if (((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)) break;\n        uVar8 = true;\n        uVar13 = dcgettext(0,"missing .end or .bend at end of file",5);\n        FUN_00031540(uVar13);\n        piVar25 = *(int **)(DAT_000809f0 + 0x6c);\n        iVar21 = DAT_000809f0;\n        if (piVar25 == (int *)0x0) goto LAB_00023650;\n      }\n    }\nLAB_00023650:\n    iVar15 = *(int *)(iVar15 + 200);\n    goto joined_r0x000235e4;\n  }" ({ "{") (expression_statement "piVar25 = *(int **)(iVar15 + 0x6c);" (assignment_expression "piVar25 = *(int **)(iVar15 + 0x6c)" (identifier "piVar25") (= "=") (pointer_expression "*(int **)(iVar15 + 0x6c)" (* "*") (cast_expression "(int **)(iVar15 + 0x6c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar15 + 0x6c)" (( "(") (binary_expression "iVar15 + 0x6c" (identifier "iVar15") (+ "+") (number_literal "0x6c")) () ")"))))) (; ";")) (expression_statement "iVar21 = iVar15;" (assignment_expression "iVar21 = iVar15" (identifier "iVar21") (= "=") (identifier "iVar15")) (; ";")) (expression_statement "DAT_000809f0 = iVar15;" (assignment_expression "DAT_000809f0 = iVar15" (identifier "DAT_000809f0") (= "=") (identifier "iVar15")) (; ";")) (while_statement "while (piVar25 != (int *)0x0) {\n      while( true ) {\n        piVar25 = (int *)*piVar25;\n        if (piVar25 == (int *)0x0) {\n          FUN_00020930(0,0,0,0,0);\n          iVar15 = *(int *)(iVar15 + 200);\n          goto joined_r0x000235e4;\n        }\n        *(int **)(iVar21 + 0x6c) = piVar25;\n        if (((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)) break;\n        uVar8 = true;\n        uVar13 = dcgettext(0,"missing .end or .bend at end of file",5);\n        FUN_00031540(uVar13);\n        piVar25 = *(int **)(DAT_000809f0 + 0x6c);\n        iVar21 = DAT_000809f0;\n        if (piVar25 == (int *)0x0) goto LAB_00023650;\n      }\n    }" (while "while") (parenthesized_expression "(piVar25 != (int *)0x0)" (( "(") (binary_expression "piVar25 != (int *)0x0" (identifier "piVar25") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      while( true ) {\n        piVar25 = (int *)*piVar25;\n        if (piVar25 == (int *)0x0) {\n          FUN_00020930(0,0,0,0,0);\n          iVar15 = *(int *)(iVar15 + 200);\n          goto joined_r0x000235e4;\n        }\n        *(int **)(iVar21 + 0x6c) = piVar25;\n        if (((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)) break;\n        uVar8 = true;\n        uVar13 = dcgettext(0,"missing .end or .bend at end of file",5);\n        FUN_00031540(uVar13);\n        piVar25 = *(int **)(DAT_000809f0 + 0x6c);\n        iVar21 = DAT_000809f0;\n        if (piVar25 == (int *)0x0) goto LAB_00023650;\n      }\n    }" ({ "{") (while_statement "while( true ) {\n        piVar25 = (int *)*piVar25;\n        if (piVar25 == (int *)0x0) {\n          FUN_00020930(0,0,0,0,0);\n          iVar15 = *(int *)(iVar15 + 200);\n          goto joined_r0x000235e4;\n        }\n        *(int **)(iVar21 + 0x6c) = piVar25;\n        if (((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)) break;\n        uVar8 = true;\n        uVar13 = dcgettext(0,"missing .end or .bend at end of file",5);\n        FUN_00031540(uVar13);\n        piVar25 = *(int **)(DAT_000809f0 + 0x6c);\n        iVar21 = DAT_000809f0;\n        if (piVar25 == (int *)0x0) goto LAB_00023650;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        piVar25 = (int *)*piVar25;\n        if (piVar25 == (int *)0x0) {\n          FUN_00020930(0,0,0,0,0);\n          iVar15 = *(int *)(iVar15 + 200);\n          goto joined_r0x000235e4;\n        }\n        *(int **)(iVar21 + 0x6c) = piVar25;\n        if (((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)) break;\n        uVar8 = true;\n        uVar13 = dcgettext(0,"missing .end or .bend at end of file",5);\n        FUN_00031540(uVar13);\n        piVar25 = *(int **)(DAT_000809f0 + 0x6c);\n        iVar21 = DAT_000809f0;\n        if (piVar25 == (int *)0x0) goto LAB_00023650;\n      }" ({ "{") (expression_statement "piVar25 = (int *)*piVar25;" (assignment_expression "piVar25 = (int *)*piVar25" (identifier "piVar25") (= "=") (cast_expression "(int *)*piVar25" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar25" (* "*") (identifier "piVar25")))) (; ";")) (if_statement "if (piVar25 == (int *)0x0) {\n          FUN_00020930(0,0,0,0,0);\n          iVar15 = *(int *)(iVar15 + 200);\n          goto joined_r0x000235e4;\n        }" (if "if") (parenthesized_expression "(piVar25 == (int *)0x0)" (( "(") (binary_expression "piVar25 == (int *)0x0" (identifier "piVar25") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          FUN_00020930(0,0,0,0,0);\n          iVar15 = *(int *)(iVar15 + 200);\n          goto joined_r0x000235e4;\n        }" ({ "{") (expression_statement "FUN_00020930(0,0,0,0,0);" (call_expression "FUN_00020930(0,0,0,0,0)" (identifier "FUN_00020930") (argument_list "(0,0,0,0,0)" (( "(") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar15 = *(int *)(iVar15 + 200);" (assignment_expression "iVar15 = *(int *)(iVar15 + 200)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(iVar15 + 200)" (* "*") (cast_expression "(int *)(iVar15 + 200)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 200)" (( "(") (binary_expression "iVar15 + 200" (identifier "iVar15") (+ "+") (number_literal "200")) () ")"))))) (; ";")) (goto_statement "goto joined_r0x000235e4;" (goto "goto") (statement_identifier "joined_r0x000235e4") (; ";")) (} "}"))) (expression_statement "*(int **)(iVar21 + 0x6c) = piVar25;" (assignment_expression "*(int **)(iVar21 + 0x6c) = piVar25" (pointer_expression "*(int **)(iVar21 + 0x6c)" (* "*") (cast_expression "(int **)(iVar21 + 0x6c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar21 + 0x6c)" (( "(") (binary_expression "iVar21 + 0x6c" (identifier "iVar21") (+ "+") (number_literal "0x6c")) () ")")))) (= "=") (identifier "piVar25")) (; ";")) (if_statement "if (((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)) break;" (if "if") (parenthesized_expression "(((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0))" (( "(") (binary_expression "((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)" (parenthesized_expression "((bool)uVar8)" (( "(") (cast_expression "(bool)uVar8" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar8")) () ")")) (|| "||") (parenthesized_expression "(*(int *)(iVar21 + 0x60) != 0)" (( "(") (binary_expression "*(int *)(iVar21 + 0x60) != 0" (pointer_expression "*(int *)(iVar21 + 0x60)" (* "*") (cast_expression "(int *)(iVar21 + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x60)" (( "(") (binary_expression "iVar21 + 0x60" (identifier "iVar21") (+ "+") (number_literal "0x60")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar8 = true;" (assignment_expression "uVar8 = true" (identifier "uVar8") (= "=") (true "true")) (; ";")) (expression_statement "uVar13 = dcgettext(0,"missing .end or .bend at end of file",5);" (assignment_expression "uVar13 = dcgettext(0,"missing .end or .bend at end of file",5)" (identifier "uVar13") (= "=") (call_expression "dcgettext(0,"missing .end or .bend at end of file",5)" (identifier "dcgettext") (argument_list "(0,"missing .end or .bend at end of file",5)" (( "(") (number_literal "0") (, ",") (string_literal ""missing .end or .bend at end of file"" (" """) (string_content "missing .end or .bend at end of file") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031540(uVar13);" (call_expression "FUN_00031540(uVar13)" (identifier "FUN_00031540") (argument_list "(uVar13)" (( "(") (identifier "uVar13") () ")"))) (; ";")) (expression_statement "piVar25 = *(int **)(DAT_000809f0 + 0x6c);" (assignment_expression "piVar25 = *(int **)(DAT_000809f0 + 0x6c)" (identifier "piVar25") (= "=") (pointer_expression "*(int **)(DAT_000809f0 + 0x6c)" (* "*") (cast_expression "(int **)(DAT_000809f0 + 0x6c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(DAT_000809f0 + 0x6c)" (( "(") (binary_expression "DAT_000809f0 + 0x6c" (identifier "DAT_000809f0") (+ "+") (number_literal "0x6c")) () ")"))))) (; ";")) (expression_statement "iVar21 = DAT_000809f0;" (assignment_expression "iVar21 = DAT_000809f0" (identifier "iVar21") (= "=") (identifier "DAT_000809f0")) (; ";")) (if_statement "if (piVar25 == (int *)0x0) goto LAB_00023650;" (if "if") (parenthesized_expression "(piVar25 == (int *)0x0)" (( "(") (binary_expression "piVar25 == (int *)0x0" (identifier "piVar25") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00023650;" (goto "goto") (statement_identifier "LAB_00023650") (; ";"))) (} "}"))) (} "}"))) (labeled_statement "LAB_00023650:\n    iVar15 = *(int *)(iVar15 + 200);" (statement_identifier "LAB_00023650") (: ":") (expression_statement "iVar15 = *(int *)(iVar15 + 200);" (assignment_expression "iVar15 = *(int *)(iVar15 + 200)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(iVar15 + 200)" (* "*") (cast_expression "(int *)(iVar15 + 200)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 200)" (( "(") (binary_expression "iVar15 + 200" (identifier "iVar15") (+ "+") (number_literal "200")) () ")"))))) (; ";"))) (goto_statement "goto joined_r0x000235e4;" (goto "goto") (statement_identifier "joined_r0x000235e4") (; ";")) (} "}")))) (expression_statement "pcVar14 = (char *)xmalloc(0x2000);" (assignment_expression "pcVar14 = (char *)xmalloc(0x2000)" (identifier "pcVar14") (= "=") (cast_expression "(char *)xmalloc(0x2000)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(0x2000)" (identifier "xmalloc") (argument_list "(0x2000)" (( "(") (number_literal "0x2000") () ")"))))) (; ";")) (expression_statement "pppppppuVar29 = DAT_00080c9c;" (assignment_expression "pppppppuVar29 = DAT_00080c9c" (identifier "pppppppuVar29") (= "=") (identifier "DAT_00080c9c")) (; ";")) (expression_statement "pcVar1 = pcVar14 + 0x2000;" (assignment_expression "pcVar1 = pcVar14 + 0x2000" (identifier "pcVar1") (= "=") (binary_expression "pcVar14 + 0x2000" (identifier "pcVar14") (+ "+") (number_literal "0x2000"))) (; ";")) (expression_statement "bVar41 = DAT_00080758 == 3;" (assignment_expression "bVar41 = DAT_00080758 == 3" (identifier "bVar41") (= "=") (binary_expression "DAT_00080758 == 3" (identifier "DAT_00080758") (== "==") (number_literal "3"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x10) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x10)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x14) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x14)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 4) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 4) = 0" (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")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_38 = pcVar14;" (assignment_expression "local_38 = pcVar14" (identifier "local_38") (= "=") (identifier "pcVar14")) (; ";")) (expression_statement "local_b4 = pppppppuVar29;" (assignment_expression "local_b4 = pppppppuVar29" (identifier "local_b4") (= "=") (identifier "pppppppuVar29")) (; ";")) (if_statement "if ((bVar41) || (DAT_000809e8 == (int *)0x0)) {\n    if (pppppppuVar29 != (undefined4 *******)0x0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n      goto LAB_00023764;\n    }\n  }\n  else if (pppppppuVar29 != (undefined4 *******)0x0) {\n    uVar44 = FUN_0003fad0(*(undefined4 *)(*DAT_000809e8 + 4));\n    iVar15 = FUN_0003e1d0(*(undefined4 *)(*DAT_000809e8 + 4));\n    if ((int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +\n        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c)) == 0 &&\n        (uint)uVar44 + *(uint *)(iVar15 + 0x1c) == 0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n    }\n    else {\n      local_30 = pppppppuVar29[1];\n      local_24 = 0;\n      local_2c = pppppppuVar29[2];\n      local_20 = 0;\n      local_28 = &DAT_000813a0;\n      local_b4 = &local_34;\n      local_34 = pppppppuVar29;\n    }\nLAB_00023764:\n    local_9c = (undefined4 *****)0x0;\n    local_ac = (undefined4 *****)0x0;\n    local_94 = (undefined4 *******)0x0;\n    local_a0 = (undefined4 ******)0x0;\n    local_98 = (undefined4 ******)0x0;\nLAB_000237a6:\n    pppppppuVar30 = pppppppuVar29;\n    if (pppppppuVar30 == (undefined4 *******)0x0) {\n      pppppuVar17 = (undefined4 *****)0x1;\nLAB_000237e1:\n      ppppppuVar27 = local_b4[1];\n      local_a8 = local_b4[2];\n      local_a4 = (undefined4 *****)((int)local_9c + (int)pppppuVar17);\n      if (ppppppuVar27 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }\n      }\n      else {\n        bVar41 = local_98 != local_a8;\n        if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }\n        pppppuVar18 = (undefined4 *****)0x0;\n        if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }\n        ppppppuVar27[8] = pppppuVar18;\n        ppppppuVar27[0x12] = local_ac;\n        ppppppuVar27[0x13] = (undefined4 *****)0x0;\n        local_a0 = ppppppuVar27;\n        if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }\n      goto LAB_000238d0;\n    }\n    ppppppuVar27 = pppppppuVar30[3];\n    uVar33 = (int)pppppppuVar30[4] + (int)*ppppppuVar27;\n    uVar38 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27);\n    ppppppuVar27 = local_b4[3];\n    uVar16 = (int)local_b4[4] + (int)*ppppppuVar27;\n    uVar32 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)local_b4[4],(uint)*ppppppuVar27);\n    if (uVar32 < uVar38 || uVar32 - uVar38 < (uint)(uVar16 < uVar33)) {\n      pppppuVar17 = (undefined4 *****)\n                    (uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000);\n      goto LAB_000237e1;\n    }\n    goto LAB_000237a0;\n  }" (if "if") (parenthesized_expression "((bVar41) || (DAT_000809e8 == (int *)0x0))" (( "(") (binary_expression "(bVar41) || (DAT_000809e8 == (int *)0x0)" (parenthesized_expression "(bVar41)" (( "(") (identifier "bVar41") () ")")) (|| "||") (parenthesized_expression "(DAT_000809e8 == (int *)0x0)" (( "(") (binary_expression "DAT_000809e8 == (int *)0x0" (identifier "DAT_000809e8") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n    if (pppppppuVar29 != (undefined4 *******)0x0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n      goto LAB_00023764;\n    }\n  }" ({ "{") (if_statement "if (pppppppuVar29 != (undefined4 *******)0x0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n      goto LAB_00023764;\n    }" (if "if") (parenthesized_expression "(pppppppuVar29 != (undefined4 *******)0x0)" (( "(") (binary_expression "pppppppuVar29 != (undefined4 *******)0x0" (identifier "pppppppuVar29") (!= "!=") (cast_expression "(undefined4 *******)0x0" (( "(") (type_descriptor "undefined4 *******" (type_identifier "undefined4") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n      goto LAB_00023764;\n    }" ({ "{") (expression_statement "pppppppuVar29 = (undefined4 *******)*pppppppuVar29;" (assignment_expression "pppppppuVar29 = (undefined4 *******)*pppppppuVar29" (identifier "pppppppuVar29") (= "=") (cast_expression "(undefined4 *******)*pppppppuVar29" (( "(") (type_descriptor "undefined4 *******" (type_identifier "undefined4") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*pppppppuVar29" (* "*") (identifier "pppppppuVar29")))) (; ";")) (goto_statement "goto LAB_00023764;" (goto "goto") (statement_identifier "LAB_00023764") (; ";")) (} "}"))) (} "}")) (else_clause "else if (pppppppuVar29 != (undefined4 *******)0x0) {\n    uVar44 = FUN_0003fad0(*(undefined4 *)(*DAT_000809e8 + 4));\n    iVar15 = FUN_0003e1d0(*(undefined4 *)(*DAT_000809e8 + 4));\n    if ((int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +\n        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c)) == 0 &&\n        (uint)uVar44 + *(uint *)(iVar15 + 0x1c) == 0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n    }\n    else {\n      local_30 = pppppppuVar29[1];\n      local_24 = 0;\n      local_2c = pppppppuVar29[2];\n      local_20 = 0;\n      local_28 = &DAT_000813a0;\n      local_b4 = &local_34;\n      local_34 = pppppppuVar29;\n    }\nLAB_00023764:\n    local_9c = (undefined4 *****)0x0;\n    local_ac = (undefined4 *****)0x0;\n    local_94 = (undefined4 *******)0x0;\n    local_a0 = (undefined4 ******)0x0;\n    local_98 = (undefined4 ******)0x0;\nLAB_000237a6:\n    pppppppuVar30 = pppppppuVar29;\n    if (pppppppuVar30 == (undefined4 *******)0x0) {\n      pppppuVar17 = (undefined4 *****)0x1;\nLAB_000237e1:\n      ppppppuVar27 = local_b4[1];\n      local_a8 = local_b4[2];\n      local_a4 = (undefined4 *****)((int)local_9c + (int)pppppuVar17);\n      if (ppppppuVar27 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }\n      }\n      else {\n        bVar41 = local_98 != local_a8;\n        if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }\n        pppppuVar18 = (undefined4 *****)0x0;\n        if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }\n        ppppppuVar27[8] = pppppuVar18;\n        ppppppuVar27[0x12] = local_ac;\n        ppppppuVar27[0x13] = (undefined4 *****)0x0;\n        local_a0 = ppppppuVar27;\n        if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }\n      goto LAB_000238d0;\n    }\n    ppppppuVar27 = pppppppuVar30[3];\n    uVar33 = (int)pppppppuVar30[4] + (int)*ppppppuVar27;\n    uVar38 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27);\n    ppppppuVar27 = local_b4[3];\n    uVar16 = (int)local_b4[4] + (int)*ppppppuVar27;\n    uVar32 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)local_b4[4],(uint)*ppppppuVar27);\n    if (uVar32 < uVar38 || uVar32 - uVar38 < (uint)(uVar16 < uVar33)) {\n      pppppuVar17 = (undefined4 *****)\n                    (uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000);\n      goto LAB_000237e1;\n    }\n    goto LAB_000237a0;\n  }" (else "else") (if_statement "if (pppppppuVar29 != (undefined4 *******)0x0) {\n    uVar44 = FUN_0003fad0(*(undefined4 *)(*DAT_000809e8 + 4));\n    iVar15 = FUN_0003e1d0(*(undefined4 *)(*DAT_000809e8 + 4));\n    if ((int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +\n        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c)) == 0 &&\n        (uint)uVar44 + *(uint *)(iVar15 + 0x1c) == 0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n    }\n    else {\n      local_30 = pppppppuVar29[1];\n      local_24 = 0;\n      local_2c = pppppppuVar29[2];\n      local_20 = 0;\n      local_28 = &DAT_000813a0;\n      local_b4 = &local_34;\n      local_34 = pppppppuVar29;\n    }\nLAB_00023764:\n    local_9c = (undefined4 *****)0x0;\n    local_ac = (undefined4 *****)0x0;\n    local_94 = (undefined4 *******)0x0;\n    local_a0 = (undefined4 ******)0x0;\n    local_98 = (undefined4 ******)0x0;\nLAB_000237a6:\n    pppppppuVar30 = pppppppuVar29;\n    if (pppppppuVar30 == (undefined4 *******)0x0) {\n      pppppuVar17 = (undefined4 *****)0x1;\nLAB_000237e1:\n      ppppppuVar27 = local_b4[1];\n      local_a8 = local_b4[2];\n      local_a4 = (undefined4 *****)((int)local_9c + (int)pppppuVar17);\n      if (ppppppuVar27 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }\n      }\n      else {\n        bVar41 = local_98 != local_a8;\n        if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }\n        pppppuVar18 = (undefined4 *****)0x0;\n        if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }\n        ppppppuVar27[8] = pppppuVar18;\n        ppppppuVar27[0x12] = local_ac;\n        ppppppuVar27[0x13] = (undefined4 *****)0x0;\n        local_a0 = ppppppuVar27;\n        if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }\n      goto LAB_000238d0;\n    }\n    ppppppuVar27 = pppppppuVar30[3];\n    uVar33 = (int)pppppppuVar30[4] + (int)*ppppppuVar27;\n    uVar38 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27);\n    ppppppuVar27 = local_b4[3];\n    uVar16 = (int)local_b4[4] + (int)*ppppppuVar27;\n    uVar32 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)local_b4[4],(uint)*ppppppuVar27);\n    if (uVar32 < uVar38 || uVar32 - uVar38 < (uint)(uVar16 < uVar33)) {\n      pppppuVar17 = (undefined4 *****)\n                    (uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000);\n      goto LAB_000237e1;\n    }\n    goto LAB_000237a0;\n  }" (if "if") (parenthesized_expression "(pppppppuVar29 != (undefined4 *******)0x0)" (( "(") (binary_expression "pppppppuVar29 != (undefined4 *******)0x0" (identifier "pppppppuVar29") (!= "!=") (cast_expression "(undefined4 *******)0x0" (( "(") (type_descriptor "undefined4 *******" (type_identifier "undefined4") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar44 = FUN_0003fad0(*(undefined4 *)(*DAT_000809e8 + 4));\n    iVar15 = FUN_0003e1d0(*(undefined4 *)(*DAT_000809e8 + 4));\n    if ((int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +\n        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c)) == 0 &&\n        (uint)uVar44 + *(uint *)(iVar15 + 0x1c) == 0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n    }\n    else {\n      local_30 = pppppppuVar29[1];\n      local_24 = 0;\n      local_2c = pppppppuVar29[2];\n      local_20 = 0;\n      local_28 = &DAT_000813a0;\n      local_b4 = &local_34;\n      local_34 = pppppppuVar29;\n    }\nLAB_00023764:\n    local_9c = (undefined4 *****)0x0;\n    local_ac = (undefined4 *****)0x0;\n    local_94 = (undefined4 *******)0x0;\n    local_a0 = (undefined4 ******)0x0;\n    local_98 = (undefined4 ******)0x0;\nLAB_000237a6:\n    pppppppuVar30 = pppppppuVar29;\n    if (pppppppuVar30 == (undefined4 *******)0x0) {\n      pppppuVar17 = (undefined4 *****)0x1;\nLAB_000237e1:\n      ppppppuVar27 = local_b4[1];\n      local_a8 = local_b4[2];\n      local_a4 = (undefined4 *****)((int)local_9c + (int)pppppuVar17);\n      if (ppppppuVar27 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }\n      }\n      else {\n        bVar41 = local_98 != local_a8;\n        if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }\n        pppppuVar18 = (undefined4 *****)0x0;\n        if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }\n        ppppppuVar27[8] = pppppuVar18;\n        ppppppuVar27[0x12] = local_ac;\n        ppppppuVar27[0x13] = (undefined4 *****)0x0;\n        local_a0 = ppppppuVar27;\n        if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }\n      goto LAB_000238d0;\n    }\n    ppppppuVar27 = pppppppuVar30[3];\n    uVar33 = (int)pppppppuVar30[4] + (int)*ppppppuVar27;\n    uVar38 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27);\n    ppppppuVar27 = local_b4[3];\n    uVar16 = (int)local_b4[4] + (int)*ppppppuVar27;\n    uVar32 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)local_b4[4],(uint)*ppppppuVar27);\n    if (uVar32 < uVar38 || uVar32 - uVar38 < (uint)(uVar16 < uVar33)) {\n      pppppuVar17 = (undefined4 *****)\n                    (uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000);\n      goto LAB_000237e1;\n    }\n    goto LAB_000237a0;\n  }" ({ "{") (expression_statement "uVar44 = FUN_0003fad0(*(undefined4 *)(*DAT_000809e8 + 4));" (assignment_expression "uVar44 = FUN_0003fad0(*(undefined4 *)(*DAT_000809e8 + 4))" (identifier "uVar44") (= "=") (call_expression "FUN_0003fad0(*(undefined4 *)(*DAT_000809e8 + 4))" (identifier "FUN_0003fad0") (argument_list "(*(undefined4 *)(*DAT_000809e8 + 4))" (( "(") (pointer_expression "*(undefined4 *)(*DAT_000809e8 + 4)" (* "*") (cast_expression "(undefined4 *)(*DAT_000809e8 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*DAT_000809e8 + 4)" (( "(") (binary_expression "*DAT_000809e8 + 4" (pointer_expression "*DAT_000809e8" (* "*") (identifier "DAT_000809e8")) (+ "+") (number_literal "4")) () ")")))) () ")")))) (; ";")) (expression_statement "iVar15 = FUN_0003e1d0(*(undefined4 *)(*DAT_000809e8 + 4));" (assignment_expression "iVar15 = FUN_0003e1d0(*(undefined4 *)(*DAT_000809e8 + 4))" (identifier "iVar15") (= "=") (call_expression "FUN_0003e1d0(*(undefined4 *)(*DAT_000809e8 + 4))" (identifier "FUN_0003e1d0") (argument_list "(*(undefined4 *)(*DAT_000809e8 + 4))" (( "(") (pointer_expression "*(undefined4 *)(*DAT_000809e8 + 4)" (* "*") (cast_expression "(undefined4 *)(*DAT_000809e8 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*DAT_000809e8 + 4)" (( "(") (binary_expression "*DAT_000809e8 + 4" (pointer_expression "*DAT_000809e8" (* "*") (identifier "DAT_000809e8")) (+ "+") (number_literal "4")) () ")")))) () ")")))) (; ";")) (if_statement "if ((int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +\n        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c)) == 0 &&\n        (uint)uVar44 + *(uint *)(iVar15 + 0x1c) == 0) {\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n    }\n    else {\n      local_30 = pppppppuVar29[1];\n      local_24 = 0;\n      local_2c = pppppppuVar29[2];\n      local_20 = 0;\n      local_28 = &DAT_000813a0;\n      local_b4 = &local_34;\n      local_34 = pppppppuVar29;\n    }" (if "if") (parenthesized_expression "((int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +\n        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c)) == 0 &&\n        (uint)uVar44 + *(uint *)(iVar15 + 0x1c) == 0)" (( "(") (binary_expression "(int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +\n        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c)) == 0 &&\n        (uint)uVar44 + *(uint *)(iVar15 + 0x1c) == 0" (binary_expression "(int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +\n        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c)) == 0" (binary_expression "(int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +\n        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c))" (binary_expression "(int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20)" (cast_expression "(int)((ulonglong)uVar44 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar44 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar44 >> 0x20" (cast_expression "(ulonglong)uVar44" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar44")) (>> ">>") (number_literal "0x20")) () ")"))) (+ "+") (pointer_expression "*(int *)(iVar15 + 0x20)" (* "*") (cast_expression "(int *)(iVar15 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x20)" (( "(") (binary_expression "iVar15 + 0x20" (identifier "iVar15") (+ "+") (number_literal "0x20")) () ")"))))) (+ "+") (cast_expression "(uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c))" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c))" (identifier "CARRY4") (argument_list "((uint)uVar44,*(uint *)(iVar15 + 0x1c))" (( "(") (cast_expression "(uint)uVar44" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar44")) (, ",") (pointer_expression "*(uint *)(iVar15 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar15 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x1c)" (( "(") (binary_expression "iVar15 + 0x1c" (identifier "iVar15") (+ "+") (number_literal "0x1c")) () ")")))) () ")"))))) (== "==") (number_literal "0")) (&& "&&") (binary_expression "(uint)uVar44 + *(uint *)(iVar15 + 0x1c) == 0" (binary_expression "(uint)uVar44 + *(uint *)(iVar15 + 0x1c)" (cast_expression "(uint)uVar44" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar44")) (+ "+") (pointer_expression "*(uint *)(iVar15 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar15 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x1c)" (( "(") (binary_expression "iVar15 + 0x1c" (identifier "iVar15") (+ "+") (number_literal "0x1c")) () ")"))))) (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;\n    }" ({ "{") (expression_statement "pppppppuVar29 = (undefined4 *******)*pppppppuVar29;" (assignment_expression "pppppppuVar29 = (undefined4 *******)*pppppppuVar29" (identifier "pppppppuVar29") (= "=") (cast_expression "(undefined4 *******)*pppppppuVar29" (( "(") (type_descriptor "undefined4 *******" (type_identifier "undefined4") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*pppppppuVar29" (* "*") (identifier "pppppppuVar29")))) (; ";")) (} "}")) (else_clause "else {\n      local_30 = pppppppuVar29[1];\n      local_24 = 0;\n      local_2c = pppppppuVar29[2];\n      local_20 = 0;\n      local_28 = &DAT_000813a0;\n      local_b4 = &local_34;\n      local_34 = pppppppuVar29;\n    }" (else "else") (compound_statement "{\n      local_30 = pppppppuVar29[1];\n      local_24 = 0;\n      local_2c = pppppppuVar29[2];\n      local_20 = 0;\n      local_28 = &DAT_000813a0;\n      local_b4 = &local_34;\n      local_34 = pppppppuVar29;\n    }" ({ "{") (expression_statement "local_30 = pppppppuVar29[1];" (assignment_expression "local_30 = pppppppuVar29[1]" (identifier "local_30") (= "=") (subscript_expression "pppppppuVar29[1]" (identifier "pppppppuVar29") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_2c = pppppppuVar29[2];" (assignment_expression "local_2c = pppppppuVar29[2]" (identifier "local_2c") (= "=") (subscript_expression "pppppppuVar29[2]" (identifier "pppppppuVar29") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" (identifier "local_20") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_28 = &DAT_000813a0;" (assignment_expression "local_28 = &DAT_000813a0" (identifier "local_28") (= "=") (pointer_expression "&DAT_000813a0" (& "&") (identifier "DAT_000813a0"))) (; ";")) (expression_statement "local_b4 = &local_34;" (assignment_expression "local_b4 = &local_34" (identifier "local_b4") (= "=") (pointer_expression "&local_34" (& "&") (identifier "local_34"))) (; ";")) (expression_statement "local_34 = pppppppuVar29;" (assignment_expression "local_34 = pppppppuVar29" (identifier "local_34") (= "=") (identifier "pppppppuVar29")) (; ";")) (} "}")))) (labeled_statement "LAB_00023764:\n    local_9c = (undefined4 *****)0x0;" (statement_identifier "LAB_00023764") (: ":") (expression_statement "local_9c = (undefined4 *****)0x0;" (assignment_expression "local_9c = (undefined4 *****)0x0" (identifier "local_9c") (= "=") (cast_expression "(undefined4 *****)0x0" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "local_ac = (undefined4 *****)0x0;" (assignment_expression "local_ac = (undefined4 *****)0x0" (identifier "local_ac") (= "=") (cast_expression "(undefined4 *****)0x0" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_94 = (undefined4 *******)0x0;" (assignment_expression "local_94 = (undefined4 *******)0x0" (identifier "local_94") (= "=") (cast_expression "(undefined4 *******)0x0" (( "(") (type_descriptor "undefined4 *******" (type_identifier "undefined4") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_a0 = (undefined4 ******)0x0;" (assignment_expression "local_a0 = (undefined4 ******)0x0" (identifier "local_a0") (= "=") (cast_expression "(undefined4 ******)0x0" (( "(") (type_descriptor "undefined4 ******" (type_identifier "undefined4") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_98 = (undefined4 ******)0x0;" (assignment_expression "local_98 = (undefined4 ******)0x0" (identifier "local_98") (= "=") (cast_expression "(undefined4 ******)0x0" (( "(") (type_descriptor "undefined4 ******" (type_identifier "undefined4") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_000237a6:\n    pppppppuVar30 = pppppppuVar29;" (statement_identifier "LAB_000237a6") (: ":") (expression_statement "pppppppuVar30 = pppppppuVar29;" (assignment_expression "pppppppuVar30 = pppppppuVar29" (identifier "pppppppuVar30") (= "=") (identifier "pppppppuVar29")) (; ";"))) (if_statement "if (pppppppuVar30 == (undefined4 *******)0x0) {\n      pppppuVar17 = (undefined4 *****)0x1;\nLAB_000237e1:\n      ppppppuVar27 = local_b4[1];\n      local_a8 = local_b4[2];\n      local_a4 = (undefined4 *****)((int)local_9c + (int)pppppuVar17);\n      if (ppppppuVar27 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }\n      }\n      else {\n        bVar41 = local_98 != local_a8;\n        if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }\n        pppppuVar18 = (undefined4 *****)0x0;\n        if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }\n        ppppppuVar27[8] = pppppuVar18;\n        ppppppuVar27[0x12] = local_ac;\n        ppppppuVar27[0x13] = (undefined4 *****)0x0;\n        local_a0 = ppppppuVar27;\n        if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }\n      goto LAB_000238d0;\n    }" (if "if") (parenthesized_expression "(pppppppuVar30 == (undefined4 *******)0x0)" (( "(") (binary_expression "pppppppuVar30 == (undefined4 *******)0x0" (identifier "pppppppuVar30") (== "==") (cast_expression "(undefined4 *******)0x0" (( "(") (type_descriptor "undefined4 *******" (type_identifier "undefined4") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pppppuVar17 = (undefined4 *****)0x1;\nLAB_000237e1:\n      ppppppuVar27 = local_b4[1];\n      local_a8 = local_b4[2];\n      local_a4 = (undefined4 *****)((int)local_9c + (int)pppppuVar17);\n      if (ppppppuVar27 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }\n      }\n      else {\n        bVar41 = local_98 != local_a8;\n        if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }\n        pppppuVar18 = (undefined4 *****)0x0;\n        if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }\n        ppppppuVar27[8] = pppppuVar18;\n        ppppppuVar27[0x12] = local_ac;\n        ppppppuVar27[0x13] = (undefined4 *****)0x0;\n        local_a0 = ppppppuVar27;\n        if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }\n      goto LAB_000238d0;\n    }" ({ "{") (expression_statement "pppppuVar17 = (undefined4 *****)0x1;" (assignment_expression "pppppuVar17 = (undefined4 *****)0x1" (identifier "pppppuVar17") (= "=") (cast_expression "(undefined4 *****)0x1" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x1"))) (; ";")) (labeled_statement "LAB_000237e1:\n      ppppppuVar27 = local_b4[1];" (statement_identifier "LAB_000237e1") (: ":") (expression_statement "ppppppuVar27 = local_b4[1];" (assignment_expression "ppppppuVar27 = local_b4[1]" (identifier "ppppppuVar27") (= "=") (subscript_expression "local_b4[1]" (identifier "local_b4") ([ "[") (number_literal "1") (] "]"))) (; ";"))) (expression_statement "local_a8 = local_b4[2];" (assignment_expression "local_a8 = local_b4[2]" (identifier "local_a8") (= "=") (subscript_expression "local_b4[2]" (identifier "local_b4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_a4 = (undefined4 *****)((int)local_9c + (int)pppppuVar17);" (assignment_expression "local_a4 = (undefined4 *****)((int)local_9c + (int)pppppuVar17)" (identifier "local_a4") (= "=") (cast_expression "(undefined4 *****)((int)local_9c + (int)pppppuVar17)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)local_9c + (int)pppppuVar17)" (( "(") (binary_expression "(int)local_9c + (int)pppppuVar17" (cast_expression "(int)local_9c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_9c")) (+ "+") (cast_expression "(int)pppppuVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppuVar17"))) () ")")))) (; ";")) (if_statement "if (ppppppuVar27 == local_a0) {\n        if (local_98 != local_a8) {\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }\n      }\n      else {\n        bVar41 = local_98 != local_a8;\n        if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }\n        pppppuVar18 = (undefined4 *****)0x0;\n        if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }\n        ppppppuVar27[8] = pppppuVar18;\n        ppppppuVar27[0x12] = local_ac;\n        ppppppuVar27[0x13] = (undefined4 *****)0x0;\n        local_a0 = ppppppuVar27;\n        if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }" (if "if") (parenthesized_expression "(ppppppuVar27 == local_a0)" (( "(") (binary_expression "ppppppuVar27 == local_a0" (identifier "ppppppuVar27") (== "==") (identifier "local_a0")) () ")")) (compound_statement "{\n        if (local_98 != local_a8) {\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }\n        if ((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }\n      }" ({ "{") (if_statement "if (local_98 != local_a8) {\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }" (if "if") (parenthesized_expression "(local_98 != local_a8)" (( "(") (binary_expression "local_98 != local_a8" (identifier "local_98") (!= "!=") (identifier "local_a8")) () ")")) (compound_statement "{\n          if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }\n          goto LAB_000238a1;\n        }" ({ "{") (if_statement "if (local_98 != (undefined4 ******)0x0) {\n            local_98[0xd] = local_94[5];\n          }" (if "if") (parenthesized_expression "(local_98 != (undefined4 ******)0x0)" (( "(") (binary_expression "local_98 != (undefined4 ******)0x0" (identifier "local_98") (!= "!=") (cast_expression "(undefined4 ******)0x0" (( "(") (type_descriptor "undefined4 ******" (type_identifier "undefined4") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            local_98[0xd] = local_94[5];\n          }" ({ "{") (expression_statement "local_98[0xd] = local_94[5];" (assignment_expression "local_98[0xd] = local_94[5]" (subscript_expression "local_98[0xd]" (identifier "local_98") ([ "[") (number_literal "0xd") (] "]")) (= "=") (subscript_expression "local_94[5]" (identifier "local_94") ([ "[") (number_literal "5") (] "]"))) (; ";")) (} "}"))) (goto_statement "goto LAB_000238a1;" (goto "goto") (statement_identifier "LAB_000238a1") (; ";")) (} "}"))) (if_statement "if ((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }" (if "if") (parenthesized_expression "((local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0))" (( "(") (binary_expression "(local_94 != (undefined4 *******)0x0) &&\n           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)" (parenthesized_expression "(local_94 != (undefined4 *******)0x0)" (( "(") (binary_expression "local_94 != (undefined4 *******)0x0" (identifier "local_94") (!= "!=") (cast_expression "(undefined4 *******)0x0" (( "(") (type_descriptor "undefined4 *******" (type_identifier "undefined4") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)" (( "(") (comma_expression "iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0" (assignment_expression "iVar15 = (int)local_b4[5] - (int)local_94[5]" (identifier "iVar15") (= "=") (binary_expression "(int)local_b4[5] - (int)local_94[5]" (cast_expression "(int)local_b4[5]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "local_b4[5]" (identifier "local_b4") ([ "[") (number_literal "5") (] "]"))) (- "-") (cast_expression "(int)local_94[5]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "local_94[5]" (identifier "local_94") ([ "[") (number_literal "5") (] "]"))))) (, ",") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );\n        }" ({ "{") (do_statement "do {\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          } while( true );" (do "do") (compound_statement "{\n            iVar21 = (int)pppppuVar17 - 1;\n            if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }\n            if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }\n            if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }\n            *local_38 = (char)iVar21 + -0x80;\n            if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }\n            local_ac = (undefined4 *****)((int)local_ac + 3);\n            pcVar24 = local_38 + 2;\n            local_38[1] = cVar37;\n            local_38 = local_38 + 3;\n            *pcVar24 = cVar28;\n          }" ({ "{") (expression_statement "iVar21 = (int)pppppuVar17 - 1;" (assignment_expression "iVar21 = (int)pppppuVar17 - 1" (identifier "iVar21") (= "=") (binary_expression "(int)pppppuVar17 - 1" (cast_expression "(int)pppppuVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppuVar17")) (- "-") (number_literal "1"))) (; ";")) (if_statement "if (iVar21 < 0x10) {\n              pppppuVar17 = (undefined4 *****)0x0;\n            }\n            else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }" (if "if") (parenthesized_expression "(iVar21 < 0x10)" (( "(") (binary_expression "iVar21 < 0x10" (identifier "iVar21") (< "<") (number_literal "0x10")) () ")")) (compound_statement "{\n              pppppuVar17 = (undefined4 *****)0x0;\n            }" ({ "{") (expression_statement "pppppuVar17 = (undefined4 *****)0x0;" (assignment_expression "pppppuVar17 = (undefined4 *****)0x0" (identifier "pppppuVar17") (= "=") (cast_expression "(undefined4 *****)0x0" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }" (else "else") (compound_statement "{\n              pppppuVar17 = pppppuVar17 + -4;\n              iVar21 = 0xf;\n            }" ({ "{") (expression_statement "pppppuVar17 = pppppuVar17 + -4;" (assignment_expression "pppppuVar17 = pppppuVar17 + -4" (identifier "pppppuVar17") (= "=") (binary_expression "pppppuVar17 + -4" (identifier "pppppuVar17") (+ "+") (number_literal "-4"))) (; ";")) (expression_statement "iVar21 = 0xf;" (assignment_expression "iVar21 = 0xf" (identifier "iVar21") (= "=") (number_literal "0xf")) (; ";")) (} "}")))) (if_statement "if (iVar15 + 7U < 0xf) {\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }" (if "if") (parenthesized_expression "(iVar15 + 7U < 0xf)" (( "(") (binary_expression "iVar15 + 7U < 0xf" (binary_expression "iVar15 + 7U" (identifier "iVar15") (+ "+") (number_literal "7U")) (< "<") (number_literal "0xf")) () ")")) (compound_statement "{\n              if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }\n              local_ac = (undefined4 *****)((int)local_ac + 1);\n              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;\n              local_38 = local_38 + 1;\n              break;\n            }" ({ "{") (if_statement "if (pcVar1 <= local_38) {\n                local_38 = (char *)FUN_0001ff00(1);\n              }" (if "if") (parenthesized_expression "(pcVar1 <= local_38)" (( "(") (binary_expression "pcVar1 <= local_38" (identifier "pcVar1") (<= "<=") (identifier "local_38")) () ")")) (compound_statement "{\n                local_38 = (char *)FUN_0001ff00(1);\n              }" ({ "{") (expression_statement "local_38 = (char *)FUN_0001ff00(1);" (assignment_expression "local_38 = (char *)FUN_0001ff00(1)" (identifier "local_38") (= "=") (cast_expression "(char *)FUN_0001ff00(1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001ff00(1)" (identifier "FUN_0001ff00") (argument_list "(1)" (( "(") (number_literal "1") () ")"))))) (; ";")) (} "}"))) (expression_statement "local_ac = (undefined4 *****)((int)local_ac + 1);" (assignment_expression "local_ac = (undefined4 *****)((int)local_ac + 1)" (identifier "local_ac") (= "=") (cast_expression "(undefined4 *****)((int)local_ac + 1)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)local_ac + 1)" (( "(") (binary_expression "(int)local_ac + 1" (cast_expression "(int)local_ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_ac")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*local_38 = (char)iVar15 * '\x10' + (char)iVar21;" (assignment_expression "*local_38 = (char)iVar15 * '\x10' + (char)iVar21" (pointer_expression "*local_38" (* "*") (identifier "local_38")) (= "=") (binary_expression "(char)iVar15 * '\x10' + (char)iVar21" (binary_expression "(char)iVar15 * '\x10'" (cast_expression "(char)iVar15" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "iVar15")) (* "*") (char_literal "'\x10'" (' "'") (escape_sequence "\x10") (' "'"))) (+ "+") (cast_expression "(char)iVar21" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "iVar21")))) (; ";")) (expression_statement "local_38 = local_38 + 1;" (assignment_expression "local_38 = local_38 + 1" (identifier "local_38") (= "=") (binary_expression "local_38 + 1" (identifier "local_38") (+ "+") (number_literal "1"))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (if_statement "if ((int)pcVar1 - (int)local_38 < 3) {\n              local_38 = (char *)FUN_0001ff00(3);\n            }" (if "if") (parenthesized_expression "((int)pcVar1 - (int)local_38 < 3)" (( "(") (binary_expression "(int)pcVar1 - (int)local_38 < 3" (binary_expression "(int)pcVar1 - (int)local_38" (cast_expression "(int)pcVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar1")) (- "-") (cast_expression "(int)local_38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_38"))) (< "<") (number_literal "3")) () ")")) (compound_statement "{\n              local_38 = (char *)FUN_0001ff00(3);\n            }" ({ "{") (expression_statement "local_38 = (char *)FUN_0001ff00(3);" (assignment_expression "local_38 = (char *)FUN_0001ff00(3)" (identifier "local_38") (= "=") (cast_expression "(char *)FUN_0001ff00(3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001ff00(3)" (identifier "FUN_0001ff00") (argument_list "(3)" (( "(") (number_literal "3") () ")"))))) (; ";")) (} "}"))) (expression_statement "*local_38 = (char)iVar21 + -0x80;" (assignment_expression "*local_38 = (char)iVar21 + -0x80" (pointer_expression "*local_38" (* "*") (identifier "local_38")) (= "=") (binary_expression "(char)iVar21 + -0x80" (cast_expression "(char)iVar21" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "iVar21")) (+ "+") (number_literal "-0x80"))) (; ";")) (if_statement "if (iVar15 < -0x8000) {\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }\n            else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }" (if "if") (parenthesized_expression "(iVar15 < -0x8000)" (( "(") (binary_expression "iVar15 < -0x8000" (identifier "iVar15") (< "<") (number_literal "-0x8000")) () ")")) (compound_statement "{\n              iVar15 = iVar15 + 0x8000;\n              cVar37 = -0x80;\n              cVar28 = '\0';\n            }" ({ "{") (expression_statement "iVar15 = iVar15 + 0x8000;" (assignment_expression "iVar15 = iVar15 + 0x8000" (identifier "iVar15") (= "=") (binary_expression "iVar15 + 0x8000" (identifier "iVar15") (+ "+") (number_literal "0x8000"))) (; ";")) (expression_statement "cVar37 = -0x80;" (assignment_expression "cVar37 = -0x80" (identifier "cVar37") (= "=") (number_literal "-0x80")) (; ";")) (expression_statement "cVar28 = '\0';" (assignment_expression "cVar28 = '\0'" (identifier "cVar28") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}")) (else_clause "else {\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }" (else "else") (compound_statement "{\n              if (iVar15 < 0x8000) goto code_r0x00024a60;\n              iVar15 = iVar15 + -0x7fff;\n              cVar37 = '\x7f';\n              cVar28 = -1;\n            }" ({ "{") (if_statement "if (iVar15 < 0x8000) goto code_r0x00024a60;" (if "if") (parenthesized_expression "(iVar15 < 0x8000)" (( "(") (binary_expression "iVar15 < 0x8000" (identifier "iVar15") (< "<") (number_literal "0x8000")) () ")")) (goto_statement "goto code_r0x00024a60;" (goto "goto") (statement_identifier "code_r0x00024a60") (; ";"))) (expression_statement "iVar15 = iVar15 + -0x7fff;" (assignment_expression "iVar15 = iVar15 + -0x7fff" (identifier "iVar15") (= "=") (binary_expression "iVar15 + -0x7fff" (identifier "iVar15") (+ "+") (number_literal "-0x7fff"))) (; ";")) (expression_statement "cVar37 = '\x7f';" (assignment_expression "cVar37 = '\x7f'" (identifier "cVar37") (= "=") (char_literal "'\x7f'" (' "'") (escape_sequence "\x7f") (' "'"))) (; ";")) (expression_statement "cVar28 = -1;" (assignment_expression "cVar28 = -1" (identifier "cVar28") (= "=") (number_literal "-1")) (; ";")) (} "}")))) (expression_statement "local_ac = (undefined4 *****)((int)local_ac + 3);" (assignment_expression "local_ac = (undefined4 *****)((int)local_ac + 3)" (identifier "local_ac") (= "=") (cast_expression "(undefined4 *****)((int)local_ac + 3)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)local_ac + 3)" (( "(") (binary_expression "(int)local_ac + 3" (cast_expression "(int)local_ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_ac")) (+ "+") (number_literal "3")) () ")")))) (; ";")) (expression_statement "pcVar24 = local_38 + 2;" (assignment_expression "pcVar24 = local_38 + 2" (identifier "pcVar24") (= "=") (binary_expression "local_38 + 2" (identifier "local_38") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "local_38[1] = cVar37;" (assignment_expression "local_38[1] = cVar37" (subscript_expression "local_38[1]" (identifier "local_38") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "cVar37")) (; ";")) (expression_statement "local_38 = local_38 + 3;" (assignment_expression "local_38 = local_38 + 3" (identifier "local_38") (= "=") (binary_expression "local_38 + 3" (identifier "local_38") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "*pcVar24 = cVar28;" (assignment_expression "*pcVar24 = cVar28" (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) (= "=") (identifier "cVar28")) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        bVar41 = local_98 != local_a8;\n        if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }\n        pppppuVar18 = (undefined4 *****)0x0;\n        if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }\n        ppppppuVar27[8] = pppppuVar18;\n        ppppppuVar27[0x12] = local_ac;\n        ppppppuVar27[0x13] = (undefined4 *****)0x0;\n        local_a0 = ppppppuVar27;\n        if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }" (else "else") (compound_statement "{\n        bVar41 = local_98 != local_a8;\n        if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }\n        pppppuVar18 = (undefined4 *****)0x0;\n        if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }\n        ppppppuVar27[8] = pppppuVar18;\n        ppppppuVar27[0x12] = local_ac;\n        ppppppuVar27[0x13] = (undefined4 *****)0x0;\n        local_a0 = ppppppuVar27;\n        if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }\n      }" ({ "{") (expression_statement "bVar41 = local_98 != local_a8;" (assignment_expression "bVar41 = local_98 != local_a8" (identifier "bVar41") (= "=") (binary_expression "local_98 != local_a8" (identifier "local_98") (!= "!=") (identifier "local_a8"))) (; ";")) (if_statement "if (local_98 != (undefined4 ******)0x0 && bVar41) {\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }" (if "if") (parenthesized_expression "(local_98 != (undefined4 ******)0x0 && bVar41)" (( "(") (binary_expression "local_98 != (undefined4 ******)0x0 && bVar41" (binary_expression "local_98 != (undefined4 ******)0x0" (identifier "local_98") (!= "!=") (cast_expression "(undefined4 ******)0x0" (( "(") (type_descriptor "undefined4 ******" (type_identifier "undefined4") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (&& "&&") (identifier "bVar41")) () ")")) (compound_statement "{\n          local_98[0xd] = local_94[5];\n          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;\n        }" ({ "{") (expression_statement "local_98[0xd] = local_94[5];" (assignment_expression "local_98[0xd] = local_94[5]" (subscript_expression "local_98[0xd]" (identifier "local_98") ([ "[") (number_literal "0xd") (] "]")) (= "=") (subscript_expression "local_94[5]" (identifier "local_94") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;" (assignment_expression "bVar41 = local_98 != (undefined4 ******)0x0 && bVar41" (identifier "bVar41") (= "=") (binary_expression "local_98 != (undefined4 ******)0x0 && bVar41" (binary_expression "local_98 != (undefined4 ******)0x0" (identifier "local_98") (!= "!=") (cast_expression "(undefined4 ******)0x0" (( "(") (type_descriptor "undefined4 ******" (type_identifier "undefined4") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (&& "&&") (identifier "bVar41"))) (; ";")) (} "}"))) (expression_statement "pppppuVar18 = (undefined4 *****)0x0;" (assignment_expression "pppppuVar18 = (undefined4 *****)0x0" (identifier "pppppuVar18") (= "=") (cast_expression "(undefined4 *****)0x0" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (local_a0 != (undefined4 ******)0x0) {\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }" (if "if") (parenthesized_expression "(local_a0 != (undefined4 ******)0x0)" (( "(") (binary_expression "local_a0 != (undefined4 ******)0x0" (identifier "local_a0") (!= "!=") (cast_expression "(undefined4 ******)0x0" (( "(") (type_descriptor "undefined4 ******" (type_identifier "undefined4") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          local_9c = (undefined4 *****)0x0;\n          local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n          local_a0[9] = local_a4;\n          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;\n          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);\n          local_a4 = pppppuVar17;\n        }" ({ "{") (expression_statement "local_9c = (undefined4 *****)0x0;" (assignment_expression "local_9c = (undefined4 *****)0x0" (identifier "local_9c") (= "=") (cast_expression "(undefined4 *****)0x0" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);" (assignment_expression "local_a0[0x15] =\n               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13])" (subscript_expression "local_a0[0x15]" (identifier "local_a0") ([ "[") (number_literal "0x15") (] "]")) (= "=") (cast_expression "(undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13])" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13])" (( "(") (binary_expression "-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]" (unary_expression "-(uint)(local_ac < local_a0[0x12])" (- "-") (call_expression "(uint)(local_ac < local_a0[0x12])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_ac < local_a0[0x12])" (( "(") (binary_expression "local_ac < local_a0[0x12]" (identifier "local_ac") (< "<") (subscript_expression "local_a0[0x12]" (identifier "local_a0") ([ "[") (number_literal "0x12") (] "]"))) () ")")))) (- "-") (cast_expression "(int)local_a0[0x13]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "local_a0[0x13]" (identifier "local_a0") ([ "[") (number_literal "0x13") (] "]")))) () ")")))) (; ";")) (expression_statement "local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);" (assignment_expression "local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12])" (subscript_expression "local_a0[0x14]" (identifier "local_a0") ([ "[") (number_literal "0x14") (] "]")) (= "=") (cast_expression "(undefined4 *****)((int)local_ac - (int)local_a0[0x12])" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)local_ac - (int)local_a0[0x12])" (( "(") (binary_expression "(int)local_ac - (int)local_a0[0x12]" (cast_expression "(int)local_ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_ac")) (- "-") (cast_expression "(int)local_a0[0x12]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "local_a0[0x12]" (identifier "local_a0") ([ "[") (number_literal "0x12") (] "]")))) () ")")))) (; ";")) (expression_statement "local_a0[9] = local_a4;" (assignment_expression "local_a0[9] = local_a4" (subscript_expression "local_a0[9]" (identifier "local_a0") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "local_a4")) (; ";")) (expression_statement "*(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;" (assignment_expression "*(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 4) + (int)local_a4" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (+ "+") (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")))) (; ";")) (expression_statement "pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);" (assignment_expression "pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8])" (identifier "pppppuVar18") (= "=") (cast_expression "(undefined4 *****)((int)local_a0[9] + (int)local_a0[8])" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)local_a0[9] + (int)local_a0[8])" (( "(") (binary_expression "(int)local_a0[9] + (int)local_a0[8]" (cast_expression "(int)local_a0[9]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "local_a0[9]" (identifier "local_a0") ([ "[") (number_literal "9") (] "]"))) (+ "+") (cast_expression "(int)local_a0[8]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "local_a0[8]" (identifier "local_a0") ([ "[") (number_literal "8") (] "]")))) () ")")))) (; ";")) (expression_statement "local_a4 = pppppuVar17;" (assignment_expression "local_a4 = pppppuVar17" (identifier "local_a4") (= "=") (identifier "pppppuVar17")) (; ";")) (} "}"))) (expression_statement "ppppppuVar27[8] = pppppuVar18;" (assignment_expression "ppppppuVar27[8] = pppppuVar18" (subscript_expression "ppppppuVar27[8]" (identifier "ppppppuVar27") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "pppppuVar18")) (; ";")) (expression_statement "ppppppuVar27[0x12] = local_ac;" (assignment_expression "ppppppuVar27[0x12] = local_ac" (subscript_expression "ppppppuVar27[0x12]" (identifier "ppppppuVar27") ([ "[") (number_literal "0x12") (] "]")) (= "=") (identifier "local_ac")) (; ";")) (expression_statement "ppppppuVar27[0x13] = (undefined4 *****)0x0;" (assignment_expression "ppppppuVar27[0x13] = (undefined4 *****)0x0" (subscript_expression "ppppppuVar27[0x13]" (identifier "ppppppuVar27") ([ "[") (number_literal "0x13") (] "]")) (= "=") (cast_expression "(undefined4 *****)0x0" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_a0 = ppppppuVar27;" (assignment_expression "local_a0 = ppppppuVar27" (identifier "local_a0") (= "=") (identifier "ppppppuVar27")) (; ";")) (if_statement "if (bVar41) {\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }\n        else {\n          local_a8 = local_98;\n        }" (if "if") (parenthesized_expression "(bVar41)" (( "(") (identifier "bVar41") () ")")) (compound_statement "{\nLAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }\n        }" ({ "{") (labeled_statement "LAB_000238a1:\n          if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }" (statement_identifier "LAB_000238a1") (: ":") (if_statement "if (local_a8 != (undefined4 ******)0x0) {\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }" (if "if") (parenthesized_expression "(local_a8 != (undefined4 ******)0x0)" (( "(") (binary_expression "local_a8 != (undefined4 ******)0x0" (identifier "local_a8") (!= "!=") (cast_expression "(undefined4 ******)0x0" (( "(") (type_descriptor "undefined4 ******" (type_identifier "undefined4") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            local_a8[0xc] = local_b4[5];\n            pppppuVar18 = local_a0[0x12];\n            pppppuVar4 = local_a0[0x13];\n            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);\n            local_a8[4] = local_9c;\n          }" ({ "{") (expression_statement "local_a8[0xc] = local_b4[5];" (assignment_expression "local_a8[0xc] = local_b4[5]" (subscript_expression "local_a8[0xc]" (identifier "local_a8") ([ "[") (number_literal "0xc") (] "]")) (= "=") (subscript_expression "local_b4[5]" (identifier "local_b4") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "pppppuVar18 = local_a0[0x12];" (assignment_expression "pppppuVar18 = local_a0[0x12]" (identifier "pppppuVar18") (= "=") (subscript_expression "local_a0[0x12]" (identifier "local_a0") ([ "[") (number_literal "0x12") (] "]"))) (; ";")) (expression_statement "pppppuVar4 = local_a0[0x13];" (assignment_expression "pppppuVar4 = local_a0[0x13]" (identifier "pppppuVar4") (= "=") (subscript_expression "local_a0[0x13]" (identifier "local_a0") ([ "[") (number_literal "0x13") (] "]"))) (; ";")) (expression_statement "local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);" (assignment_expression "local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12])" (subscript_expression "local_a8[0xe]" (identifier "local_a8") ([ "[") (number_literal "0xe") (] "]")) (= "=") (cast_expression "(undefined4 *****)((int)local_ac - (int)local_a0[0x12])" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)local_ac - (int)local_a0[0x12])" (( "(") (binary_expression "(int)local_ac - (int)local_a0[0x12]" (cast_expression "(int)local_ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_ac")) (- "-") (cast_expression "(int)local_a0[0x12]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "local_a0[0x12]" (identifier "local_a0") ([ "[") (number_literal "0x12") (] "]")))) () ")")))) (; ";")) (expression_statement "local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);" (assignment_expression "local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4)" (subscript_expression "local_a8[0xf]" (identifier "local_a8") ([ "[") (number_literal "0xf") (] "]")) (= "=") (cast_expression "(undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4)" (( "(") (binary_expression "-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4" (unary_expression "-(uint)(local_ac < pppppuVar18)" (- "-") (call_expression "(uint)(local_ac < pppppuVar18)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_ac < pppppuVar18)" (( "(") (binary_expression "local_ac < pppppuVar18" (identifier "local_ac") (< "<") (identifier "pppppuVar18")) () ")")))) (- "-") (cast_expression "(int)pppppuVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppuVar4"))) () ")")))) (; ";")) (expression_statement "local_a8[4] = local_9c;" (assignment_expression "local_a8[4] = local_9c" (subscript_expression "local_a8[4]" (identifier "local_a8") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "local_9c")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          local_a8 = local_98;\n        }" (else "else") (compound_statement "{\n          local_a8 = local_98;\n        }" ({ "{") (expression_statement "local_a8 = local_98;" (assignment_expression "local_a8 = local_98" (identifier "local_a8") (= "=") (identifier "local_98")) (; ";")) (} "}")))) (} "}")))) (goto_statement "goto LAB_000238d0;" (goto "goto") (statement_identifier "LAB_000238d0") (; ";")) (} "}"))) (expression_statement "ppppppuVar27 = pppppppuVar30[3];" (assignment_expression "ppppppuVar27 = pppppppuVar30[3]" (identifier "ppppppuVar27") (= "=") (subscript_expression "pppppppuVar30[3]" (identifier "pppppppuVar30") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "uVar33 = (int)pppppppuVar30[4] + (int)*ppppppuVar27;" (assignment_expression "uVar33 = (int)pppppppuVar30[4] + (int)*ppppppuVar27" (identifier "uVar33") (= "=") (binary_expression "(int)pppppppuVar30[4] + (int)*ppppppuVar27" (cast_expression "(int)pppppppuVar30[4]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppuVar30[4]" (identifier "pppppppuVar30") ([ "[") (number_literal "4") (] "]"))) (+ "+") (cast_expression "(int)*ppppppuVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*ppppppuVar27" (* "*") (identifier "ppppppuVar27"))))) (; ";")) (expression_statement "uVar38 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27);" (assignment_expression "uVar38 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27)" (identifier "uVar38") (= "=") (binary_expression "(int)ppppppuVar27[1] + (uint)CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27)" (cast_expression "(int)ppppppuVar27[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppppppuVar27[1]" (identifier "ppppppuVar27") ([ "[") (number_literal "1") (] "]"))) (+ "+") (cast_expression "(uint)CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27)" (identifier "CARRY4") (argument_list "((uint)pppppppuVar30[4],(uint)*ppppppuVar27)" (( "(") (cast_expression "(uint)pppppppuVar30[4]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pppppppuVar30[4]" (identifier "pppppppuVar30") ([ "[") (number_literal "4") (] "]"))) (, ",") (binary_expression "(uint)*ppppppuVar27" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "ppppppuVar27")) () ")")))))) (; ";")) (expression_statement "ppppppuVar27 = local_b4[3];" (assignment_expression "ppppppuVar27 = local_b4[3]" (identifier "ppppppuVar27") (= "=") (subscript_expression "local_b4[3]" (identifier "local_b4") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "uVar16 = (int)local_b4[4] + (int)*ppppppuVar27;" (assignment_expression "uVar16 = (int)local_b4[4] + (int)*ppppppuVar27" (identifier "uVar16") (= "=") (binary_expression "(int)local_b4[4] + (int)*ppppppuVar27" (cast_expression "(int)local_b4[4]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "local_b4[4]" (identifier "local_b4") ([ "[") (number_literal "4") (] "]"))) (+ "+") (cast_expression "(int)*ppppppuVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*ppppppuVar27" (* "*") (identifier "ppppppuVar27"))))) (; ";")) (expression_statement "uVar32 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)local_b4[4],(uint)*ppppppuVar27);" (assignment_expression "uVar32 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)local_b4[4],(uint)*ppppppuVar27)" (identifier "uVar32") (= "=") (binary_expression "(int)ppppppuVar27[1] + (uint)CARRY4((uint)local_b4[4],(uint)*ppppppuVar27)" (cast_expression "(int)ppppppuVar27[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppppppuVar27[1]" (identifier "ppppppuVar27") ([ "[") (number_literal "1") (] "]"))) (+ "+") (cast_expression "(uint)CARRY4((uint)local_b4[4],(uint)*ppppppuVar27)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4((uint)local_b4[4],(uint)*ppppppuVar27)" (identifier "CARRY4") (argument_list "((uint)local_b4[4],(uint)*ppppppuVar27)" (( "(") (cast_expression "(uint)local_b4[4]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_b4[4]" (identifier "local_b4") ([ "[") (number_literal "4") (] "]"))) (, ",") (binary_expression "(uint)*ppppppuVar27" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "ppppppuVar27")) () ")")))))) (; ";")) (if_statement "if (uVar32 < uVar38 || uVar32 - uVar38 < (uint)(uVar16 < uVar33)) {\n      pppppuVar17 = (undefined4 *****)\n                    (uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000);\n      goto LAB_000237e1;\n    }" (if "if") (parenthesized_expression "(uVar32 < uVar38 || uVar32 - uVar38 < (uint)(uVar16 < uVar33))" (( "(") (binary_expression "uVar32 < uVar38 || uVar32 - uVar38 < (uint)(uVar16 < uVar33)" (binary_expression "uVar32 < uVar38" (identifier "uVar32") (< "<") (identifier "uVar38")) (|| "||") (binary_expression "uVar32 - uVar38 < (uint)(uVar16 < uVar33)" (binary_expression "uVar32 - uVar38" (identifier "uVar32") (- "-") (identifier "uVar38")) (< "<") (call_expression "(uint)(uVar16 < uVar33)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar16 < uVar33)" (( "(") (binary_expression "uVar16 < uVar33" (identifier "uVar16") (< "<") (identifier "uVar33")) () ")"))))) () ")")) (compound_statement "{\n      pppppuVar17 = (undefined4 *****)\n                    (uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000);\n      goto LAB_000237e1;\n    }" ({ "{") (expression_statement "pppppuVar17 = (undefined4 *****)\n                    (uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000);" (assignment_expression "pppppuVar17 = (undefined4 *****)\n                    (uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000)" (identifier "pppppuVar17") (= "=") (cast_expression "(undefined4 *****)\n                    (uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000)" (( "(") (binary_expression "uVar33 - uVar16 >> 2 |\n                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000" (binary_expression "uVar33 - uVar16 >> 2" (binary_expression "uVar33 - uVar16" (identifier "uVar33") (- "-") (identifier "uVar16")) (>> ">>") (number_literal "2")) (| "|") (binary_expression "((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000" (parenthesized_expression "((uVar38 - uVar32) - (uint)(uVar33 < uVar16))" (( "(") (binary_expression "(uVar38 - uVar32) - (uint)(uVar33 < uVar16)" (parenthesized_expression "(uVar38 - uVar32)" (( "(") (binary_expression "uVar38 - uVar32" (identifier "uVar38") (- "-") (identifier "uVar32")) () ")")) (- "-") (call_expression "(uint)(uVar33 < uVar16)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar33 < uVar16)" (( "(") (binary_expression "uVar33 < uVar16" (identifier "uVar33") (< "<") (identifier "uVar16")) () ")")))) () ")")) (* "*") (number_literal "0x40000000"))) () ")")))) (; ";")) (goto_statement "goto LAB_000237e1;" (goto "goto") (statement_identifier "LAB_000237e1") (; ";")) (} "}"))) (goto_statement "goto LAB_000237a0;" (goto "goto") (statement_identifier "LAB_000237a0") (; ";")) (} "}"))))) (expression_statement "local_a4 = (undefined4 *****)0x0;" (assignment_expression "local_a4 = (undefined4 *****)0x0" (identifier "local_a4") (= "=") (cast_expression "(undefined4 *****)0x0" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_ac = (undefined4 *****)0x0;" (assignment_expression "local_ac = (undefined4 *****)0x0" (identifier "local_ac") (= "=") (cast_expression "(undefined4 *****)0x0" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_00023a3f:\n  *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;" (statement_identifier "LAB_00023a3f") (: ":") (expression_statement "*(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;" (assignment_expression "*(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 4) + (int)local_a4" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (+ "+") (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")))) (; ";"))) (expression_statement "local_68 = FUN_0001ff70(local_ac,&local_38);" (assignment_expression "local_68 = FUN_0001ff70(local_ac,&local_38)" (identifier "local_68") (= "=") (call_expression "FUN_0001ff70(local_ac,&local_38)" (identifier "FUN_0001ff70") (argument_list "(local_ac,&local_38)" (( "(") (identifier "local_ac") (, ",") (pointer_expression "&local_38" (& "&") (identifier "local_38")) () ")")))) (; ";")) (expression_statement "*(uint *)(param_1 + 0x28) = local_68;" (assignment_expression "*(uint *)(param_1 + 0x28) = local_68" (pointer_expression "*(uint *)(param_1 + 0x28)" (* "*") (cast_expression "(uint *)(param_1 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "local_68")) (; ";")) (expression_statement "*(uint *)(param_1 + 8) = local_68 - *(uint *)(param_1 + 0x10);" (assignment_expression "*(uint *)(param_1 + 8) = local_68 - *(uint *)(param_1 + 0x10)" (pointer_expression "*(uint *)(param_1 + 8)" (* "*") (cast_expression "(uint *)(param_1 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "local_68 - *(uint *)(param_1 + 0x10)" (identifier "local_68") (- "-") (pointer_expression "*(uint *)(param_1 + 0x10)" (* "*") (cast_expression "(uint *)(param_1 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))))) (; ";")) (expression_statement "uVar16 = DAT_00080ca4;" (assignment_expression "uVar16 = DAT_00080ca4" (identifier "uVar16") (= "=") (identifier "DAT_00080ca4")) (; ";")) (expression_statement "*(uint *)(param_1 + 0xc) =\n       -(uint)(local_68 < *(uint *)(param_1 + 0x10)) - *(int *)(param_1 + 0x14);" (assignment_expression "*(uint *)(param_1 + 0xc) =\n       -(uint)(local_68 < *(uint *)(param_1 + 0x10)) - *(int *)(param_1 + 0x14)" (pointer_expression "*(uint *)(param_1 + 0xc)" (* "*") (cast_expression "(uint *)(param_1 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "-(uint)(local_68 < *(uint *)(param_1 + 0x10)) - *(int *)(param_1 + 0x14)" (unary_expression "-(uint)(local_68 < *(uint *)(param_1 + 0x10))" (- "-") (call_expression "(uint)(local_68 < *(uint *)(param_1 + 0x10))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_68 < *(uint *)(param_1 + 0x10))" (( "(") (binary_expression "local_68 < *(uint *)(param_1 + 0x10)" (identifier "local_68") (< "<") (pointer_expression "*(uint *)(param_1 + 0x10)" (* "*") (cast_expression "(uint *)(param_1 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) () ")")))) (- "-") (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x2c) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x18) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x18)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x20) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x20) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x20)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(uint *)(param_1 + 0x24) = uVar16;" (assignment_expression "*(uint *)(param_1 + 0x24) = uVar16" (pointer_expression "*(uint *)(param_1 + 0x24)" (* "*") (cast_expression "(uint *)(param_1 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (identifier "uVar16")) (; ";")) (expression_statement "uVar32 = (int)pcVar1 - (int)(pcVar14 + local_68) >> 0x1f;" (assignment_expression "uVar32 = (int)pcVar1 - (int)(pcVar14 + local_68) >> 0x1f" (identifier "uVar32") (= "=") (binary_expression "(int)pcVar1 - (int)(pcVar14 + local_68) >> 0x1f" (binary_expression "(int)pcVar1 - (int)(pcVar14 + local_68)" (cast_expression "(int)pcVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar1")) (- "-") (cast_expression "(int)(pcVar14 + local_68)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar14 + local_68)" (( "(") (binary_expression "pcVar14 + local_68" (identifier "pcVar14") (+ "+") (identifier "local_68")) () ")")))) (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar33 = (int)((ulonglong)uVar36 * (ulonglong)uVar16 >> 0x20) + iVar26 * uVar16;" (assignment_expression "uVar33 = (int)((ulonglong)uVar36 * (ulonglong)uVar16 >> 0x20) + iVar26 * uVar16" (identifier "uVar33") (= "=") (binary_expression "(int)((ulonglong)uVar36 * (ulonglong)uVar16 >> 0x20) + iVar26 * uVar16" (cast_expression "(int)((ulonglong)uVar36 * (ulonglong)uVar16 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar36 * (ulonglong)uVar16 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar36 * (ulonglong)uVar16 >> 0x20" (binary_expression "(ulonglong)uVar36 * (ulonglong)uVar16" (cast_expression "(ulonglong)uVar36" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar36")) (* "*") (cast_expression "(ulonglong)uVar16" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar16"))) (>> ">>") (number_literal "0x20")) () ")"))) (+ "+") (binary_expression "iVar26 * uVar16" (identifier "iVar26") (* "*") (identifier "uVar16")))) (; ";")) (if_statement "if (uVar32 < uVar33 ||\n      uVar32 - uVar33 <\n      (uint)((uint)((int)pcVar1 - (int)(pcVar14 + local_68)) <\n            (uint)((ulonglong)uVar36 * (ulonglong)uVar16))) {\n    FUN_0001ff00(uVar16 * uVar36);\n    uVar16 = DAT_00080ca4;\n  }" (if "if") (parenthesized_expression "(uVar32 < uVar33 ||\n      uVar32 - uVar33 <\n      (uint)((uint)((int)pcVar1 - (int)(pcVar14 + local_68)) <\n            (uint)((ulonglong)uVar36 * (ulonglong)uVar16)))" (( "(") (binary_expression "uVar32 < uVar33 ||\n      uVar32 - uVar33 <\n      (uint)((uint)((int)pcVar1 - (int)(pcVar14 + local_68)) <\n            (uint)((ulonglong)uVar36 * (ulonglong)uVar16))" (binary_expression "uVar32 < uVar33" (identifier "uVar32") (< "<") (identifier "uVar33")) (|| "||") (binary_expression "uVar32 - uVar33 <\n      (uint)((uint)((int)pcVar1 - (int)(pcVar14 + local_68)) <\n            (uint)((ulonglong)uVar36 * (ulonglong)uVar16))" (binary_expression "uVar32 - uVar33" (identifier "uVar32") (- "-") (identifier "uVar33")) (< "<") (call_expression "(uint)((uint)((int)pcVar1 - (int)(pcVar14 + local_68)) <\n            (uint)((ulonglong)uVar36 * (ulonglong)uVar16))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uint)((int)pcVar1 - (int)(pcVar14 + local_68)) <\n            (uint)((ulonglong)uVar36 * (ulonglong)uVar16))" (( "(") (binary_expression "(uint)((int)pcVar1 - (int)(pcVar14 + local_68)) <\n            (uint)((ulonglong)uVar36 * (ulonglong)uVar16)" (call_expression "(uint)((int)pcVar1 - (int)(pcVar14 + local_68))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pcVar1 - (int)(pcVar14 + local_68))" (( "(") (binary_expression "(int)pcVar1 - (int)(pcVar14 + local_68)" (cast_expression "(int)pcVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar1")) (- "-") (cast_expression "(int)(pcVar14 + local_68)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar14 + local_68)" (( "(") (binary_expression "pcVar14 + local_68" (identifier "pcVar14") (+ "+") (identifier "local_68")) () ")")))) () ")"))) (< "<") (call_expression "(uint)((ulonglong)uVar36 * (ulonglong)uVar16)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)uVar36 * (ulonglong)uVar16)" (( "(") (binary_expression "(ulonglong)uVar36 * (ulonglong)uVar16" (cast_expression "(ulonglong)uVar36" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar36")) (* "*") (cast_expression "(ulonglong)uVar16" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar16"))) () ")")))) () ")"))))) () ")")) (compound_statement "{\n    FUN_0001ff00(uVar16 * uVar36);\n    uVar16 = DAT_00080ca4;\n  }" ({ "{") (expression_statement "FUN_0001ff00(uVar16 * uVar36);" (call_expression "FUN_0001ff00(uVar16 * uVar36)" (identifier "FUN_0001ff00") (argument_list "(uVar16 * uVar36)" (( "(") (binary_expression "uVar16 * uVar36" (identifier "uVar16") (* "*") (identifier "uVar36")) () ")"))) (; ";")) (expression_statement "uVar16 = DAT_00080ca4;" (assignment_expression "uVar16 = DAT_00080ca4" (identifier "uVar16") (= "=") (identifier "DAT_00080ca4")) (; ";")) (} "}"))) (expression_statement "local_68 = uVar16 * uVar36 + local_68;" (assignment_expression "local_68 = uVar16 * uVar36 + local_68" (identifier "local_68") (= "=") (binary_expression "uVar16 * uVar36 + local_68" (binary_expression "uVar16 * uVar36" (identifier "uVar16") (* "*") (identifier "uVar36")) (+ "+") (identifier "local_68"))) (; ";")) (expression_statement "uVar36 = *(uint *)(param_3 + 0x24);" (assignment_expression "uVar36 = *(uint *)(param_3 + 0x24)" (identifier "uVar36") (= "=") (pointer_expression "*(uint *)(param_3 + 0x24)" (* "*") (cast_expression "(uint *)(param_3 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x24)" (( "(") (binary_expression "param_3 + 0x24" (identifier "param_3") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "local_a0 = (undefined4 ******)(pcVar14 + local_68);" (assignment_expression "local_a0 = (undefined4 ******)(pcVar14 + local_68)" (identifier "local_a0") (= "=") (cast_expression "(undefined4 ******)(pcVar14 + local_68)" (( "(") (type_descriptor "undefined4 ******" (type_identifier "undefined4") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(pcVar14 + local_68)" (( "(") (binary_expression "pcVar14 + local_68" (identifier "pcVar14") (+ "+") (identifier "local_68")) () ")")))) (; ";")) (expression_statement "*(uint *)(param_1 + 0x34) = local_68;" (assignment_expression "*(uint *)(param_1 + 0x34) = local_68" (pointer_expression "*(uint *)(param_1 + 0x34)" (* "*") (cast_expression "(uint *)(param_1 + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (identifier "local_68")) (; ";")) (expression_statement "uVar16 = *(uint *)(param_3 + 0x28);" (assignment_expression "uVar16 = *(uint *)(param_3 + 0x28)" (identifier "uVar16") (= "=") (pointer_expression "*(uint *)(param_3 + 0x28)" (* "*") (cast_expression "(uint *)(param_3 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x28)" (( "(") (binary_expression "param_3 + 0x28" (identifier "param_3") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x38) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x38) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x38)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar5 = *(code **)(param_3 + 0x80);" (assignment_expression "pcVar5 = *(code **)(param_3 + 0x80)" (identifier "pcVar5") (= "=") (pointer_expression "*(code **)(param_3 + 0x80)" (* "*") (cast_expression "(code **)(param_3 + 0x80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + 0x80)" (( "(") (binary_expression "param_3 + 0x80" (identifier "param_3") (+ "+") (number_literal "0x80")) () ")"))))) (; ";")) (if_statement "if (DAT_00078240 != 0) {\n    local_8c = 0;\n    puVar20 = (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0x180);\n    iVar26 = DAT_00078240;\nLAB_00023b80:\n    local_5c = iVar26;\n    local_9c = *(undefined4 ******)(local_5c + 8);\n    if (*(int *)(local_5c + 4) == 0) {\n      local_54 = (uint)DAT_00078250 * 0x294 + (int)local_9c;\n      if (local_54 <= local_9c) {\n        local_68 = local_68 + local_8c * uVar36;\n        uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28));\n        goto LAB_0002441d;\n      }\n    }\n    else {\n      local_54 = (uint)DAT_0007824e * 0x294 + (int)local_9c;\n      iVar26 = *(int *)(local_5c + 4);\n      if (local_54 <= local_9c) goto LAB_00023b80;\n    }\nLAB_00023bb7:\n    *(int *)((int)local_9c + 0x18) = local_8c;\n    iVar26 = *(int *)((int)local_9c + 0x8c);\n    if (iVar26 != 0) {\n      local_a8 = (undefined4 ******)local_8c;\nLAB_00023bdc:\n      local_64 = iVar26;\n      puVar6 = *(undefined4 **)(local_64 + 8);\n      if (*(int *)(local_64 + 4) == 0) {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10;\n        if (local_70 <= puVar6) {\n          local_8c = (int)local_a8;\n          iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n          goto LAB_000243a4;\n        }\n      }\n      else {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10;\n        iVar26 = *(int *)(local_64 + 4);\n        if (local_70 <= puVar6) goto LAB_00023bdc;\n      }\n      uVar32 = puVar6[4];\n      do {\n        if ((undefined4 *****)uVar32 != local_9c) {\n                    \n          FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }\n        iVar26 = puVar6[1];\n        if (iVar26 == 0) {\n          local_b4 = (undefined4 *******)puVar6[6];\n          if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n          piVar25 = (int *)puVar6[8];\n          if (piVar25 == (int *)0x0) goto LAB_0002402d;\nLAB_00024237:\n          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n          goto LAB_00023ff8;\n        }\n        if ((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47) {\n          if ((int *)puVar6[5] == (int *)0x0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }\n          uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n          iVar15 = FUN_0003e1d0(iVar26);\n          iVar21 = FUN_0003e1d0(uVar13);\n          if (iVar15 != iVar21) {\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }\n          lVar45 = FUN_0003fad0(iVar26);\n          lVar46 = FUN_0003fad0(uVar13);\n          *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n        }\n        else {\n          uVar44 = FUN_0003fad0(iVar26);\n          iVar21 = FUN_0003e1d0(iVar26);\n          uVar33 = (uint)uVar44 + puVar6[2];\n          uVar32 = *(uint *)(iVar21 + 0x1c);\n          iVar15 = *(int *)(iVar21 + 0x20);\n          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);\n          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);\n        }\n        bVar11 = FUN_0003dc90(iVar26);\n        *(byte *)(puVar6 + 10) = *(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04';\n        if (((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&\n           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) {\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;\n        }\n        if (((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&\n           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))) {\n          puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);\n          pbVar35 = (byte *)*puVar23;\n          if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }\n          else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }\n          iVar15 = FUN_0003ddd0(iVar26);\n          if (iVar15 == 0) {\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }\n          else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }\nLAB_00023df1:\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;\n          *(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);\n        }\n        iVar15 = FUN_0003dc20(iVar26);\n        if (((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||\n           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)) {\n          iVar15 = FUN_0003dd80(iVar26);\n          if (iVar15 != 0) goto LAB_0002410f;\n          if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }\n          else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }\nLAB_0002402d:\n          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;\n          if (uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }\n          (*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);\n          local_a0 = (undefined4 ******)((int)local_a0 + uVar36);\n          puVar6[9] = local_a8;\n          puVar7 = (uint *)puVar6[5];\n          if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {\n            puVar7[3] = (int)local_a8 - local_8c;\n          }\n          local_a8 = (undefined4 ******)((int)local_a8 + 1);\n          if ((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          FUN_0003dd80(iVar26);\nLAB_0002410f:\n          if (puVar6[6] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (puVar6[8] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          iVar15 = FUN_00041590(iVar26);\n          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }\n        }\n        if (local_70 <= puVar6 + 0x10) goto LAB_00024380;\n        uVar32 = puVar6[0x14];\n        puVar6 = puVar6 + 0x10;\n      } while( true );\n    }\n    goto LAB_000243a4;\n  }" (if "if") (parenthesized_expression "(DAT_00078240 != 0)" (( "(") (binary_expression "DAT_00078240 != 0" (identifier "DAT_00078240") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    local_8c = 0;\n    puVar20 = (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0x180);\n    iVar26 = DAT_00078240;\nLAB_00023b80:\n    local_5c = iVar26;\n    local_9c = *(undefined4 ******)(local_5c + 8);\n    if (*(int *)(local_5c + 4) == 0) {\n      local_54 = (uint)DAT_00078250 * 0x294 + (int)local_9c;\n      if (local_54 <= local_9c) {\n        local_68 = local_68 + local_8c * uVar36;\n        uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28));\n        goto LAB_0002441d;\n      }\n    }\n    else {\n      local_54 = (uint)DAT_0007824e * 0x294 + (int)local_9c;\n      iVar26 = *(int *)(local_5c + 4);\n      if (local_54 <= local_9c) goto LAB_00023b80;\n    }\nLAB_00023bb7:\n    *(int *)((int)local_9c + 0x18) = local_8c;\n    iVar26 = *(int *)((int)local_9c + 0x8c);\n    if (iVar26 != 0) {\n      local_a8 = (undefined4 ******)local_8c;\nLAB_00023bdc:\n      local_64 = iVar26;\n      puVar6 = *(undefined4 **)(local_64 + 8);\n      if (*(int *)(local_64 + 4) == 0) {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10;\n        if (local_70 <= puVar6) {\n          local_8c = (int)local_a8;\n          iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n          goto LAB_000243a4;\n        }\n      }\n      else {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10;\n        iVar26 = *(int *)(local_64 + 4);\n        if (local_70 <= puVar6) goto LAB_00023bdc;\n      }\n      uVar32 = puVar6[4];\n      do {\n        if ((undefined4 *****)uVar32 != local_9c) {\n                    \n          FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }\n        iVar26 = puVar6[1];\n        if (iVar26 == 0) {\n          local_b4 = (undefined4 *******)puVar6[6];\n          if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n          piVar25 = (int *)puVar6[8];\n          if (piVar25 == (int *)0x0) goto LAB_0002402d;\nLAB_00024237:\n          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n          goto LAB_00023ff8;\n        }\n        if ((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47) {\n          if ((int *)puVar6[5] == (int *)0x0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }\n          uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n          iVar15 = FUN_0003e1d0(iVar26);\n          iVar21 = FUN_0003e1d0(uVar13);\n          if (iVar15 != iVar21) {\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }\n          lVar45 = FUN_0003fad0(iVar26);\n          lVar46 = FUN_0003fad0(uVar13);\n          *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n        }\n        else {\n          uVar44 = FUN_0003fad0(iVar26);\n          iVar21 = FUN_0003e1d0(iVar26);\n          uVar33 = (uint)uVar44 + puVar6[2];\n          uVar32 = *(uint *)(iVar21 + 0x1c);\n          iVar15 = *(int *)(iVar21 + 0x20);\n          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);\n          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);\n        }\n        bVar11 = FUN_0003dc90(iVar26);\n        *(byte *)(puVar6 + 10) = *(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04';\n        if (((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&\n           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) {\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;\n        }\n        if (((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&\n           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))) {\n          puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);\n          pbVar35 = (byte *)*puVar23;\n          if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }\n          else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }\n          iVar15 = FUN_0003ddd0(iVar26);\n          if (iVar15 == 0) {\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }\n          else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }\nLAB_00023df1:\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;\n          *(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);\n        }\n        iVar15 = FUN_0003dc20(iVar26);\n        if (((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||\n           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)) {\n          iVar15 = FUN_0003dd80(iVar26);\n          if (iVar15 != 0) goto LAB_0002410f;\n          if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }\n          else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }\nLAB_0002402d:\n          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;\n          if (uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }\n          (*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);\n          local_a0 = (undefined4 ******)((int)local_a0 + uVar36);\n          puVar6[9] = local_a8;\n          puVar7 = (uint *)puVar6[5];\n          if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {\n            puVar7[3] = (int)local_a8 - local_8c;\n          }\n          local_a8 = (undefined4 ******)((int)local_a8 + 1);\n          if ((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          FUN_0003dd80(iVar26);\nLAB_0002410f:\n          if (puVar6[6] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (puVar6[8] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          iVar15 = FUN_00041590(iVar26);\n          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }\n        }\n        if (local_70 <= puVar6 + 0x10) goto LAB_00024380;\n        uVar32 = puVar6[0x14];\n        puVar6 = puVar6 + 0x10;\n      } while( true );\n    }\n    goto LAB_000243a4;\n  }" ({ "{") (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" (identifier "local_8c") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar20 = (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0x180);" (assignment_expression "puVar20 = (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0x180)" (identifier "puVar20") (= "=") (cast_expression "(undefined4 *)(PTR__bfd_std_section_00077fa0 + 0x180)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR__bfd_std_section_00077fa0 + 0x180)" (( "(") (binary_expression "PTR__bfd_std_section_00077fa0 + 0x180" (identifier "PTR__bfd_std_section_00077fa0") (+ "+") (number_literal "0x180")) () ")")))) (; ";")) (expression_statement "iVar26 = DAT_00078240;" (assignment_expression "iVar26 = DAT_00078240" (identifier "iVar26") (= "=") (identifier "DAT_00078240")) (; ";")) (labeled_statement "LAB_00023b80:\n    local_5c = iVar26;" (statement_identifier "LAB_00023b80") (: ":") (expression_statement "local_5c = iVar26;" (assignment_expression "local_5c = iVar26" (identifier "local_5c") (= "=") (identifier "iVar26")) (; ";"))) (expression_statement "local_9c = *(undefined4 ******)(local_5c + 8);" (assignment_expression "local_9c = *(undefined4 ******)(local_5c + 8)" (identifier "local_9c") (= "=") (pointer_expression "*(undefined4 ******)(local_5c + 8)" (* "*") (cast_expression "(undefined4 ******)(local_5c + 8)" (( "(") (type_descriptor "undefined4 ******" (type_identifier "undefined4") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(local_5c + 8)" (( "(") (binary_expression "local_5c + 8" (identifier "local_5c") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (*(int *)(local_5c + 4) == 0) {\n      local_54 = (uint)DAT_00078250 * 0x294 + (int)local_9c;\n      if (local_54 <= local_9c) {\n        local_68 = local_68 + local_8c * uVar36;\n        uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28));\n        goto LAB_0002441d;\n      }\n    }\n    else {\n      local_54 = (uint)DAT_0007824e * 0x294 + (int)local_9c;\n      iVar26 = *(int *)(local_5c + 4);\n      if (local_54 <= local_9c) goto LAB_00023b80;\n    }" (if "if") (parenthesized_expression "(*(int *)(local_5c + 4) == 0)" (( "(") (binary_expression "*(int *)(local_5c + 4) == 0" (pointer_expression "*(int *)(local_5c + 4)" (* "*") (cast_expression "(int *)(local_5c + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_5c + 4)" (( "(") (binary_expression "local_5c + 4" (identifier "local_5c") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_54 = (uint)DAT_00078250 * 0x294 + (int)local_9c;\n      if (local_54 <= local_9c) {\n        local_68 = local_68 + local_8c * uVar36;\n        uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28));\n        goto LAB_0002441d;\n      }\n    }" ({ "{") (expression_statement "local_54 = (uint)DAT_00078250 * 0x294 + (int)local_9c;" (assignment_expression "local_54 = (uint)DAT_00078250 * 0x294 + (int)local_9c" (identifier "local_54") (= "=") (binary_expression "(uint)DAT_00078250 * 0x294 + (int)local_9c" (binary_expression "(uint)DAT_00078250 * 0x294" (cast_expression "(uint)DAT_00078250" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "DAT_00078250")) (* "*") (number_literal "0x294")) (+ "+") (cast_expression "(int)local_9c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_9c")))) (; ";")) (if_statement "if (local_54 <= local_9c) {\n        local_68 = local_68 + local_8c * uVar36;\n        uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28));\n        goto LAB_0002441d;\n      }" (if "if") (parenthesized_expression "(local_54 <= local_9c)" (( "(") (binary_expression "local_54 <= local_9c" (identifier "local_54") (<= "<=") (identifier "local_9c")) () ")")) (compound_statement "{\n        local_68 = local_68 + local_8c * uVar36;\n        uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28));\n        goto LAB_0002441d;\n      }" ({ "{") (expression_statement "local_68 = local_68 + local_8c * uVar36;" (assignment_expression "local_68 = local_68 + local_8c * uVar36" (identifier "local_68") (= "=") (binary_expression "local_68 + local_8c * uVar36" (identifier "local_68") (+ "+") (binary_expression "local_8c * uVar36" (identifier "local_8c") (* "*") (identifier "uVar36")))) (; ";")) (expression_statement "uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28));" (assignment_expression "uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28))" (identifier "uVar13") (= "=") (call_expression "FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28))" (identifier "FUN_000548c0") (argument_list "(local_68 - *(uint *)(param_1 + 0x34),\n                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),\n                              *(undefined4 *)(param_3 + 0x28))" (( "(") (binary_expression "local_68 - *(uint *)(param_1 + 0x34)" (identifier "local_68") (- "-") (pointer_expression "*(uint *)(param_1 + 0x34)" (* "*") (cast_expression "(uint *)(param_1 + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")"))))) (, ",") (binary_expression "-(uint)(local_68 < *(uint *)(param_1 + 0x34)) -\n                              *(int *)(param_1 + 0x38)" (unary_expression "-(uint)(local_68 < *(uint *)(param_1 + 0x34))" (- "-") (call_expression "(uint)(local_68 < *(uint *)(param_1 + 0x34))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_68 < *(uint *)(param_1 + 0x34))" (( "(") (binary_expression "local_68 < *(uint *)(param_1 + 0x34)" (identifier "local_68") (< "<") (pointer_expression "*(uint *)(param_1 + 0x34)" (* "*") (cast_expression "(uint *)(param_1 + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")"))))) () ")")))) (- "-") (pointer_expression "*(int *)(param_1 + 0x38)" (* "*") (cast_expression "(int *)(param_1 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")"))))) (, ",") (pointer_expression "*(undefined4 *)(param_3 + 0x24)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x24)" (( "(") (binary_expression "param_3 + 0x24" (identifier "param_3") (+ "+") (number_literal "0x24")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_3 + 0x28)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x28)" (( "(") (binary_expression "param_3 + 0x28" (identifier "param_3") (+ "+") (number_literal "0x28")) () ")")))) () ")")))) (; ";")) (goto_statement "goto LAB_0002441d;" (goto "goto") (statement_identifier "LAB_0002441d") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      local_54 = (uint)DAT_0007824e * 0x294 + (int)local_9c;\n      iVar26 = *(int *)(local_5c + 4);\n      if (local_54 <= local_9c) goto LAB_00023b80;\n    }" (else "else") (compound_statement "{\n      local_54 = (uint)DAT_0007824e * 0x294 + (int)local_9c;\n      iVar26 = *(int *)(local_5c + 4);\n      if (local_54 <= local_9c) goto LAB_00023b80;\n    }" ({ "{") (expression_statement "local_54 = (uint)DAT_0007824e * 0x294 + (int)local_9c;" (assignment_expression "local_54 = (uint)DAT_0007824e * 0x294 + (int)local_9c" (identifier "local_54") (= "=") (binary_expression "(uint)DAT_0007824e * 0x294 + (int)local_9c" (binary_expression "(uint)DAT_0007824e * 0x294" (cast_expression "(uint)DAT_0007824e" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "DAT_0007824e")) (* "*") (number_literal "0x294")) (+ "+") (cast_expression "(int)local_9c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_9c")))) (; ";")) (expression_statement "iVar26 = *(int *)(local_5c + 4);" (assignment_expression "iVar26 = *(int *)(local_5c + 4)" (identifier "iVar26") (= "=") (pointer_expression "*(int *)(local_5c + 4)" (* "*") (cast_expression "(int *)(local_5c + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_5c + 4)" (( "(") (binary_expression "local_5c + 4" (identifier "local_5c") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (local_54 <= local_9c) goto LAB_00023b80;" (if "if") (parenthesized_expression "(local_54 <= local_9c)" (( "(") (binary_expression "local_54 <= local_9c" (identifier "local_54") (<= "<=") (identifier "local_9c")) () ")")) (goto_statement "goto LAB_00023b80;" (goto "goto") (statement_identifier "LAB_00023b80") (; ";"))) (} "}")))) (labeled_statement "LAB_00023bb7:\n    *(int *)((int)local_9c + 0x18) = local_8c;" (statement_identifier "LAB_00023bb7") (: ":") (expression_statement "*(int *)((int)local_9c + 0x18) = local_8c;" (assignment_expression "*(int *)((int)local_9c + 0x18) = local_8c" (pointer_expression "*(int *)((int)local_9c + 0x18)" (* "*") (cast_expression "(int *)((int)local_9c + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_9c + 0x18)" (( "(") (binary_expression "(int)local_9c + 0x18" (cast_expression "(int)local_9c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_9c")) (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "local_8c")) (; ";"))) (expression_statement "iVar26 = *(int *)((int)local_9c + 0x8c);" (assignment_expression "iVar26 = *(int *)((int)local_9c + 0x8c)" (identifier "iVar26") (= "=") (pointer_expression "*(int *)((int)local_9c + 0x8c)" (* "*") (cast_expression "(int *)((int)local_9c + 0x8c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_9c + 0x8c)" (( "(") (binary_expression "(int)local_9c + 0x8c" (cast_expression "(int)local_9c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_9c")) (+ "+") (number_literal "0x8c")) () ")"))))) (; ";")) (if_statement "if (iVar26 != 0) {\n      local_a8 = (undefined4 ******)local_8c;\nLAB_00023bdc:\n      local_64 = iVar26;\n      puVar6 = *(undefined4 **)(local_64 + 8);\n      if (*(int *)(local_64 + 4) == 0) {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10;\n        if (local_70 <= puVar6) {\n          local_8c = (int)local_a8;\n          iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n          goto LAB_000243a4;\n        }\n      }\n      else {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10;\n        iVar26 = *(int *)(local_64 + 4);\n        if (local_70 <= puVar6) goto LAB_00023bdc;\n      }\n      uVar32 = puVar6[4];\n      do {\n        if ((undefined4 *****)uVar32 != local_9c) {\n                    \n          FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }\n        iVar26 = puVar6[1];\n        if (iVar26 == 0) {\n          local_b4 = (undefined4 *******)puVar6[6];\n          if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n          piVar25 = (int *)puVar6[8];\n          if (piVar25 == (int *)0x0) goto LAB_0002402d;\nLAB_00024237:\n          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n          goto LAB_00023ff8;\n        }\n        if ((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47) {\n          if ((int *)puVar6[5] == (int *)0x0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }\n          uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n          iVar15 = FUN_0003e1d0(iVar26);\n          iVar21 = FUN_0003e1d0(uVar13);\n          if (iVar15 != iVar21) {\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }\n          lVar45 = FUN_0003fad0(iVar26);\n          lVar46 = FUN_0003fad0(uVar13);\n          *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n        }\n        else {\n          uVar44 = FUN_0003fad0(iVar26);\n          iVar21 = FUN_0003e1d0(iVar26);\n          uVar33 = (uint)uVar44 + puVar6[2];\n          uVar32 = *(uint *)(iVar21 + 0x1c);\n          iVar15 = *(int *)(iVar21 + 0x20);\n          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);\n          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);\n        }\n        bVar11 = FUN_0003dc90(iVar26);\n        *(byte *)(puVar6 + 10) = *(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04';\n        if (((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&\n           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) {\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;\n        }\n        if (((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&\n           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))) {\n          puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);\n          pbVar35 = (byte *)*puVar23;\n          if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }\n          else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }\n          iVar15 = FUN_0003ddd0(iVar26);\n          if (iVar15 == 0) {\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }\n          else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }\nLAB_00023df1:\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;\n          *(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);\n        }\n        iVar15 = FUN_0003dc20(iVar26);\n        if (((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||\n           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)) {\n          iVar15 = FUN_0003dd80(iVar26);\n          if (iVar15 != 0) goto LAB_0002410f;\n          if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }\n          else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }\nLAB_0002402d:\n          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;\n          if (uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }\n          (*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);\n          local_a0 = (undefined4 ******)((int)local_a0 + uVar36);\n          puVar6[9] = local_a8;\n          puVar7 = (uint *)puVar6[5];\n          if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {\n            puVar7[3] = (int)local_a8 - local_8c;\n          }\n          local_a8 = (undefined4 ******)((int)local_a8 + 1);\n          if ((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          FUN_0003dd80(iVar26);\nLAB_0002410f:\n          if (puVar6[6] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (puVar6[8] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          iVar15 = FUN_00041590(iVar26);\n          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }\n        }\n        if (local_70 <= puVar6 + 0x10) goto LAB_00024380;\n        uVar32 = puVar6[0x14];\n        puVar6 = puVar6 + 0x10;\n      } while( true );\n    }" (if "if") (parenthesized_expression "(iVar26 != 0)" (( "(") (binary_expression "iVar26 != 0" (identifier "iVar26") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      local_a8 = (undefined4 ******)local_8c;\nLAB_00023bdc:\n      local_64 = iVar26;\n      puVar6 = *(undefined4 **)(local_64 + 8);\n      if (*(int *)(local_64 + 4) == 0) {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10;\n        if (local_70 <= puVar6) {\n          local_8c = (int)local_a8;\n          iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n          goto LAB_000243a4;\n        }\n      }\n      else {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10;\n        iVar26 = *(int *)(local_64 + 4);\n        if (local_70 <= puVar6) goto LAB_00023bdc;\n      }\n      uVar32 = puVar6[4];\n      do {\n        if ((undefined4 *****)uVar32 != local_9c) {\n                    \n          FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }\n        iVar26 = puVar6[1];\n        if (iVar26 == 0) {\n          local_b4 = (undefined4 *******)puVar6[6];\n          if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n          piVar25 = (int *)puVar6[8];\n          if (piVar25 == (int *)0x0) goto LAB_0002402d;\nLAB_00024237:\n          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n          goto LAB_00023ff8;\n        }\n        if ((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47) {\n          if ((int *)puVar6[5] == (int *)0x0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }\n          uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n          iVar15 = FUN_0003e1d0(iVar26);\n          iVar21 = FUN_0003e1d0(uVar13);\n          if (iVar15 != iVar21) {\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }\n          lVar45 = FUN_0003fad0(iVar26);\n          lVar46 = FUN_0003fad0(uVar13);\n          *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n        }\n        else {\n          uVar44 = FUN_0003fad0(iVar26);\n          iVar21 = FUN_0003e1d0(iVar26);\n          uVar33 = (uint)uVar44 + puVar6[2];\n          uVar32 = *(uint *)(iVar21 + 0x1c);\n          iVar15 = *(int *)(iVar21 + 0x20);\n          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);\n          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);\n        }\n        bVar11 = FUN_0003dc90(iVar26);\n        *(byte *)(puVar6 + 10) = *(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04';\n        if (((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&\n           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) {\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;\n        }\n        if (((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&\n           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))) {\n          puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);\n          pbVar35 = (byte *)*puVar23;\n          if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }\n          else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }\n          iVar15 = FUN_0003ddd0(iVar26);\n          if (iVar15 == 0) {\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }\n          else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }\nLAB_00023df1:\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;\n          *(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);\n        }\n        iVar15 = FUN_0003dc20(iVar26);\n        if (((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||\n           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)) {\n          iVar15 = FUN_0003dd80(iVar26);\n          if (iVar15 != 0) goto LAB_0002410f;\n          if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }\n          else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }\nLAB_0002402d:\n          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;\n          if (uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }\n          (*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);\n          local_a0 = (undefined4 ******)((int)local_a0 + uVar36);\n          puVar6[9] = local_a8;\n          puVar7 = (uint *)puVar6[5];\n          if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {\n            puVar7[3] = (int)local_a8 - local_8c;\n          }\n          local_a8 = (undefined4 ******)((int)local_a8 + 1);\n          if ((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          FUN_0003dd80(iVar26);\nLAB_0002410f:\n          if (puVar6[6] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (puVar6[8] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          iVar15 = FUN_00041590(iVar26);\n          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }\n        }\n        if (local_70 <= puVar6 + 0x10) goto LAB_00024380;\n        uVar32 = puVar6[0x14];\n        puVar6 = puVar6 + 0x10;\n      } while( true );\n    }" ({ "{") (expression_statement "local_a8 = (undefined4 ******)local_8c;" (assignment_expression "local_a8 = (undefined4 ******)local_8c" (identifier "local_a8") (= "=") (cast_expression "(undefined4 ******)local_8c" (( "(") (type_descriptor "undefined4 ******" (type_identifier "undefined4") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (identifier "local_8c"))) (; ";")) (labeled_statement "LAB_00023bdc:\n      local_64 = iVar26;" (statement_identifier "LAB_00023bdc") (: ":") (expression_statement "local_64 = iVar26;" (assignment_expression "local_64 = iVar26" (identifier "local_64") (= "=") (identifier "iVar26")) (; ";"))) (expression_statement "puVar6 = *(undefined4 **)(local_64 + 8);" (assignment_expression "puVar6 = *(undefined4 **)(local_64 + 8)" (identifier "puVar6") (= "=") (pointer_expression "*(undefined4 **)(local_64 + 8)" (* "*") (cast_expression "(undefined4 **)(local_64 + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_64 + 8)" (( "(") (binary_expression "local_64 + 8" (identifier "local_64") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (*(int *)(local_64 + 4) == 0) {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10;\n        if (local_70 <= puVar6) {\n          local_8c = (int)local_a8;\n          iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n          goto LAB_000243a4;\n        }\n      }\n      else {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10;\n        iVar26 = *(int *)(local_64 + 4);\n        if (local_70 <= puVar6) goto LAB_00023bdc;\n      }" (if "if") (parenthesized_expression "(*(int *)(local_64 + 4) == 0)" (( "(") (binary_expression "*(int *)(local_64 + 4) == 0" (pointer_expression "*(int *)(local_64 + 4)" (* "*") (cast_expression "(int *)(local_64 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_64 + 4)" (( "(") (binary_expression "local_64 + 4" (identifier "local_64") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10;\n        if (local_70 <= puVar6) {\n          local_8c = (int)local_a8;\n          iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n          goto LAB_000243a4;\n        }\n      }" ({ "{") (expression_statement "local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10;" (assignment_expression "local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10" (identifier "local_70") (= "=") (binary_expression "puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10" (identifier "puVar6") (+ "+") (binary_expression "(uint)*(ushort *)((int)local_9c + 0x9c) * 0x10" (binary_expression "(uint)*(ushort *)((int)local_9c + 0x9c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)((int)local_9c + 0x9c)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_9c + 0x9c)" (( "(") (binary_expression "(int)local_9c + 0x9c" (cast_expression "(int)local_9c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_9c")) (+ "+") (number_literal "0x9c")) () ")")))) (* "*") (number_literal "0x10")))) (; ";")) (if_statement "if (local_70 <= puVar6) {\n          local_8c = (int)local_a8;\n          iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n          goto LAB_000243a4;\n        }" (if "if") (parenthesized_expression "(local_70 <= puVar6)" (( "(") (binary_expression "local_70 <= puVar6" (identifier "local_70") (<= "<=") (identifier "puVar6")) () ")")) (compound_statement "{\n          local_8c = (int)local_a8;\n          iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);\n          goto LAB_000243a4;\n        }" ({ "{") (expression_statement "local_8c = (int)local_a8;" (assignment_expression "local_8c = (int)local_a8" (identifier "local_8c") (= "=") (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8"))) (; ";")) (expression_statement "iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);" (assignment_expression "iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18)" (identifier "iVar26") (= "=") (binary_expression "(int)local_a8 - *(int *)((int)local_9c + 0x18)" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (- "-") (pointer_expression "*(int *)((int)local_9c + 0x18)" (* "*") (cast_expression "(int *)((int)local_9c + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_9c + 0x18)" (( "(") (binary_expression "(int)local_9c + 0x18" (cast_expression "(int)local_9c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_9c")) (+ "+") (number_literal "0x18")) () ")")))))) (; ";")) (goto_statement "goto LAB_000243a4;" (goto "goto") (statement_identifier "LAB_000243a4") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10;\n        iVar26 = *(int *)(local_64 + 4);\n        if (local_70 <= puVar6) goto LAB_00023bdc;\n      }" (else "else") (compound_statement "{\n        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10;\n        iVar26 = *(int *)(local_64 + 4);\n        if (local_70 <= puVar6) goto LAB_00023bdc;\n      }" ({ "{") (expression_statement "local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10;" (assignment_expression "local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10" (identifier "local_70") (= "=") (binary_expression "puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10" (identifier "puVar6") (+ "+") (binary_expression "(uint)*(ushort *)((int)local_9c + 0x9a) * 0x10" (binary_expression "(uint)*(ushort *)((int)local_9c + 0x9a)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)((int)local_9c + 0x9a)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_9c + 0x9a)" (( "(") (binary_expression "(int)local_9c + 0x9a" (cast_expression "(int)local_9c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_9c")) (+ "+") (number_literal "0x9a")) () ")")))) (* "*") (number_literal "0x10")))) (; ";")) (expression_statement "iVar26 = *(int *)(local_64 + 4);" (assignment_expression "iVar26 = *(int *)(local_64 + 4)" (identifier "iVar26") (= "=") (pointer_expression "*(int *)(local_64 + 4)" (* "*") (cast_expression "(int *)(local_64 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_64 + 4)" (( "(") (binary_expression "local_64 + 4" (identifier "local_64") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (local_70 <= puVar6) goto LAB_00023bdc;" (if "if") (parenthesized_expression "(local_70 <= puVar6)" (( "(") (binary_expression "local_70 <= puVar6" (identifier "local_70") (<= "<=") (identifier "puVar6")) () ")")) (goto_statement "goto LAB_00023bdc;" (goto "goto") (statement_identifier "LAB_00023bdc") (; ";"))) (} "}")))) (expression_statement "uVar32 = puVar6[4];" (assignment_expression "uVar32 = puVar6[4]" (identifier "uVar32") (= "=") (subscript_expression "puVar6[4]" (identifier "puVar6") ([ "[") (number_literal "4") (] "]"))) (; ";")) (do_statement "do {\n        if ((undefined4 *****)uVar32 != local_9c) {\n                    \n          FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }\n        iVar26 = puVar6[1];\n        if (iVar26 == 0) {\n          local_b4 = (undefined4 *******)puVar6[6];\n          if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n          piVar25 = (int *)puVar6[8];\n          if (piVar25 == (int *)0x0) goto LAB_0002402d;\nLAB_00024237:\n          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n          goto LAB_00023ff8;\n        }\n        if ((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47) {\n          if ((int *)puVar6[5] == (int *)0x0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }\n          uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n          iVar15 = FUN_0003e1d0(iVar26);\n          iVar21 = FUN_0003e1d0(uVar13);\n          if (iVar15 != iVar21) {\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }\n          lVar45 = FUN_0003fad0(iVar26);\n          lVar46 = FUN_0003fad0(uVar13);\n          *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n        }\n        else {\n          uVar44 = FUN_0003fad0(iVar26);\n          iVar21 = FUN_0003e1d0(iVar26);\n          uVar33 = (uint)uVar44 + puVar6[2];\n          uVar32 = *(uint *)(iVar21 + 0x1c);\n          iVar15 = *(int *)(iVar21 + 0x20);\n          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);\n          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);\n        }\n        bVar11 = FUN_0003dc90(iVar26);\n        *(byte *)(puVar6 + 10) = *(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04';\n        if (((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&\n           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) {\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;\n        }\n        if (((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&\n           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))) {\n          puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);\n          pbVar35 = (byte *)*puVar23;\n          if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }\n          else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }\n          iVar15 = FUN_0003ddd0(iVar26);\n          if (iVar15 == 0) {\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }\n          else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }\nLAB_00023df1:\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;\n          *(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);\n        }\n        iVar15 = FUN_0003dc20(iVar26);\n        if (((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||\n           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)) {\n          iVar15 = FUN_0003dd80(iVar26);\n          if (iVar15 != 0) goto LAB_0002410f;\n          if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }\n          else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }\nLAB_0002402d:\n          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;\n          if (uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }\n          (*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);\n          local_a0 = (undefined4 ******)((int)local_a0 + uVar36);\n          puVar6[9] = local_a8;\n          puVar7 = (uint *)puVar6[5];\n          if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {\n            puVar7[3] = (int)local_a8 - local_8c;\n          }\n          local_a8 = (undefined4 ******)((int)local_a8 + 1);\n          if ((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          FUN_0003dd80(iVar26);\nLAB_0002410f:\n          if (puVar6[6] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (puVar6[8] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          iVar15 = FUN_00041590(iVar26);\n          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }\n        }\n        if (local_70 <= puVar6 + 0x10) goto LAB_00024380;\n        uVar32 = puVar6[0x14];\n        puVar6 = puVar6 + 0x10;\n      } while( true );" (do "do") (compound_statement "{\n        if ((undefined4 *****)uVar32 != local_9c) {\n                    \n          FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }\n        iVar26 = puVar6[1];\n        if (iVar26 == 0) {\n          local_b4 = (undefined4 *******)puVar6[6];\n          if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n          piVar25 = (int *)puVar6[8];\n          if (piVar25 == (int *)0x0) goto LAB_0002402d;\nLAB_00024237:\n          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n          goto LAB_00023ff8;\n        }\n        if ((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47) {\n          if ((int *)puVar6[5] == (int *)0x0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }\n          uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n          iVar15 = FUN_0003e1d0(iVar26);\n          iVar21 = FUN_0003e1d0(uVar13);\n          if (iVar15 != iVar21) {\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }\n          lVar45 = FUN_0003fad0(iVar26);\n          lVar46 = FUN_0003fad0(uVar13);\n          *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n        }\n        else {\n          uVar44 = FUN_0003fad0(iVar26);\n          iVar21 = FUN_0003e1d0(iVar26);\n          uVar33 = (uint)uVar44 + puVar6[2];\n          uVar32 = *(uint *)(iVar21 + 0x1c);\n          iVar15 = *(int *)(iVar21 + 0x20);\n          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);\n          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);\n        }\n        bVar11 = FUN_0003dc90(iVar26);\n        *(byte *)(puVar6 + 10) = *(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04';\n        if (((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&\n           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) {\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;\n        }\n        if (((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&\n           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))) {\n          puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);\n          pbVar35 = (byte *)*puVar23;\n          if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }\n          else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }\n          iVar15 = FUN_0003ddd0(iVar26);\n          if (iVar15 == 0) {\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }\n          else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }\nLAB_00023df1:\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;\n          *(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);\n        }\n        iVar15 = FUN_0003dc20(iVar26);\n        if (((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||\n           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)) {\n          iVar15 = FUN_0003dd80(iVar26);\n          if (iVar15 != 0) goto LAB_0002410f;\n          if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }\n          else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }\nLAB_0002402d:\n          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;\n          if (uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }\n          (*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);\n          local_a0 = (undefined4 ******)((int)local_a0 + uVar36);\n          puVar6[9] = local_a8;\n          puVar7 = (uint *)puVar6[5];\n          if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {\n            puVar7[3] = (int)local_a8 - local_8c;\n          }\n          local_a8 = (undefined4 ******)((int)local_a8 + 1);\n          if ((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          FUN_0003dd80(iVar26);\nLAB_0002410f:\n          if (puVar6[6] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (puVar6[8] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          iVar15 = FUN_00041590(iVar26);\n          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }\n        }\n        if (local_70 <= puVar6 + 0x10) goto LAB_00024380;\n        uVar32 = puVar6[0x14];\n        puVar6 = puVar6 + 0x10;\n      }" ({ "{") (if_statement "if ((undefined4 *****)uVar32 != local_9c) {\n                    \n          FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }" (if "if") (parenthesized_expression "((undefined4 *****)uVar32 != local_9c)" (( "(") (binary_expression "(undefined4 *****)uVar32 != local_9c" (cast_expression "(undefined4 *****)uVar32" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "uVar32")) (!= "!=") (identifier "local_9c")) () ")")) (compound_statement "{\n                    \n          FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");\n        }" ({ "{") (expression_statement "FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");" (call_expression "FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols")" (identifier "FUN_00031740") (argument_list "("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols")" (( "(") (string_literal ""../../gas/ecoff.c"" (" """) (string_content "../../gas/ecoff.c") (" """)) (, ",") (number_literal "0xf6b") (, ",") (string_literal ""ecoff_build_symbols"" (" """) (string_content "ecoff_build_symbols") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar26 = puVar6[1];" (assignment_expression "iVar26 = puVar6[1]" (identifier "iVar26") (= "=") (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (iVar26 == 0) {\n          local_b4 = (undefined4 *******)puVar6[6];\n          if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n          piVar25 = (int *)puVar6[8];\n          if (piVar25 == (int *)0x0) goto LAB_0002402d;\nLAB_00024237:\n          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n          goto LAB_00023ff8;\n        }" (if "if") (parenthesized_expression "(iVar26 == 0)" (( "(") (binary_expression "iVar26 == 0" (identifier "iVar26") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          local_b4 = (undefined4 *******)puVar6[6];\n          if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n          piVar25 = (int *)puVar6[8];\n          if (piVar25 == (int *)0x0) goto LAB_0002402d;\nLAB_00024237:\n          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n          goto LAB_00023ff8;\n        }" ({ "{") (expression_statement "local_b4 = (undefined4 *******)puVar6[6];" (assignment_expression "local_b4 = (undefined4 *******)puVar6[6]" (identifier "local_b4") (= "=") (cast_expression "(undefined4 *******)puVar6[6]" (( "(") (type_descriptor "undefined4 *******" (type_identifier "undefined4") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "puVar6[6]" (identifier "puVar6") ([ "[") (number_literal "6") (] "]")))) (; ";")) (if_statement "if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;" (if "if") (parenthesized_expression "(local_b4 != (undefined4 *******)0x0)" (( "(") (binary_expression "local_b4 != (undefined4 *******)0x0" (identifier "local_b4") (!= "!=") (cast_expression "(undefined4 *******)0x0" (( "(") (type_descriptor "undefined4 *******" (type_identifier "undefined4") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00023e89;" (goto "goto") (statement_identifier "LAB_00023e89") (; ";"))) (expression_statement "piVar25 = (int *)puVar6[8];" (assignment_expression "piVar25 = (int *)puVar6[8]" (identifier "piVar25") (= "=") (cast_expression "(int *)puVar6[8]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar6[8]" (identifier "puVar6") ([ "[") (number_literal "8") (] "]")))) (; ";")) (if_statement "if (piVar25 == (int *)0x0) goto LAB_0002402d;" (if "if") (parenthesized_expression "(piVar25 == (int *)0x0)" (( "(") (binary_expression "piVar25 == (int *)0x0" (identifier "piVar25") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0002402d;" (goto "goto") (statement_identifier "LAB_0002402d") (; ";"))) (labeled_statement "LAB_00024237:\n          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);" (statement_identifier "LAB_00024237") (: ":") (expression_statement "local_a4 = (undefined4 *****)((int)local_a8 - local_8c);" (assignment_expression "local_a4 = (undefined4 *****)((int)local_a8 - local_8c)" (identifier "local_a4") (= "=") (cast_expression "(undefined4 *****)((int)local_a8 - local_8c)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)local_a8 - local_8c)" (( "(") (binary_expression "(int)local_a8 - local_8c" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (- "-") (identifier "local_8c")) () ")")))) (; ";"))) (goto_statement "goto LAB_00023ff8;" (goto "goto") (statement_identifier "LAB_00023ff8") (; ";")) (} "}"))) (if_statement "if ((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47) {\n          if ((int *)puVar6[5] == (int *)0x0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }\n          uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n          iVar15 = FUN_0003e1d0(iVar26);\n          iVar21 = FUN_0003e1d0(uVar13);\n          if (iVar15 != iVar21) {\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }\n          lVar45 = FUN_0003fad0(iVar26);\n          lVar46 = FUN_0003fad0(uVar13);\n          *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n        }\n        else {\n          uVar44 = FUN_0003fad0(iVar26);\n          iVar21 = FUN_0003e1d0(iVar26);\n          uVar33 = (uint)uVar44 + puVar6[2];\n          uVar32 = *(uint *)(iVar21 + 0x1c);\n          iVar15 = *(int *)(iVar21 + 0x20);\n          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);\n          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);\n        }" (if "if") (parenthesized_expression "((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47)" (( "(") (binary_expression "(*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47" (parenthesized_expression "(*(ushort *)(puVar6 + 0xf) & 0x7ff)" (( "(") (binary_expression "*(ushort *)(puVar6 + 0xf) & 0x7ff" (pointer_expression "*(ushort *)(puVar6 + 0xf)" (* "*") (cast_expression "(ushort *)(puVar6 + 0xf)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 0xf)" (( "(") (binary_expression "puVar6 + 0xf" (identifier "puVar6") (+ "+") (number_literal "0xf")) () ")")))) (& "&") (number_literal "0x7ff")) () ")")) (== "==") (number_literal "0x47")) () ")")) (compound_statement "{\n          if ((int *)puVar6[5] == (int *)0x0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }\n          uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n          iVar15 = FUN_0003e1d0(iVar26);\n          iVar21 = FUN_0003e1d0(uVar13);\n          if (iVar15 != iVar21) {\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }\n          lVar45 = FUN_0003fad0(iVar26);\n          lVar46 = FUN_0003fad0(uVar13);\n          *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n        }" ({ "{") (if_statement "if ((int *)puVar6[5] == (int *)0x0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }" (if "if") (parenthesized_expression "((int *)puVar6[5] == (int *)0x0)" (( "(") (binary_expression "(int *)puVar6[5] == (int *)0x0" (cast_expression "(int *)puVar6[5]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar6[5]" (identifier "puVar6") ([ "[") (number_literal "5") (] "]"))) (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");\n          }" ({ "{") (expression_statement "FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");" (call_expression "FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols")" (identifier "FUN_00031740") (argument_list "("../../gas/ecoff.c",0xf85,"ecoff_build_symbols")" (( "(") (string_literal ""../../gas/ecoff.c"" (" """) (string_content "../../gas/ecoff.c") (" """)) (, ",") (number_literal "0xf85") (, ",") (string_literal ""ecoff_build_symbols"" (" """) (string_content "ecoff_build_symbols") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);" (assignment_expression "uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4)" (identifier "uVar13") (= "=") (pointer_expression "*(undefined4 *)(*(int *)puVar6[5] + 4)" (* "*") (cast_expression "(undefined4 *)(*(int *)puVar6[5] + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)puVar6[5] + 4)" (( "(") (binary_expression "*(int *)puVar6[5] + 4" (pointer_expression "*(int *)puVar6[5]" (* "*") (cast_expression "(int *)puVar6[5]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar6[5]" (identifier "puVar6") ([ "[") (number_literal "5") (] "]")))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar15 = FUN_0003e1d0(iVar26);" (assignment_expression "iVar15 = FUN_0003e1d0(iVar26)" (identifier "iVar15") (= "=") (call_expression "FUN_0003e1d0(iVar26)" (identifier "FUN_0003e1d0") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (; ";")) (expression_statement "iVar21 = FUN_0003e1d0(uVar13);" (assignment_expression "iVar21 = FUN_0003e1d0(uVar13)" (identifier "iVar21") (= "=") (call_expression "FUN_0003e1d0(uVar13)" (identifier "FUN_0003e1d0") (argument_list "(uVar13)" (( "(") (identifier "uVar13") () ")")))) (; ";")) (if_statement "if (iVar15 != iVar21) {\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }" (if "if") (parenthesized_expression "(iVar15 != iVar21)" (( "(") (binary_expression "iVar15 != iVar21" (identifier "iVar15") (!= "!=") (identifier "iVar21")) () ")")) (compound_statement "{\n            uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n            FUN_00031540(uVar22);\n          }" ({ "{") (expression_statement "uVar22 = dcgettext(0,".begin/.bend in different segments",5);" (assignment_expression "uVar22 = dcgettext(0,".begin/.bend in different segments",5)" (identifier "uVar22") (= "=") (call_expression "dcgettext(0,".begin/.bend in different segments",5)" (identifier "dcgettext") (argument_list "(0,".begin/.bend in different segments",5)" (( "(") (number_literal "0") (, ",") (string_literal "".begin/.bend in different segments"" (" """) (string_content ".begin/.bend in different segments") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031540(uVar22);" (call_expression "FUN_00031540(uVar22)" (identifier "FUN_00031540") (argument_list "(uVar22)" (( "(") (identifier "uVar22") () ")"))) (; ";")) (} "}"))) (expression_statement "lVar45 = FUN_0003fad0(iVar26);" (assignment_expression "lVar45 = FUN_0003fad0(iVar26)" (identifier "lVar45") (= "=") (call_expression "FUN_0003fad0(iVar26)" (identifier "FUN_0003fad0") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (; ";")) (expression_statement "lVar46 = FUN_0003fad0(uVar13);" (assignment_expression "lVar46 = FUN_0003fad0(uVar13)" (identifier "lVar46") (= "=") (call_expression "FUN_0003fad0(uVar13)" (identifier "FUN_0003fad0") (argument_list "(uVar13)" (( "(") (identifier "uVar13") () ")")))) (; ";")) (expression_statement "*(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;" (assignment_expression "*(longlong *)(puVar6 + 0xd) = lVar45 - lVar46" (pointer_expression "*(longlong *)(puVar6 + 0xd)" (* "*") (cast_expression "(longlong *)(puVar6 + 0xd)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 0xd)" (( "(") (binary_expression "puVar6 + 0xd" (identifier "puVar6") (+ "+") (number_literal "0xd")) () ")")))) (= "=") (binary_expression "lVar45 - lVar46" (identifier "lVar45") (- "-") (identifier "lVar46"))) (; ";")) (} "}")) (else_clause "else {\n          uVar44 = FUN_0003fad0(iVar26);\n          iVar21 = FUN_0003e1d0(iVar26);\n          uVar33 = (uint)uVar44 + puVar6[2];\n          uVar32 = *(uint *)(iVar21 + 0x1c);\n          iVar15 = *(int *)(iVar21 + 0x20);\n          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);\n          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);\n        }" (else "else") (compound_statement "{\n          uVar44 = FUN_0003fad0(iVar26);\n          iVar21 = FUN_0003e1d0(iVar26);\n          uVar33 = (uint)uVar44 + puVar6[2];\n          uVar32 = *(uint *)(iVar21 + 0x1c);\n          iVar15 = *(int *)(iVar21 + 0x20);\n          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);\n          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);\n        }" ({ "{") (expression_statement "uVar44 = FUN_0003fad0(iVar26);" (assignment_expression "uVar44 = FUN_0003fad0(iVar26)" (identifier "uVar44") (= "=") (call_expression "FUN_0003fad0(iVar26)" (identifier "FUN_0003fad0") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (; ";")) (expression_statement "iVar21 = FUN_0003e1d0(iVar26);" (assignment_expression "iVar21 = FUN_0003e1d0(iVar26)" (identifier "iVar21") (= "=") (call_expression "FUN_0003e1d0(iVar26)" (identifier "FUN_0003e1d0") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (; ";")) (expression_statement "uVar33 = (uint)uVar44 + puVar6[2];" (assignment_expression "uVar33 = (uint)uVar44 + puVar6[2]" (identifier "uVar33") (= "=") (binary_expression "(uint)uVar44 + puVar6[2]" (cast_expression "(uint)uVar44" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar44")) (+ "+") (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "uVar32 = *(uint *)(iVar21 + 0x1c);" (assignment_expression "uVar32 = *(uint *)(iVar21 + 0x1c)" (identifier "uVar32") (= "=") (pointer_expression "*(uint *)(iVar21 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar21 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x1c)" (( "(") (binary_expression "iVar21 + 0x1c" (identifier "iVar21") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "iVar15 = *(int *)(iVar21 + 0x20);" (assignment_expression "iVar15 = *(int *)(iVar21 + 0x20)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(iVar21 + 0x20)" (* "*") (cast_expression "(int *)(iVar21 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x20)" (( "(") (binary_expression "iVar21 + 0x20" (identifier "iVar21") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);" (assignment_expression "puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c)" (subscript_expression "puVar6[0xd]" (identifier "puVar6") ([ "[") (number_literal "0xd") (] "]")) (= "=") (binary_expression "uVar33 + *(uint *)(iVar21 + 0x1c)" (identifier "uVar33") (+ "+") (pointer_expression "*(uint *)(iVar21 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar21 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x1c)" (( "(") (binary_expression "iVar21 + 0x1c" (identifier "iVar21") (+ "+") (number_literal "0x1c")) () ")")))))) (; ";")) (expression_statement "puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);" (assignment_expression "puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32)" (subscript_expression "puVar6[0xe]" (identifier "puVar6") ([ "[") (number_literal "0xe") (] "]")) (= "=") (binary_expression "(int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32)" (binary_expression "(int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15" (binary_expression "(int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +\n                        (uint)CARRY4((uint)uVar44,puVar6[2])" (binary_expression "(int)((ulonglong)uVar44 >> 0x20) + puVar6[3]" (cast_expression "(int)((ulonglong)uVar44 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar44 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar44 >> 0x20" (cast_expression "(ulonglong)uVar44" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar44")) (>> ">>") (number_literal "0x20")) () ")"))) (+ "+") (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]"))) (+ "+") (cast_expression "(uint)CARRY4((uint)uVar44,puVar6[2])" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4((uint)uVar44,puVar6[2])" (identifier "CARRY4") (argument_list "((uint)uVar44,puVar6[2])" (( "(") (cast_expression "(uint)uVar44" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar44")) (, ",") (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")) () ")"))))) (+ "+") (identifier "iVar15")) (+ "+") (cast_expression "(uint)CARRY4(uVar33,uVar32)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar33,uVar32)" (identifier "CARRY4") (argument_list "(uVar33,uVar32)" (( "(") (identifier "uVar33") (, ",") (identifier "uVar32") () ")")))))) (; ";")) (} "}")))) (expression_statement "bVar11 = FUN_0003dc90(iVar26);" (assignment_expression "bVar11 = FUN_0003dc90(iVar26)" (identifier "bVar11") (= "=") (call_expression "FUN_0003dc90(iVar26)" (identifier "FUN_0003dc90") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (; ";")) (expression_statement "*(byte *)(puVar6 + 10) = *(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04';" (assignment_expression "*(byte *)(puVar6 + 10) = *(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04'" (pointer_expression "*(byte *)(puVar6 + 10)" (* "*") (cast_expression "(byte *)(puVar6 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 10)" (( "(") (binary_expression "puVar6 + 10" (identifier "puVar6") (+ "+") (number_literal "10")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04'" (binary_expression "*(byte *)(puVar6 + 10) & 0xfb" (pointer_expression "*(byte *)(puVar6 + 10)" (* "*") (cast_expression "(byte *)(puVar6 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 10)" (( "(") (binary_expression "puVar6 + 10" (identifier "puVar6") (+ "+") (number_literal "10")) () ")")))) (& "&") (number_literal "0xfb")) (| "|") (binary_expression "(bVar11 & 1) * '\x04'" (parenthesized_expression "(bVar11 & 1)" (( "(") (binary_expression "bVar11 & 1" (identifier "bVar11") (& "&") (number_literal "1")) () ")")) (* "*") (char_literal "'\x04'" (' "'") (escape_sequence "\x04") (' "'"))))) (; ";")) (if_statement "if (((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&\n           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) {\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;\n        }" (if "if") (parenthesized_expression "(((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&\n           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0))" (( "(") (binary_expression "((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&\n           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)" (parenthesized_expression "((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0))" (( "(") (binary_expression "(((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&\n            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)" (parenthesized_expression "(((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0))" (( "(") (binary_expression "((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)" (parenthesized_expression "((*(byte *)(puVar6 + 0xf) & 0x3f) == 6)" (( "(") (binary_expression "(*(byte *)(puVar6 + 0xf) & 0x3f) == 6" (parenthesized_expression "(*(byte *)(puVar6 + 0xf) & 0x3f)" (( "(") (binary_expression "*(byte *)(puVar6 + 0xf) & 0x3f" (pointer_expression "*(byte *)(puVar6 + 0xf)" (* "*") (cast_expression "(byte *)(puVar6 + 0xf)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 0xf)" (( "(") (binary_expression "puVar6 + 0xf" (identifier "puVar6") (+ "+") (number_literal "0xf")) () ")")))) (& "&") (number_literal "0x3f")) () ")")) (== "==") (number_literal "6")) () ")")) (&& "&&") (parenthesized_expression "(iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)" (( "(") (comma_expression "iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0" (assignment_expression "iVar15 = FUN_0003ddd0(iVar26)" (identifier "iVar15") (= "=") (call_expression "FUN_0003ddd0(iVar26)" (identifier "FUN_0003ddd0") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (, ",") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)" (( "(") (comma_expression "iVar15 = FUN_0003dc20(iVar26), iVar15 == 0" (assignment_expression "iVar15 = FUN_0003dc20(iVar26)" (identifier "iVar15") (= "=") (call_expression "FUN_0003dc20(iVar26)" (identifier "FUN_0003dc20") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (, ",") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)" (( "(") (comma_expression "iVar15 = FUN_0003dc90(iVar26), iVar15 == 0" (assignment_expression "iVar15 = FUN_0003dc90(iVar26)" (identifier "iVar15") (= "=") (call_expression "FUN_0003dc90(iVar26)" (identifier "FUN_0003dc90") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (, ",") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;\n        }" ({ "{") (expression_statement "*(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;" (assignment_expression "*(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe" (pointer_expression "*(byte *)(puVar6 + 0xf)" (* "*") (cast_expression "(byte *)(puVar6 + 0xf)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 0xf)" (( "(") (binary_expression "puVar6 + 0xf" (identifier "puVar6") (+ "+") (number_literal "0xf")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar6 + 0xf) & 0xc0 | 0xe" (binary_expression "*(byte *)(puVar6 + 0xf) & 0xc0" (pointer_expression "*(byte *)(puVar6 + 0xf)" (* "*") (cast_expression "(byte *)(puVar6 + 0xf)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 0xf)" (( "(") (binary_expression "puVar6 + 0xf" (identifier "puVar6") (+ "+") (number_literal "0xf")) () ")")))) (& "&") (number_literal "0xc0")) (| "|") (number_literal "0xe"))) (; ";")) (} "}"))) (if_statement "if (((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&\n           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))) {\n          puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);\n          pbVar35 = (byte *)*puVar23;\n          if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }\n          else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }\n          iVar15 = FUN_0003ddd0(iVar26);\n          if (iVar15 == 0) {\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }\n          else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }\nLAB_00023df1:\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;\n          *(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);\n        }" (if "if") (parenthesized_expression "(((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&\n           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0))))" (( "(") (binary_expression "((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&\n           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))" (parenthesized_expression "((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0)" (( "(") (binary_expression "(*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0" (parenthesized_expression "(*(ushort *)(puVar6 + 0xf) & 0x7ff)" (( "(") (binary_expression "*(ushort *)(puVar6 + 0xf) & 0x7ff" (pointer_expression "*(ushort *)(puVar6 + 0xf)" (* "*") (cast_expression "(ushort *)(puVar6 + 0xf)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 0xf)" (( "(") (binary_expression "puVar6 + 0xf" (identifier "puVar6") (+ "+") (number_literal "0xf")) () ")")))) (& "&") (number_literal "0x7ff")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))" (( "(") (parenthesized_expression "(((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0))" (( "(") (binary_expression "((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||\n            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)" (binary_expression "((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300" (parenthesized_expression "((uint)puVar6[0xf] >> 0xc & 0xfff00)" (( "(") (binary_expression "(uint)puVar6[0xf] >> 0xc & 0xfff00" (binary_expression "(uint)puVar6[0xf] >> 0xc" (cast_expression "(uint)puVar6[0xf]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar6[0xf]" (identifier "puVar6") ([ "[") (number_literal "0xf") (] "]"))) (>> ">>") (number_literal "0xc")) (& "&") (number_literal "0xfff00")) () ")")) (!= "!=") (number_literal "0x8f300")) (|| "||") (parenthesized_expression "(((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)" (( "(") (binary_expression "((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0" (parenthesized_expression "((uint)puVar6[0xf] >> 0xc & 0xfffdf)" (( "(") (binary_expression "(uint)puVar6[0xf] >> 0xc & 0xfffdf" (binary_expression "(uint)puVar6[0xf] >> 0xc" (cast_expression "(uint)puVar6[0xf]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar6[0xf]" (identifier "puVar6") ([ "[") (number_literal "0xf") (] "]"))) (>> ">>") (number_literal "0xc")) (& "&") (number_literal "0xfffdf")) () ")")) (!= "!=") (number_literal "0x8f3c0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);\n          pbVar35 = (byte *)*puVar23;\n          if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }\n          else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }\n          iVar15 = FUN_0003ddd0(iVar26);\n          if (iVar15 == 0) {\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }\n          else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }\nLAB_00023df1:\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;\n          *(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);\n        }" ({ "{") (expression_statement "puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);" (assignment_expression "puVar23 = (undefined4 *)FUN_0003e1d0(iVar26)" (identifier "puVar23") (= "=") (cast_expression "(undefined4 *)FUN_0003e1d0(iVar26)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0003e1d0(iVar26)" (identifier "FUN_0003e1d0") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")"))))) (; ";")) (expression_statement "pbVar35 = (byte *)*puVar23;" (assignment_expression "pbVar35 = (byte *)*puVar23" (identifier "pbVar35") (= "=") (cast_expression "(byte *)*puVar23" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar23" (* "*") (identifier "puVar23")))) (; ";")) (if_statement "if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }\n          else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }" (if "if") (parenthesized_expression "((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0))))" (( "(") (binary_expression "(((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||\n             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))" (parenthesized_expression "(((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)" (( "(") (binary_expression "((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300" (parenthesized_expression "((uint)puVar6[0xf] >> 0xc & 0xfff00)" (( "(") (binary_expression "(uint)puVar6[0xf] >> 0xc & 0xfff00" (binary_expression "(uint)puVar6[0xf] >> 0xc" (cast_expression "(uint)puVar6[0xf]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar6[0xf]" (identifier "puVar6") ([ "[") (number_literal "0xf") (] "]"))) (>> ">>") (number_literal "0xc")) (& "&") (number_literal "0xfff00")) () ")")) (== "==") (number_literal "0x8f300")) () ")")) (|| "||") (parenthesized_expression "(((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))" (( "(") (parenthesized_expression "((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0))" (( "(") (binary_expression "(iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)" (parenthesized_expression "(iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0))" (( "(") (comma_expression "iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)" (assignment_expression "iVar15 = FUN_0003dc20(iVar26)" (identifier "iVar15") (= "=") (call_expression "FUN_0003dc20(iVar26)" (identifier "FUN_0003dc20") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (, ",") (binary_expression "iVar15 == 0 &&\n               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)" (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)" (( "(") (comma_expression "iVar15 = FUN_0003dc90(iVar26), iVar15 == 0" (assignment_expression "iVar15 = FUN_0003dc90(iVar26)" (identifier "iVar15") (= "=") (call_expression "FUN_0003dc90(iVar26)" (identifier "FUN_0003dc90") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (, ",") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0"))) () ")")))) () ")")) (&& "&&") (parenthesized_expression "(iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)" (( "(") (comma_expression "iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0" (assignment_expression "iVar15 = FUN_0003ddd0(iVar26)" (identifier "iVar15") (= "=") (call_expression "FUN_0003ddd0(iVar26)" (identifier "FUN_0003ddd0") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (, ",") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;\n          }" ({ "{") (expression_statement "bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;" (assignment_expression "bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2" (identifier "bVar11") (= "=") (binary_expression "(puVar23 == DAT_00081494) * '\x03' + 2" (binary_expression "(puVar23 == DAT_00081494) * '\x03'" (parenthesized_expression "(puVar23 == DAT_00081494)" (( "(") (binary_expression "puVar23 == DAT_00081494" (identifier "puVar23") (== "==") (identifier "DAT_00081494")) () ")")) (* "*") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) (+ "+") (number_literal "2"))) (; ";")) (} "}")) (else_clause "else {\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }" (else "else") (compound_statement "{\n            iVar15 = FUN_000414f0(iVar26);\n            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;\n          }" ({ "{") (expression_statement "iVar15 = FUN_000414f0(iVar26);" (assignment_expression "iVar15 = FUN_000414f0(iVar26)" (identifier "iVar15") (= "=") (call_expression "FUN_000414f0(iVar26)" (identifier "FUN_000414f0") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (; ";")) (expression_statement "bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;" (assignment_expression "bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6" (identifier "bVar11") (= "=") (binary_expression "(-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6" (parenthesized_expression "(-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU)" (( "(") (binary_expression "-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU" (unary_expression "-((*(uint *)(iVar15 + 0x10) & 8) == 0)" (- "-") (parenthesized_expression "((*(uint *)(iVar15 + 0x10) & 8) == 0)" (( "(") (binary_expression "(*(uint *)(iVar15 + 0x10) & 8) == 0" (parenthesized_expression "(*(uint *)(iVar15 + 0x10) & 8)" (( "(") (binary_expression "*(uint *)(iVar15 + 0x10) & 8" (pointer_expression "*(uint *)(iVar15 + 0x10)" (* "*") (cast_expression "(uint *)(iVar15 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x10)" (( "(") (binary_expression "iVar15 + 0x10" (identifier "iVar15") (+ "+") (number_literal "0x10")) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")"))) (& "&") (number_literal "0xfbU")) () ")")) (+ "+") (number_literal "6"))) (; ";")) (} "}")))) (expression_statement "iVar15 = FUN_0003ddd0(iVar26);" (assignment_expression "iVar15 = FUN_0003ddd0(iVar26)" (identifier "iVar15") (= "=") (call_expression "FUN_0003ddd0(iVar26)" (identifier "FUN_0003ddd0") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (; ";")) (if_statement "if (iVar15 == 0) {\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }\n          else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar21 = FUN_00041590(iVar26);\n            iVar15 = *(int *)(iVar21 + 0x18);\n            uVar33 = *(uint *)(iVar21 + 0x14);\n            if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }\n            iVar21 = FUN_000414f0(iVar26);\n            uVar32 = (uint)bVar31;\n            *(uint *)(iVar21 + 0x28) = uVar33;\n            *(int *)(iVar21 + 0x2c) = iVar15;\n          }" ({ "{") (expression_statement "iVar21 = FUN_00041590(iVar26);" (assignment_expression "iVar21 = FUN_00041590(iVar26)" (identifier "iVar21") (= "=") (call_expression "FUN_00041590(iVar26)" (identifier "FUN_00041590") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (; ";")) (expression_statement "iVar15 = *(int *)(iVar21 + 0x18);" (assignment_expression "iVar15 = *(int *)(iVar21 + 0x18)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(iVar21 + 0x18)" (* "*") (cast_expression "(int *)(iVar21 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x18)" (( "(") (binary_expression "iVar21 + 0x18" (identifier "iVar21") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "uVar33 = *(uint *)(iVar21 + 0x14);" (assignment_expression "uVar33 = *(uint *)(iVar21 + 0x14)" (identifier "uVar33") (= "=") (pointer_expression "*(uint *)(iVar21 + 0x14)" (* "*") (cast_expression "(uint *)(iVar21 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x14)" (( "(") (binary_expression "iVar21 + 0x14" (identifier "iVar21") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if ((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {\n              bVar31 = 6;\n            }\n            else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }" (if "if") (parenthesized_expression "((iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33)))" (( "(") (binary_expression "(iVar15 == 0 && uVar33 == 0) ||\n               (uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))" (parenthesized_expression "(iVar15 == 0 && uVar33 == 0)" (( "(") (binary_expression "iVar15 == 0 && uVar33 == 0" (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) (&& "&&") (binary_expression "uVar33 == 0" (identifier "uVar33") (== "==") (number_literal "0"))) () ")")) (|| "||") (parenthesized_expression "(uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))" (( "(") (comma_expression "uVar32 = bfd_get_gp_size(DAT_00081544),\n               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33)" (assignment_expression "uVar32 = bfd_get_gp_size(DAT_00081544)" (identifier "uVar32") (= "=") (call_expression "bfd_get_gp_size(DAT_00081544)" (identifier "bfd_get_gp_size") (argument_list "(DAT_00081544)" (( "(") (identifier "DAT_00081544") () ")")))) (, ",") (binary_expression "iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33)" (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "(uint)-iVar15 < (uint)(uVar32 < uVar33)" (binary_expression "(uint)-iVar15" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (- "-") (identifier "iVar15")) (< "<") (call_expression "(uint)(uVar32 < uVar33)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar32 < uVar33)" (( "(") (binary_expression "uVar32 < uVar33" (identifier "uVar32") (< "<") (identifier "uVar33")) () ")")))))) () ")"))) () ")")) (compound_statement "{\n              bVar31 = 6;\n            }" ({ "{") (expression_statement "bVar31 = 6;" (assignment_expression "bVar31 = 6" (identifier "bVar31") (= "=") (number_literal "6")) (; ";")) (} "}")) (else_clause "else {\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }" (else "else") (compound_statement "{\n              puVar6[0xd] = uVar33;\n              bVar31 = 0x15;\n              puVar6[0xe] = iVar15;\n            }" ({ "{") (expression_statement "puVar6[0xd] = uVar33;" (assignment_expression "puVar6[0xd] = uVar33" (subscript_expression "puVar6[0xd]" (identifier "puVar6") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "uVar33")) (; ";")) (expression_statement "bVar31 = 0x15;" (assignment_expression "bVar31 = 0x15" (identifier "bVar31") (= "=") (number_literal "0x15")) (; ";")) (expression_statement "puVar6[0xe] = iVar15;" (assignment_expression "puVar6[0xe] = iVar15" (subscript_expression "puVar6[0xe]" (identifier "puVar6") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "iVar15")) (; ";")) (} "}")))) (expression_statement "iVar21 = FUN_000414f0(iVar26);" (assignment_expression "iVar21 = FUN_000414f0(iVar26)" (identifier "iVar21") (= "=") (call_expression "FUN_000414f0(iVar26)" (identifier "FUN_000414f0") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (; ";")) (expression_statement "uVar32 = (uint)bVar31;" (assignment_expression "uVar32 = (uint)bVar31" (identifier "uVar32") (= "=") (cast_expression "(uint)bVar31" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar31"))) (; ";")) (expression_statement "*(uint *)(iVar21 + 0x28) = uVar33;" (assignment_expression "*(uint *)(iVar21 + 0x28) = uVar33" (pointer_expression "*(uint *)(iVar21 + 0x28)" (* "*") (cast_expression "(uint *)(iVar21 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x28)" (( "(") (binary_expression "iVar21 + 0x28" (identifier "iVar21") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "uVar33")) (; ";")) (expression_statement "*(int *)(iVar21 + 0x2c) = iVar15;" (assignment_expression "*(int *)(iVar21 + 0x2c) = iVar15" (pointer_expression "*(int *)(iVar21 + 0x2c)" (* "*") (cast_expression "(int *)(iVar21 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x2c)" (( "(") (binary_expression "iVar21 + 0x2c" (identifier "iVar21") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (identifier "iVar15")) (; ";")) (} "}")) (else_clause "else {\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }" (else "else") (compound_statement "{\n            iVar15 = FUN_0003dd80(iVar26);\n            if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }\n          }" ({ "{") (expression_statement "iVar15 = FUN_0003dd80(iVar26);" (assignment_expression "iVar15 = FUN_0003dd80(iVar26)" (identifier "iVar15") (= "=") (call_expression "FUN_0003dd80(iVar26)" (identifier "FUN_0003dd80") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (; ";")) (if_statement "if (iVar15 == 0) {\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n            else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              uVar32 = 1;\n              if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }" ({ "{") (expression_statement "uVar32 = 1;" (assignment_expression "uVar32 = 1" (identifier "uVar32") (= "=") (number_literal "1")) (; ";")) (if_statement "if (puVar23 != DAT_00081494) {\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }" (if "if") (parenthesized_expression "(puVar23 != DAT_00081494)" (( "(") (binary_expression "puVar23 != DAT_00081494" (identifier "puVar23") (!= "!=") (identifier "DAT_00081494")) () ")")) (compound_statement "{\n                uVar32 = 2;\n                bVar41 = puVar23 < DAT_000813f0;\n                bVar42 = puVar23 == DAT_000813f0;\n                if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }" ({ "{") (expression_statement "uVar32 = 2;" (assignment_expression "uVar32 = 2" (identifier "uVar32") (= "=") (number_literal "2")) (; ";")) (expression_statement "bVar41 = puVar23 < DAT_000813f0;" (assignment_expression "bVar41 = puVar23 < DAT_000813f0" (identifier "bVar41") (= "=") (binary_expression "puVar23 < DAT_000813f0" (identifier "puVar23") (< "<") (identifier "DAT_000813f0"))) (; ";")) (expression_statement "bVar42 = puVar23 == DAT_000813f0;" (assignment_expression "bVar42 = puVar23 == DAT_000813f0" (identifier "bVar42") (= "=") (binary_expression "puVar23 == DAT_000813f0" (identifier "puVar23") (== "==") (identifier "DAT_000813f0"))) (; ";")) (if_statement "if (!bVar42) {\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }" (if "if") (parenthesized_expression "(!bVar42)" (( "(") (unary_expression "!bVar42" (! "!") (identifier "bVar42")) () ")")) (compound_statement "{\n                  iVar15 = 7;\n                  uVar32 = 0xf;\n                  pbVar34 = pbVar35;\n                  pbVar39 = (byte *)".rdata";\n                  do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);\n                  bVar40 = false;\n                  bVar41 = (!bVar41 && !bVar42) == bVar41;\n                  if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }" ({ "{") (expression_statement "iVar15 = 7;" (assignment_expression "iVar15 = 7" (identifier "iVar15") (= "=") (number_literal "7")) (; ";")) (expression_statement "uVar32 = 0xf;" (assignment_expression "uVar32 = 0xf" (identifier "uVar32") (= "=") (number_literal "0xf")) (; ";")) (expression_statement "pbVar34 = pbVar35;" (assignment_expression "pbVar34 = pbVar35" (identifier "pbVar34") (= "=") (identifier "pbVar35")) (; ";")) (expression_statement "pbVar39 = (byte *)".rdata";" (assignment_expression "pbVar39 = (byte *)".rdata"" (identifier "pbVar39") (= "=") (cast_expression "(byte *)".rdata"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".rdata"" (" """) (string_content ".rdata") (" """)))) (; ";")) (do_statement "do {\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  } while (bVar42);" (do "do") (compound_statement "{\n                    if (iVar15 == 0) break;\n                    iVar15 = iVar15 + -1;\n                    bVar41 = *pbVar34 < *pbVar39;\n                    bVar42 = *pbVar34 == *pbVar39;\n                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                  }" ({ "{") (if_statement "if (iVar15 == 0) break;" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" (identifier "iVar15") (= "=") (binary_expression "iVar15 + -1" (identifier "iVar15") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar41 = *pbVar34 < *pbVar39;" (assignment_expression "bVar41 = *pbVar34 < *pbVar39" (identifier "bVar41") (= "=") (binary_expression "*pbVar34 < *pbVar39" (pointer_expression "*pbVar34" (* "*") (identifier "pbVar34")) (< "<") (pointer_expression "*pbVar39" (* "*") (identifier "pbVar39")))) (; ";")) (expression_statement "bVar42 = *pbVar34 == *pbVar39;" (assignment_expression "bVar42 = *pbVar34 == *pbVar39" (identifier "bVar42") (= "=") (binary_expression "*pbVar34 == *pbVar39" (pointer_expression "*pbVar34" (* "*") (identifier "pbVar34")) (== "==") (pointer_expression "*pbVar39" (* "*") (identifier "pbVar39")))) (; ";")) (expression_statement "pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;" (assignment_expression "pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1" (identifier "pbVar34") (= "=") (binary_expression "pbVar34 + (uint)bVar43 * -2 + 1" (binary_expression "pbVar34 + (uint)bVar43 * -2" (identifier "pbVar34") (+ "+") (binary_expression "(uint)bVar43 * -2" (cast_expression "(uint)bVar43" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar43")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;" (assignment_expression "pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1" (identifier "pbVar39") (= "=") (binary_expression "pbVar39 + (uint)bVar43 * -2 + 1" (binary_expression "pbVar39 + (uint)bVar43 * -2" (identifier "pbVar39") (+ "+") (binary_expression "(uint)bVar43 * -2" (cast_expression "(uint)bVar43" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar43")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar42)" (( "(") (identifier "bVar42") () ")")) (; ";")) (expression_statement "bVar40 = false;" (assignment_expression "bVar40 = false" (identifier "bVar40") (= "=") (false "false")) (; ";")) (expression_statement "bVar41 = (!bVar41 && !bVar42) == bVar41;" (assignment_expression "bVar41 = (!bVar41 && !bVar42) == bVar41" (identifier "bVar41") (= "=") (binary_expression "(!bVar41 && !bVar42) == bVar41" (parenthesized_expression "(!bVar41 && !bVar42)" (( "(") (binary_expression "!bVar41 && !bVar42" (unary_expression "!bVar41" (! "!") (identifier "bVar41")) (&& "&&") (unary_expression "!bVar42" (! "!") (identifier "bVar42"))) () ")")) (== "==") (identifier "bVar41"))) (; ";")) (if_statement "if (!bVar41) {\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }" (if "if") (parenthesized_expression "(!bVar41)" (( "(") (unary_expression "!bVar41" (! "!") (identifier "bVar41")) () ")")) (compound_statement "{\n                    iVar15 = 8;\n                    pbVar34 = pbVar35;\n                    pbVar39 = (byte *)".rodata";\n                    do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);\n                    bVar42 = false;\n                    bVar41 = (!bVar40 && !bVar41) == bVar40;\n                    if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }\n                  }" ({ "{") (expression_statement "iVar15 = 8;" (assignment_expression "iVar15 = 8" (identifier "iVar15") (= "=") (number_literal "8")) (; ";")) (expression_statement "pbVar34 = pbVar35;" (assignment_expression "pbVar34 = pbVar35" (identifier "pbVar34") (= "=") (identifier "pbVar35")) (; ";")) (expression_statement "pbVar39 = (byte *)".rodata";" (assignment_expression "pbVar39 = (byte *)".rodata"" (identifier "pbVar39") (= "=") (cast_expression "(byte *)".rodata"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".rodata"" (" """) (string_content ".rodata") (" """)))) (; ";")) (do_statement "do {\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    } while (bVar41);" (do "do") (compound_statement "{\n                      if (iVar15 == 0) break;\n                      iVar15 = iVar15 + -1;\n                      bVar40 = *pbVar34 < *pbVar39;\n                      bVar41 = *pbVar34 == *pbVar39;\n                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                    }" ({ "{") (if_statement "if (iVar15 == 0) break;" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" (identifier "iVar15") (= "=") (binary_expression "iVar15 + -1" (identifier "iVar15") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar40 = *pbVar34 < *pbVar39;" (assignment_expression "bVar40 = *pbVar34 < *pbVar39" (identifier "bVar40") (= "=") (binary_expression "*pbVar34 < *pbVar39" (pointer_expression "*pbVar34" (* "*") (identifier "pbVar34")) (< "<") (pointer_expression "*pbVar39" (* "*") (identifier "pbVar39")))) (; ";")) (expression_statement "bVar41 = *pbVar34 == *pbVar39;" (assignment_expression "bVar41 = *pbVar34 == *pbVar39" (identifier "bVar41") (= "=") (binary_expression "*pbVar34 == *pbVar39" (pointer_expression "*pbVar34" (* "*") (identifier "pbVar34")) (== "==") (pointer_expression "*pbVar39" (* "*") (identifier "pbVar39")))) (; ";")) (expression_statement "pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;" (assignment_expression "pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1" (identifier "pbVar34") (= "=") (binary_expression "pbVar34 + (uint)bVar43 * -2 + 1" (binary_expression "pbVar34 + (uint)bVar43 * -2" (identifier "pbVar34") (+ "+") (binary_expression "(uint)bVar43 * -2" (cast_expression "(uint)bVar43" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar43")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;" (assignment_expression "pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1" (identifier "pbVar39") (= "=") (binary_expression "pbVar39 + (uint)bVar43 * -2 + 1" (binary_expression "pbVar39 + (uint)bVar43 * -2" (identifier "pbVar39") (+ "+") (binary_expression "(uint)bVar43 * -2" (cast_expression "(uint)bVar43" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar43")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar41)" (( "(") (identifier "bVar41") () ")")) (; ";")) (expression_statement "bVar42 = false;" (assignment_expression "bVar42 = false" (identifier "bVar42") (= "=") (false "false")) (; ";")) (expression_statement "bVar41 = (!bVar40 && !bVar41) == bVar40;" (assignment_expression "bVar41 = (!bVar40 && !bVar41) == bVar40" (identifier "bVar41") (= "=") (binary_expression "(!bVar40 && !bVar41) == bVar40" (parenthesized_expression "(!bVar40 && !bVar41)" (( "(") (binary_expression "!bVar40 && !bVar41" (unary_expression "!bVar40" (! "!") (identifier "bVar40")) (&& "&&") (unary_expression "!bVar41" (! "!") (identifier "bVar41"))) () ")")) (== "==") (identifier "bVar40"))) (; ";")) (if_statement "if (!bVar41) {\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }" (if "if") (parenthesized_expression "(!bVar41)" (( "(") (unary_expression "!bVar41" (! "!") (identifier "bVar41")) () ")")) (compound_statement "{\n                      iVar15 = 7;\n                      uVar32 = 0xd;\n                      pbVar34 = pbVar35;\n                      pbVar39 = (byte *)".sdata";\n                      do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);\n                      if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }\n                    }" ({ "{") (expression_statement "iVar15 = 7;" (assignment_expression "iVar15 = 7" (identifier "iVar15") (= "=") (number_literal "7")) (; ";")) (expression_statement "uVar32 = 0xd;" (assignment_expression "uVar32 = 0xd" (identifier "uVar32") (= "=") (number_literal "0xd")) (; ";")) (expression_statement "pbVar34 = pbVar35;" (assignment_expression "pbVar34 = pbVar35" (identifier "pbVar34") (= "=") (identifier "pbVar35")) (; ";")) (expression_statement "pbVar39 = (byte *)".sdata";" (assignment_expression "pbVar39 = (byte *)".sdata"" (identifier "pbVar39") (= "=") (cast_expression "(byte *)".sdata"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".sdata"" (" """) (string_content ".sdata") (" """)))) (; ";")) (do_statement "do {\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      } while (bVar41);" (do "do") (compound_statement "{\n                        if (iVar15 == 0) break;\n                        iVar15 = iVar15 + -1;\n                        bVar42 = *pbVar34 < *pbVar39;\n                        bVar41 = *pbVar34 == *pbVar39;\n                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;\n                      }" ({ "{") (if_statement "if (iVar15 == 0) break;" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" (identifier "iVar15") (= "=") (binary_expression "iVar15 + -1" (identifier "iVar15") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar42 = *pbVar34 < *pbVar39;" (assignment_expression "bVar42 = *pbVar34 < *pbVar39" (identifier "bVar42") (= "=") (binary_expression "*pbVar34 < *pbVar39" (pointer_expression "*pbVar34" (* "*") (identifier "pbVar34")) (< "<") (pointer_expression "*pbVar39" (* "*") (identifier "pbVar39")))) (; ";")) (expression_statement "bVar41 = *pbVar34 == *pbVar39;" (assignment_expression "bVar41 = *pbVar34 == *pbVar39" (identifier "bVar41") (= "=") (binary_expression "*pbVar34 == *pbVar39" (pointer_expression "*pbVar34" (* "*") (identifier "pbVar34")) (== "==") (pointer_expression "*pbVar39" (* "*") (identifier "pbVar39")))) (; ";")) (expression_statement "pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;" (assignment_expression "pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1" (identifier "pbVar34") (= "=") (binary_expression "pbVar34 + (uint)bVar43 * -2 + 1" (binary_expression "pbVar34 + (uint)bVar43 * -2" (identifier "pbVar34") (+ "+") (binary_expression "(uint)bVar43 * -2" (cast_expression "(uint)bVar43" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar43")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;" (assignment_expression "pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1" (identifier "pbVar39") (= "=") (binary_expression "pbVar39 + (uint)bVar43 * -2 + 1" (binary_expression "pbVar39 + (uint)bVar43 * -2" (identifier "pbVar39") (+ "+") (binary_expression "(uint)bVar43 * -2" (cast_expression "(uint)bVar43" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar43")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar41)" (( "(") (identifier "bVar41") () ")")) (; ";")) (if_statement "if ((!bVar42 && !bVar41) != bVar42) {\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }" (if "if") (parenthesized_expression "((!bVar42 && !bVar41) != bVar42)" (( "(") (binary_expression "(!bVar42 && !bVar41) != bVar42" (parenthesized_expression "(!bVar42 && !bVar41)" (( "(") (binary_expression "!bVar42 && !bVar41" (unary_expression "!bVar42" (! "!") (identifier "bVar42")) (&& "&&") (unary_expression "!bVar41" (! "!") (identifier "bVar41"))) () ")")) (!= "!=") (identifier "bVar42")) () ")")) (compound_statement "{\n                        uVar32 = 3;\n                        bVar41 = puVar23 < DAT_0008136c;\n                        bVar42 = puVar23 == DAT_0008136c;\n                        if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }\n                      }" ({ "{") (expression_statement "uVar32 = 3;" (assignment_expression "uVar32 = 3" (identifier "uVar32") (= "=") (number_literal "3")) (; ";")) (expression_statement "bVar41 = puVar23 < DAT_0008136c;" (assignment_expression "bVar41 = puVar23 < DAT_0008136c" (identifier "bVar41") (= "=") (binary_expression "puVar23 < DAT_0008136c" (identifier "puVar23") (< "<") (identifier "DAT_0008136c"))) (; ";")) (expression_statement "bVar42 = puVar23 == DAT_0008136c;" (assignment_expression "bVar42 = puVar23 == DAT_0008136c" (identifier "bVar42") (= "=") (binary_expression "puVar23 == DAT_0008136c" (identifier "puVar23") (== "==") (identifier "DAT_0008136c"))) (; ";")) (if_statement "if (!bVar42) {\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }" (if "if") (parenthesized_expression "(!bVar42)" (( "(") (unary_expression "!bVar42" (! "!") (identifier "bVar42")) () ")")) (compound_statement "{\n                          iVar15 = 6;\n                          uVar32 = 0xe;\n                          pbVar34 = (byte *)".sbss";\n                          do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);\n                          if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }\n                        }" ({ "{") (expression_statement "iVar15 = 6;" (assignment_expression "iVar15 = 6" (identifier "iVar15") (= "=") (number_literal "6")) (; ";")) (expression_statement "uVar32 = 0xe;" (assignment_expression "uVar32 = 0xe" (identifier "uVar32") (= "=") (number_literal "0xe")) (; ";")) (expression_statement "pbVar34 = (byte *)".sbss";" (assignment_expression "pbVar34 = (byte *)".sbss"" (identifier "pbVar34") (= "=") (cast_expression "(byte *)".sbss"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".sbss"" (" """) (string_content ".sbss") (" """)))) (; ";")) (do_statement "do {\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          } while (bVar42);" (do "do") (compound_statement "{\n                            if (iVar15 == 0) break;\n                            iVar15 = iVar15 + -1;\n                            bVar41 = *pbVar35 < *pbVar34;\n                            bVar42 = *pbVar35 == *pbVar34;\n                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;\n                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;\n                          }" ({ "{") (if_statement "if (iVar15 == 0) break;" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" (identifier "iVar15") (= "=") (binary_expression "iVar15 + -1" (identifier "iVar15") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar41 = *pbVar35 < *pbVar34;" (assignment_expression "bVar41 = *pbVar35 < *pbVar34" (identifier "bVar41") (= "=") (binary_expression "*pbVar35 < *pbVar34" (pointer_expression "*pbVar35" (* "*") (identifier "pbVar35")) (< "<") (pointer_expression "*pbVar34" (* "*") (identifier "pbVar34")))) (; ";")) (expression_statement "bVar42 = *pbVar35 == *pbVar34;" (assignment_expression "bVar42 = *pbVar35 == *pbVar34" (identifier "bVar42") (= "=") (binary_expression "*pbVar35 == *pbVar34" (pointer_expression "*pbVar35" (* "*") (identifier "pbVar35")) (== "==") (pointer_expression "*pbVar34" (* "*") (identifier "pbVar34")))) (; ";")) (expression_statement "pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;" (assignment_expression "pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1" (identifier "pbVar35") (= "=") (binary_expression "pbVar35 + (uint)bVar43 * -2 + 1" (binary_expression "pbVar35 + (uint)bVar43 * -2" (identifier "pbVar35") (+ "+") (binary_expression "(uint)bVar43 * -2" (cast_expression "(uint)bVar43" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar43")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;" (assignment_expression "pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1" (identifier "pbVar34") (= "=") (binary_expression "pbVar34 + (uint)bVar43 * -2 + 1" (binary_expression "pbVar34 + (uint)bVar43 * -2" (identifier "pbVar34") (+ "+") (binary_expression "(uint)bVar43 * -2" (cast_expression "(uint)bVar43" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar43")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar42)" (( "(") (identifier "bVar42") () ")")) (; ";")) (if_statement "if ((!bVar41 && !bVar42) != bVar41) {\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }" (if "if") (parenthesized_expression "((!bVar41 && !bVar42) != bVar41)" (( "(") (binary_expression "(!bVar41 && !bVar42) != bVar41" (parenthesized_expression "(!bVar41 && !bVar42)" (( "(") (binary_expression "!bVar41 && !bVar42" (unary_expression "!bVar41" (! "!") (identifier "bVar41")) (&& "&&") (unary_expression "!bVar42" (! "!") (identifier "bVar42"))) () ")")) (!= "!=") (identifier "bVar41")) () ")")) (compound_statement "{\n                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;\n                          }" ({ "{") (expression_statement "uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;" (assignment_expression "uVar32 = (uint)(puVar23 == puVar20) * 3 + 2" (identifier "uVar32") (= "=") (binary_expression "(uint)(puVar23 == puVar20) * 3 + 2" (binary_expression "(uint)(puVar23 == puVar20) * 3" (call_expression "(uint)(puVar23 == puVar20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar23 == puVar20)" (( "(") (binary_expression "puVar23 == puVar20" (identifier "puVar23") (== "==") (identifier "puVar20")) () ")"))) (* "*") (number_literal "3")) (+ "+") (number_literal "2"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }" (else "else") (compound_statement "{\n              lVar45 = FUN_0003fad0(iVar26);\n              if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }\n              uVar32 = 0x11;\n            }" ({ "{") (expression_statement "lVar45 = FUN_0003fad0(iVar26);" (assignment_expression "lVar45 = FUN_0003fad0(iVar26)" (identifier "lVar45") (= "=") (call_expression "FUN_0003fad0(iVar26)" (identifier "FUN_0003fad0") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (; ";")) (if_statement "if (lVar45 != 0) {\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }" (if "if") (parenthesized_expression "(lVar45 != 0)" (( "(") (binary_expression "lVar45 != 0" (identifier "lVar45") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                uVar44 = FUN_0003fad0(iVar26);\n                iVar15 = (int)((ulonglong)uVar44 >> 0x20);\n                uVar33 = bfd_get_gp_size(DAT_00081544);\n                uVar32 = 0x12;\n                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;\n              }" ({ "{") (expression_statement "uVar44 = FUN_0003fad0(iVar26);" (assignment_expression "uVar44 = FUN_0003fad0(iVar26)" (identifier "uVar44") (= "=") (call_expression "FUN_0003fad0(iVar26)" (identifier "FUN_0003fad0") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (; ";")) (expression_statement "iVar15 = (int)((ulonglong)uVar44 >> 0x20);" (assignment_expression "iVar15 = (int)((ulonglong)uVar44 >> 0x20)" (identifier "iVar15") (= "=") (cast_expression "(int)((ulonglong)uVar44 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar44 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar44 >> 0x20" (cast_expression "(ulonglong)uVar44" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar44")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar33 = bfd_get_gp_size(DAT_00081544);" (assignment_expression "uVar33 = bfd_get_gp_size(DAT_00081544)" (identifier "uVar33") (= "=") (call_expression "bfd_get_gp_size(DAT_00081544)" (identifier "bfd_get_gp_size") (argument_list "(DAT_00081544)" (( "(") (identifier "DAT_00081544") () ")")))) (; ";")) (expression_statement "uVar32 = 0x12;" (assignment_expression "uVar32 = 0x12" (identifier "uVar32") (= "=") (number_literal "0x12")) (; ";")) (if_statement "if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)\n                goto LAB_00023df1;" (if "if") (parenthesized_expression "(iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)" (( "(") (binary_expression "iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15" (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) (&& "&&") (binary_expression "(uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15" (call_expression "(uint)(uVar33 < (uint)uVar44)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar33 < (uint)uVar44)" (( "(") (binary_expression "uVar33 < (uint)uVar44" (identifier "uVar33") (< "<") (cast_expression "(uint)uVar44" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar44"))) () ")"))) (<= "<=") (binary_expression "(uint)-iVar15" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (- "-") (identifier "iVar15")))) () ")")) (goto_statement "goto LAB_00023df1;" (goto "goto") (statement_identifier "LAB_00023df1") (; ";"))) (} "}"))) (expression_statement "uVar32 = 0x11;" (assignment_expression "uVar32 = 0x11" (identifier "uVar32") (= "=") (number_literal "0x11")) (; ";")) (} "}")))) (} "}")))) (labeled_statement "LAB_00023df1:\n          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;" (statement_identifier "LAB_00023df1") (: ":") (expression_statement "*(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;" (assignment_expression "*(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f" (pointer_expression "*(byte *)(puVar6 + 0xf)" (* "*") (cast_expression "(byte *)(puVar6 + 0xf)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 0xf)" (( "(") (binary_expression "puVar6 + 0xf" (identifier "puVar6") (+ "+") (number_literal "0xf")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f" (binary_expression "*(byte *)(puVar6 + 0xf) & 0xc0" (pointer_expression "*(byte *)(puVar6 + 0xf)" (* "*") (cast_expression "(byte *)(puVar6 + 0xf)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 0xf)" (( "(") (binary_expression "puVar6 + 0xf" (identifier "puVar6") (+ "+") (number_literal "0xf")) () ")")))) (& "&") (number_literal "0xc0")) (| "|") (binary_expression "bVar11 & 0x3f" (identifier "bVar11") (& "&") (number_literal "0x3f")))) (; ";"))) (expression_statement "*(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);" (assignment_expression "*(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6)" (pointer_expression "*(ushort *)(puVar6 + 0xf)" (* "*") (cast_expression "(ushort *)(puVar6 + 0xf)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 0xf)" (( "(") (binary_expression "puVar6 + 0xf" (identifier "puVar6") (+ "+") (number_literal "0xf")) () ")")))) (= "=") (binary_expression "*(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6)" (binary_expression "*(ushort *)(puVar6 + 0xf) & 0xf83f" (pointer_expression "*(ushort *)(puVar6 + 0xf)" (* "*") (cast_expression "(ushort *)(puVar6 + 0xf)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 0xf)" (( "(") (binary_expression "puVar6 + 0xf" (identifier "puVar6") (+ "+") (number_literal "0xf")) () ")")))) (& "&") (number_literal "0xf83f")) (| "|") (call_expression "(ushort)(uVar32 << 6)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(uVar32 << 6)" (( "(") (binary_expression "uVar32 << 6" (identifier "uVar32") (<< "<<") (number_literal "6")) () ")"))))) (; ";")) (} "}"))) (expression_statement "iVar15 = FUN_0003dc20(iVar26);" (assignment_expression "iVar15 = FUN_0003dc20(iVar26)" (identifier "iVar15") (= "=") (call_expression "FUN_0003dc20(iVar26)" (identifier "FUN_0003dc20") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (; ";")) (if_statement "if (((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||\n           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)) {\n          iVar15 = FUN_0003dd80(iVar26);\n          if (iVar15 != 0) goto LAB_0002410f;\n          if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }\n          else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }\nLAB_0002402d:\n          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;\n          if (uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }\n          (*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);\n          local_a0 = (undefined4 ******)((int)local_a0 + uVar36);\n          puVar6[9] = local_a8;\n          puVar7 = (uint *)puVar6[5];\n          if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {\n            puVar7[3] = (int)local_a8 - local_8c;\n          }\n          local_a8 = (undefined4 ******)((int)local_a8 + 1);\n          if ((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }\n        else {\n          FUN_0003dd80(iVar26);\nLAB_0002410f:\n          if (puVar6[6] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (puVar6[8] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          iVar15 = FUN_00041590(iVar26);\n          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||\n           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300))" (( "(") (binary_expression "((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||\n           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)" (parenthesized_expression "((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0))))" (( "(") (binary_expression "(((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||\n            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))" (parenthesized_expression "(((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0))" (( "(") (binary_expression "((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)" (parenthesized_expression "((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0))" (( "(") (binary_expression "(iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)" (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)" (( "(") (comma_expression "iVar15 = FUN_0003dc90(iVar26), iVar15 == 0" (assignment_expression "iVar15 = FUN_0003dc90(iVar26)" (identifier "iVar15") (= "=") (call_expression "FUN_0003dc90(iVar26)" (identifier "FUN_0003dc90") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (, ",") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)" (( "(") (comma_expression "iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0" (assignment_expression "iVar15 = FUN_0003ddd0(iVar26)" (identifier "iVar15") (= "=") (call_expression "FUN_0003ddd0(iVar26)" (identifier "FUN_0003ddd0") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (, ",") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))" (( "(") (parenthesized_expression "(puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0))" (( "(") (binary_expression "puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)" (binary_expression "puVar6[5] != 0" (subscript_expression "puVar6[5]" (identifier "puVar6") ([ "[") (number_literal "5") (] "]")) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)" (( "(") (binary_expression "(*(byte *)(puVar6 + 0xf) & 0x3f) == 0" (parenthesized_expression "(*(byte *)(puVar6 + 0xf) & 0x3f)" (( "(") (binary_expression "*(byte *)(puVar6 + 0xf) & 0x3f" (pointer_expression "*(byte *)(puVar6 + 0xf)" (* "*") (cast_expression "(byte *)(puVar6 + 0xf)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 0xf)" (( "(") (binary_expression "puVar6 + 0xf" (identifier "puVar6") (+ "+") (number_literal "0xf")) () ")")))) (& "&") (number_literal "0x3f")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)" (( "(") (binary_expression "((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300" (parenthesized_expression "((uint)puVar6[0xf] >> 0xc & 0xfff00)" (( "(") (binary_expression "(uint)puVar6[0xf] >> 0xc & 0xfff00" (binary_expression "(uint)puVar6[0xf] >> 0xc" (cast_expression "(uint)puVar6[0xf]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar6[0xf]" (identifier "puVar6") ([ "[") (number_literal "0xf") (] "]"))) (>> ">>") (number_literal "0xc")) (& "&") (number_literal "0xfff00")) () ")")) (== "==") (number_literal "0x8f300")) () ")"))) () ")")) (compound_statement "{\n          iVar15 = FUN_0003dd80(iVar26);\n          if (iVar15 != 0) goto LAB_0002410f;\n          if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }\n          else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }\nLAB_0002402d:\n          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;\n          if (uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }\n          (*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);\n          local_a0 = (undefined4 ******)((int)local_a0 + uVar36);\n          puVar6[9] = local_a8;\n          puVar7 = (uint *)puVar6[5];\n          if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {\n            puVar7[3] = (int)local_a8 - local_8c;\n          }\n          local_a8 = (undefined4 ******)((int)local_a8 + 1);\n          if ((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }\n        }" ({ "{") (expression_statement "iVar15 = FUN_0003dd80(iVar26);" (assignment_expression "iVar15 = FUN_0003dd80(iVar26)" (identifier "iVar15") (= "=") (call_expression "FUN_0003dd80(iVar26)" (identifier "FUN_0003dd80") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (; ";")) (if_statement "if (iVar15 != 0) goto LAB_0002410f;" (if "if") (parenthesized_expression "(iVar15 != 0)" (( "(") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002410f;" (goto "goto") (statement_identifier "LAB_0002410f") (; ";"))) (if_statement "if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }\n          else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }" (if "if") (parenthesized_expression "(((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0))" (( "(") (binary_expression "((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||\n             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)" (parenthesized_expression "((*(byte *)(puVar6 + 0xf) & 0x3f) == 8)" (( "(") (binary_expression "(*(byte *)(puVar6 + 0xf) & 0x3f) == 8" (parenthesized_expression "(*(byte *)(puVar6 + 0xf) & 0x3f)" (( "(") (binary_expression "*(byte *)(puVar6 + 0xf) & 0x3f" (pointer_expression "*(byte *)(puVar6 + 0xf)" (* "*") (cast_expression "(byte *)(puVar6 + 0xf)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 0xf)" (( "(") (binary_expression "puVar6 + 0xf" (identifier "puVar6") (+ "+") (number_literal "0xf")) () ")")))) (& "&") (number_literal "0x3f")) () ")")) (== "==") (number_literal "8")) () ")")) (|| "||") (parenthesized_expression "(pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)" (( "(") (comma_expression "pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0" (assignment_expression "pcVar24 = strchr((char *)*puVar6,1)" (identifier "pcVar24") (= "=") (call_expression "strchr((char *)*puVar6,1)" (identifier "strchr") (argument_list "((char *)*puVar6,1)" (( "(") (cast_expression "(char *)*puVar6" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar6" (* "*") (identifier "puVar6"))) (, ",") (number_literal "1") () ")")))) (, ",") (binary_expression "pcVar24 != (char *)0x0" (identifier "pcVar24") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;\n            piVar25 = (int *)puVar6[8];\n            if (piVar25 == (int *)0x0) goto LAB_0002402d;\n            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\nLAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);\n            do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);\n          }" ({ "{") (expression_statement "local_b4 = (undefined4 *******)puVar6[6];" (assignment_expression "local_b4 = (undefined4 *******)puVar6[6]" (identifier "local_b4") (= "=") (cast_expression "(undefined4 *******)puVar6[6]" (( "(") (type_descriptor "undefined4 *******" (type_identifier "undefined4") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "puVar6[6]" (identifier "puVar6") ([ "[") (number_literal "6") (] "]")))) (; ";")) (if_statement "if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;" (if "if") (parenthesized_expression "(local_b4 != (undefined4 *******)0x0)" (( "(") (binary_expression "local_b4 != (undefined4 *******)0x0" (identifier "local_b4") (!= "!=") (cast_expression "(undefined4 *******)0x0" (( "(") (type_descriptor "undefined4 *******" (type_identifier "undefined4") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00023e89;" (goto "goto") (statement_identifier "LAB_00023e89") (; ";"))) (expression_statement "piVar25 = (int *)puVar6[8];" (assignment_expression "piVar25 = (int *)puVar6[8]" (identifier "piVar25") (= "=") (cast_expression "(int *)puVar6[8]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar6[8]" (identifier "puVar6") ([ "[") (number_literal "8") (] "]")))) (; ";")) (if_statement "if (piVar25 == (int *)0x0) goto LAB_0002402d;" (if "if") (parenthesized_expression "(piVar25 == (int *)0x0)" (( "(") (binary_expression "piVar25 == (int *)0x0" (identifier "piVar25") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0002402d;" (goto "goto") (statement_identifier "LAB_0002402d") (; ";"))) (expression_statement "local_a4 = (undefined4 *****)((int)local_a8 - local_8c);" (assignment_expression "local_a4 = (undefined4 *****)((int)local_a8 - local_8c)" (identifier "local_a4") (= "=") (cast_expression "(undefined4 *****)((int)local_a8 - local_8c)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)local_a8 - local_8c)" (( "(") (binary_expression "(int)local_a8 - local_8c" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (- "-") (identifier "local_8c")) () ")")))) (; ";")) (labeled_statement "LAB_00023ff8:\n            uVar13 = *(undefined4 *)((int)local_9c + 0x70);" (statement_identifier "LAB_00023ff8") (: ":") (expression_statement "uVar13 = *(undefined4 *)((int)local_9c + 0x70);" (assignment_expression "uVar13 = *(undefined4 *)((int)local_9c + 0x70)" (identifier "uVar13") (= "=") (pointer_expression "*(undefined4 *)((int)local_9c + 0x70)" (* "*") (cast_expression "(undefined4 *)((int)local_9c + 0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_9c + 0x70)" (( "(") (binary_expression "(int)local_9c + 0x70" (cast_expression "(int)local_9c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_9c")) (+ "+") (number_literal "0x70")) () ")"))))) (; ";"))) (do_statement "do {\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            } while (piVar25 != (int *)0x0);" (do "do") (compound_statement "{\n              iVar15 = piVar25[3];\n              *(undefined4 *)(piVar25[2] + 4) = uVar13;\n              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;\n              piVar25 = (int *)*piVar25;\n            }" ({ "{") (expression_statement "iVar15 = piVar25[3];" (assignment_expression "iVar15 = piVar25[3]" (identifier "iVar15") (= "=") (subscript_expression "piVar25[3]" (identifier "piVar25") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(piVar25[2] + 4) = uVar13;" (assignment_expression "*(undefined4 *)(piVar25[2] + 4) = uVar13" (pointer_expression "*(undefined4 *)(piVar25[2] + 4)" (* "*") (cast_expression "(undefined4 *)(piVar25[2] + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar25[2] + 4)" (( "(") (binary_expression "piVar25[2] + 4" (subscript_expression "piVar25[2]" (identifier "piVar25") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "*(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;" (assignment_expression "*(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc" (pointer_expression "*(uint *)(iVar15 + 4)" (* "*") (cast_expression "(uint *)(iVar15 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 4)" (( "(") (binary_expression "iVar15 + 4" (identifier "iVar15") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc" (binary_expression "*(uint *)(iVar15 + 4) & 0xfff" (pointer_expression "*(uint *)(iVar15 + 4)" (* "*") (cast_expression "(uint *)(iVar15 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 4)" (( "(") (binary_expression "iVar15 + 4" (identifier "iVar15") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xfff")) (| "|") (binary_expression "(int)local_a4 << 0xc" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (<< "<<") (number_literal "0xc")))) (; ";")) (expression_statement "piVar25 = (int *)*piVar25;" (assignment_expression "piVar25 = (int *)*piVar25" (identifier "piVar25") (= "=") (cast_expression "(int *)*piVar25" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar25" (* "*") (identifier "piVar25")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar25 != (int *)0x0)" (( "(") (binary_expression "piVar25 != (int *)0x0" (identifier "piVar25") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}")) (else_clause "else {\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }" (else "else") (compound_statement "{\n            uVar13 = FUN_000203f0(0);\n            puVar6[0xc] = uVar13;\n            local_b4 = (undefined4 *******)puVar6[6];\n            if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }\n          }" ({ "{") (expression_statement "uVar13 = FUN_000203f0(0);" (assignment_expression "uVar13 = FUN_000203f0(0)" (identifier "uVar13") (= "=") (call_expression "FUN_000203f0(0)" (identifier "FUN_000203f0") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "puVar6[0xc] = uVar13;" (assignment_expression "puVar6[0xc] = uVar13" (subscript_expression "puVar6[0xc]" (identifier "puVar6") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "local_b4 = (undefined4 *******)puVar6[6];" (assignment_expression "local_b4 = (undefined4 *******)puVar6[6]" (identifier "local_b4") (= "=") (cast_expression "(undefined4 *******)puVar6[6]" (( "(") (type_descriptor "undefined4 *******" (type_identifier "undefined4") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "puVar6[6]" (identifier "puVar6") ([ "[") (number_literal "6") (] "]")))) (; ";")) (if_statement "if (local_b4 == (undefined4 *******)0x0) {\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }\n            else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }" (if "if") (parenthesized_expression "(local_b4 == (undefined4 *******)0x0)" (( "(") (binary_expression "local_b4 == (undefined4 *******)0x0" (identifier "local_b4") (== "==") (cast_expression "(undefined4 *******)0x0" (( "(") (type_descriptor "undefined4 *******" (type_identifier "undefined4") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              piVar25 = (int *)puVar6[8];\n              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\njoined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;\n            }" ({ "{") (expression_statement "piVar25 = (int *)puVar6[8];" (assignment_expression "piVar25 = (int *)puVar6[8]" (identifier "piVar25") (= "=") (cast_expression "(int *)puVar6[8]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar6[8]" (identifier "puVar6") ([ "[") (number_literal "8") (] "]")))) (; ";")) (expression_statement "local_a4 = (undefined4 *****)((int)local_a8 - local_8c);" (assignment_expression "local_a4 = (undefined4 *****)((int)local_a8 - local_8c)" (identifier "local_a4") (= "=") (cast_expression "(undefined4 *****)((int)local_a8 - local_8c)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)local_a8 - local_8c)" (( "(") (binary_expression "(int)local_a8 - local_8c" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (- "-") (identifier "local_8c")) () ")")))) (; ";")) (labeled_statement "joined_r0x00024174:\n              if (piVar25 != (int *)0x0) goto LAB_00023ff8;" (statement_identifier "joined_r0x00024174") (: ":") (if_statement "if (piVar25 != (int *)0x0) goto LAB_00023ff8;" (if "if") (parenthesized_expression "(piVar25 != (int *)0x0)" (( "(") (binary_expression "piVar25 != (int *)0x0" (identifier "piVar25") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00023ff8;" (goto "goto") (statement_identifier "LAB_00023ff8") (; ";")))) (} "}")) (else_clause "else {\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }" (else "else") (compound_statement "{\nLAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);\n              if (iVar15 == -1) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }\n              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;\n              puVar6[0xf] = uVar32;\n              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }\n              bVar11 = *(byte *)((int)local_b4 + 0x3c);\n              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }\n              if (iVar26 == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }\n              if (*(int *)((int)local_b4 + 4) == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }\n              iVar15 = FUN_0003e1d0(iVar26);\n              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));\n              if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }\n              lVar45 = FUN_0003fad0(iVar26);\n              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));\n              uVar10 = lVar45 - lVar46;\n              if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }\n              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));\n              uVar13 = puVar6[0xe];\n              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];\n              *(undefined4 *)(iVar15 + 0x2c) = uVar13;\n              piVar25 = (int *)puVar6[8];\n              if (piVar25 != (int *)0x0) goto LAB_00024237;\n            }" ({ "{") (labeled_statement "LAB_00023e89:\n              iVar15 = *(int *)((int)local_b4 + 0x24);" (statement_identifier "LAB_00023e89") (: ":") (expression_statement "iVar15 = *(int *)((int)local_b4 + 0x24);" (assignment_expression "iVar15 = *(int *)((int)local_b4 + 0x24)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)((int)local_b4 + 0x24)" (* "*") (cast_expression "(int *)((int)local_b4 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_b4 + 0x24)" (( "(") (binary_expression "(int)local_b4 + 0x24" (cast_expression "(int)local_b4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b4")) (+ "+") (number_literal "0x24")) () ")"))))) (; ";"))) (if_statement "if (iVar15 == -1) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }" (if "if") (parenthesized_expression "(iVar15 == -1)" (( "(") (binary_expression "iVar15 == -1" (identifier "iVar15") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");\n              }" ({ "{") (expression_statement "FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");" (call_expression "FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols")" (identifier "FUN_00031740") (argument_list "("../../gas/ecoff.c",0x1020,"ecoff_build_symbols")" (( "(") (string_literal ""../../gas/ecoff.c"" (" """) (string_content "../../gas/ecoff.c") (" """)) (, ",") (number_literal "0x1020") (, ",") (string_literal ""ecoff_build_symbols"" (" """) (string_content "ecoff_build_symbols") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;" (assignment_expression "uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc" (identifier "uVar32") (= "=") (binary_expression "puVar6[0xf] & 0xfff | iVar15 << 0xc" (binary_expression "puVar6[0xf] & 0xfff" (subscript_expression "puVar6[0xf]" (identifier "puVar6") ([ "[") (number_literal "0xf") (] "]")) (& "&") (number_literal "0xfff")) (| "|") (binary_expression "iVar15 << 0xc" (identifier "iVar15") (<< "<<") (number_literal "0xc")))) (; ";")) (expression_statement "puVar6[0xf] = uVar32;" (assignment_expression "puVar6[0xf] = uVar32" (subscript_expression "puVar6[0xf]" (identifier "puVar6") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "uVar32")) (; ";")) (if_statement "if (((ushort)uVar32 & 0x7c0) != 0x2c0) {\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }" (if "if") (parenthesized_expression "(((ushort)uVar32 & 0x7c0) != 0x2c0)" (( "(") (binary_expression "((ushort)uVar32 & 0x7c0) != 0x2c0" (parenthesized_expression "((ushort)uVar32 & 0x7c0)" (( "(") (binary_expression "(ushort)uVar32 & 0x7c0" (cast_expression "(ushort)uVar32" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar32")) (& "&") (number_literal "0x7c0")) () ")")) (!= "!=") (number_literal "0x2c0")) () ")")) (compound_statement "{\n                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);\n              }" ({ "{") (expression_statement "puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);" (assignment_expression "puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30)" (subscript_expression "puVar6[0xc]" (identifier "puVar6") ([ "[") (number_literal "0xc") (] "]")) (= "=") (pointer_expression "*(undefined4 *)((int)local_b4 + 0x30)" (* "*") (cast_expression "(undefined4 *)((int)local_b4 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_b4 + 0x30)" (( "(") (binary_expression "(int)local_b4 + 0x30" (cast_expression "(int)local_b4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b4")) (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (} "}"))) (expression_statement "bVar11 = *(byte *)((int)local_b4 + 0x3c);" (assignment_expression "bVar11 = *(byte *)((int)local_b4 + 0x3c)" (identifier "bVar11") (= "=") (pointer_expression "*(byte *)((int)local_b4 + 0x3c)" (* "*") (cast_expression "(byte *)((int)local_b4 + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_b4 + 0x3c)" (( "(") (binary_expression "(int)local_b4 + 0x3c" (cast_expression "(int)local_b4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b4")) (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (if_statement "if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }\n              else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }" (if "if") (parenthesized_expression "(((bVar11 & 0x3f) + 0x39 & 0x3b) == 0)" (( "(") (binary_expression "((bVar11 & 0x3f) + 0x39 & 0x3b) == 0" (parenthesized_expression "((bVar11 & 0x3f) + 0x39 & 0x3b)" (( "(") (binary_expression "(bVar11 & 0x3f) + 0x39 & 0x3b" (binary_expression "(bVar11 & 0x3f) + 0x39" (parenthesized_expression "(bVar11 & 0x3f)" (( "(") (binary_expression "bVar11 & 0x3f" (identifier "bVar11") (& "&") (number_literal "0x3f")) () ")")) (+ "+") (number_literal "0x39")) (& "&") (number_literal "0x3b")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;\n                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);\n                if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }\n              }" ({ "{") (expression_statement "local_a4 = (undefined4 *****)((int)local_a8 - local_8c);" (assignment_expression "local_a4 = (undefined4 *****)((int)local_a8 - local_8c)" (identifier "local_a4") (= "=") (cast_expression "(undefined4 *****)((int)local_a8 - local_8c)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)local_a8 - local_8c)" (( "(") (binary_expression "(int)local_a8 - local_8c" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (- "-") (identifier "local_8c")) () ")")))) (; ";")) (expression_statement "*(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;" (assignment_expression "*(uint *)((int)local_b4 + 0x3c) =\n                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000" (pointer_expression "*(uint *)((int)local_b4 + 0x3c)" (* "*") (cast_expression "(uint *)((int)local_b4 + 0x3c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_b4 + 0x3c)" (( "(") (binary_expression "(int)local_b4 + 0x3c" (cast_expression "(int)local_b4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b4")) (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (binary_expression "*(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000" (binary_expression "*(uint *)((int)local_b4 + 0x3c) & 0xfff" (pointer_expression "*(uint *)((int)local_b4 + 0x3c)" (* "*") (cast_expression "(uint *)((int)local_b4 + 0x3c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_b4 + 0x3c)" (( "(") (binary_expression "(int)local_b4 + 0x3c" (cast_expression "(int)local_b4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b4")) (+ "+") (number_literal "0x3c")) () ")")))) (& "&") (number_literal "0xfff")) (| "|") (binary_expression "((int)local_a4 + 1) * 0x1000" (parenthesized_expression "((int)local_a4 + 1)" (( "(") (binary_expression "(int)local_a4 + 1" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "0x1000")))) (; ";")) (expression_statement "(*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);" (call_expression "(*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68)" (parenthesized_expression "(*pcVar5)" (( "(") (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")) () ")")) (argument_list "(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68)" (( "(") (identifier "DAT_00081544") (, ",") (binary_expression "(int)local_b4 + 0x30" (cast_expression "(int)local_b4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b4")) (+ "+") (number_literal "0x30")) (, ",") (binary_expression "pcVar14 + iVar15 * uVar36 + local_68" (binary_expression "pcVar14 + iVar15 * uVar36" (identifier "pcVar14") (+ "+") (binary_expression "iVar15 * uVar36" (identifier "iVar15") (* "*") (identifier "uVar36"))) (+ "+") (identifier "local_68")) () ")"))) (; ";")) (if_statement "if ((bVar11 & 0x37) != 6) {\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }" (if "if") (parenthesized_expression "((bVar11 & 0x37) != 6)" (( "(") (binary_expression "(bVar11 & 0x37) != 6" (parenthesized_expression "(bVar11 & 0x37)" (( "(") (binary_expression "bVar11 & 0x37" (identifier "bVar11") (& "&") (number_literal "0x37")) () ")")) (!= "!=") (number_literal "6")) () ")")) (compound_statement "{\n                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }\n                  if (piVar25 == (int *)0x0) goto LAB_0002402d;\n                  goto LAB_00023ff8;\n                }" ({ "{") (if_statement "if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }\n                  else {\n                    piVar25 = (int *)puVar6[8];\n                  }" (if "if") (parenthesized_expression "(((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0))" (( "(") (binary_expression "((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)" (parenthesized_expression "((bVar11 & 0x3f) == 7)" (( "(") (binary_expression "(bVar11 & 0x3f) == 7" (parenthesized_expression "(bVar11 & 0x3f)" (( "(") (binary_expression "bVar11 & 0x3f" (identifier "bVar11") (& "&") (number_literal "0x3f")) () ")")) (== "==") (number_literal "7")) () ")")) (&& "&&") (parenthesized_expression "((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)" (( "(") (binary_expression "(*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0" (parenthesized_expression "(*(ushort *)(puVar6 + 0xf) & 0x7c0)" (( "(") (binary_expression "*(ushort *)(puVar6 + 0xf) & 0x7c0" (pointer_expression "*(ushort *)(puVar6 + 0xf)" (* "*") (cast_expression "(ushort *)(puVar6 + 0xf)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 0xf)" (( "(") (binary_expression "puVar6 + 0xf" (identifier "puVar6") (+ "+") (number_literal "0xf")) () ")")))) (& "&") (number_literal "0x7c0")) () ")")) (!= "!=") (number_literal "0x2c0")) () ")"))) () ")")) (compound_statement "{\n                    if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }\n                    if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }\n                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);\n                    iVar15 = FUN_0003e1d0(iVar26);\n                    iVar21 = FUN_0003e1d0(uVar13);\n                    if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }\n                    lVar45 = FUN_0003fad0(iVar26);\n                    lVar46 = FUN_0003fad0(uVar13);\n                    piVar25 = (int *)puVar6[8];\n                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;\n                  }" ({ "{") (if_statement "if (iVar26 == 0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }" (if "if") (parenthesized_expression "(iVar26 == 0)" (( "(") (binary_expression "iVar26 == 0" (identifier "iVar26") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");\n                    }" ({ "{") (expression_statement "FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");" (call_expression "FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols")" (identifier "FUN_00031740") (argument_list "("../../gas/ecoff.c",0x105a,"ecoff_build_symbols")" (( "(") (string_literal ""../../gas/ecoff.c"" (" """) (string_content "../../gas/ecoff.c") (" """)) (, ",") (number_literal "0x105a") (, ",") (string_literal ""ecoff_build_symbols"" (" """) (string_content "ecoff_build_symbols") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if ((int *)puVar6[5] == (int *)0x0) {\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }" (if "if") (parenthesized_expression "((int *)puVar6[5] == (int *)0x0)" (( "(") (binary_expression "(int *)puVar6[5] == (int *)0x0" (cast_expression "(int *)puVar6[5]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar6[5]" (identifier "puVar6") ([ "[") (number_literal "5") (] "]"))) (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");\n                    }" ({ "{") (expression_statement "FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");" (call_expression "FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols")" (identifier "FUN_00031740") (argument_list "("../../gas/ecoff.c",0x105b,"ecoff_build_symbols")" (( "(") (string_literal ""../../gas/ecoff.c"" (" """) (string_content "../../gas/ecoff.c") (" """)) (, ",") (number_literal "0x105b") (, ",") (string_literal ""ecoff_build_symbols"" (" """) (string_content "ecoff_build_symbols") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);" (assignment_expression "uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4)" (identifier "uVar13") (= "=") (pointer_expression "*(undefined4 *)(*(int *)puVar6[5] + 4)" (* "*") (cast_expression "(undefined4 *)(*(int *)puVar6[5] + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)puVar6[5] + 4)" (( "(") (binary_expression "*(int *)puVar6[5] + 4" (pointer_expression "*(int *)puVar6[5]" (* "*") (cast_expression "(int *)puVar6[5]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar6[5]" (identifier "puVar6") ([ "[") (number_literal "5") (] "]")))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar15 = FUN_0003e1d0(iVar26);" (assignment_expression "iVar15 = FUN_0003e1d0(iVar26)" (identifier "iVar15") (= "=") (call_expression "FUN_0003e1d0(iVar26)" (identifier "FUN_0003e1d0") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (; ";")) (expression_statement "iVar21 = FUN_0003e1d0(uVar13);" (assignment_expression "iVar21 = FUN_0003e1d0(uVar13)" (identifier "iVar21") (= "=") (call_expression "FUN_0003e1d0(uVar13)" (identifier "FUN_0003e1d0") (argument_list "(uVar13)" (( "(") (identifier "uVar13") () ")")))) (; ";")) (if_statement "if (iVar15 != iVar21) {\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }" (if "if") (parenthesized_expression "(iVar15 != iVar21)" (( "(") (binary_expression "iVar15 != iVar21" (identifier "iVar15") (!= "!=") (identifier "iVar21")) () ")")) (compound_statement "{\n                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);\n                      FUN_00031540(uVar22);\n                    }" ({ "{") (expression_statement "uVar22 = dcgettext(0,".begin/.bend in different segments",5);" (assignment_expression "uVar22 = dcgettext(0,".begin/.bend in different segments",5)" (identifier "uVar22") (= "=") (call_expression "dcgettext(0,".begin/.bend in different segments",5)" (identifier "dcgettext") (argument_list "(0,".begin/.bend in different segments",5)" (( "(") (number_literal "0") (, ",") (string_literal "".begin/.bend in different segments"" (" """) (string_content ".begin/.bend in different segments") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031540(uVar22);" (call_expression "FUN_00031540(uVar22)" (identifier "FUN_00031540") (argument_list "(uVar22)" (( "(") (identifier "uVar22") () ")"))) (; ";")) (} "}"))) (expression_statement "lVar45 = FUN_0003fad0(iVar26);" (assignment_expression "lVar45 = FUN_0003fad0(iVar26)" (identifier "lVar45") (= "=") (call_expression "FUN_0003fad0(iVar26)" (identifier "FUN_0003fad0") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (; ";")) (expression_statement "lVar46 = FUN_0003fad0(uVar13);" (assignment_expression "lVar46 = FUN_0003fad0(uVar13)" (identifier "lVar46") (= "=") (call_expression "FUN_0003fad0(uVar13)" (identifier "FUN_0003fad0") (argument_list "(uVar13)" (( "(") (identifier "uVar13") () ")")))) (; ";")) (expression_statement "piVar25 = (int *)puVar6[8];" (assignment_expression "piVar25 = (int *)puVar6[8]" (identifier "piVar25") (= "=") (cast_expression "(int *)puVar6[8]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar6[8]" (identifier "puVar6") ([ "[") (number_literal "8") (] "]")))) (; ";")) (expression_statement "*(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;" (assignment_expression "*(longlong *)(puVar6 + 0xd) = lVar45 - lVar46" (pointer_expression "*(longlong *)(puVar6 + 0xd)" (* "*") (cast_expression "(longlong *)(puVar6 + 0xd)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 0xd)" (( "(") (binary_expression "puVar6 + 0xd" (identifier "puVar6") (+ "+") (number_literal "0xd")) () ")")))) (= "=") (binary_expression "lVar45 - lVar46" (identifier "lVar45") (- "-") (identifier "lVar46"))) (; ";")) (} "}")) (else_clause "else {\n                    piVar25 = (int *)puVar6[8];\n                  }" (else "else") (compound_statement "{\n                    piVar25 = (int *)puVar6[8];\n                  }" ({ "{") (expression_statement "piVar25 = (int *)puVar6[8];" (assignment_expression "piVar25 = (int *)puVar6[8]" (identifier "piVar25") (= "=") (cast_expression "(int *)puVar6[8]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar6[8]" (identifier "puVar6") ([ "[") (number_literal "8") (] "]")))) (; ";")) (} "}")))) (if_statement "if (piVar25 == (int *)0x0) goto LAB_0002402d;" (if "if") (parenthesized_expression "(piVar25 == (int *)0x0)" (( "(") (binary_expression "piVar25 == (int *)0x0" (identifier "piVar25") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0002402d;" (goto "goto") (statement_identifier "LAB_0002402d") (; ";"))) (goto_statement "goto LAB_00023ff8;" (goto "goto") (statement_identifier "LAB_00023ff8") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }" (else "else") (compound_statement "{\n                if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }\n                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);\n                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;\n                if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }\n              }" ({ "{") (if_statement "if (*(int *)((int)local_b4 + 0x1c) == 0) {\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }" (if "if") (parenthesized_expression "(*(int *)((int)local_b4 + 0x1c) == 0)" (( "(") (binary_expression "*(int *)((int)local_b4 + 0x1c) == 0" (pointer_expression "*(int *)((int)local_b4 + 0x1c)" (* "*") (cast_expression "(int *)((int)local_b4 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_b4 + 0x1c)" (( "(") (binary_expression "(int)local_b4 + 0x1c" (cast_expression "(int)local_b4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b4")) (+ "+") (number_literal "0x1c")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");\n                }" ({ "{") (expression_statement "FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");" (call_expression "FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols")" (identifier "FUN_00031740") (argument_list "("../../gas/ecoff.c",0x1035,"ecoff_build_symbols")" (( "(") (string_literal ""../../gas/ecoff.c"" (" """) (string_content "../../gas/ecoff.c") (" """)) (, ",") (number_literal "0x1035") (, ",") (string_literal ""ecoff_build_symbols"" (" """) (string_content "ecoff_build_symbols") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "local_a4 = (undefined4 *****)((int)local_a8 - local_8c);" (assignment_expression "local_a4 = (undefined4 *****)((int)local_a8 - local_8c)" (identifier "local_a4") (= "=") (cast_expression "(undefined4 *****)((int)local_a8 - local_8c)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)local_a8 - local_8c)" (( "(") (binary_expression "(int)local_a8 - local_8c" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (- "-") (identifier "local_8c")) () ")")))) (; ";")) (expression_statement "*(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;" (assignment_expression "*(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1" (pointer_expression "*(int *)(*(int *)((int)local_b4 + 0x1c) + 4)" (* "*") (cast_expression "(int *)(*(int *)((int)local_b4 + 0x1c) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)((int)local_b4 + 0x1c) + 4)" (( "(") (binary_expression "*(int *)((int)local_b4 + 0x1c) + 4" (pointer_expression "*(int *)((int)local_b4 + 0x1c)" (* "*") (cast_expression "(int *)((int)local_b4 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_b4 + 0x1c)" (( "(") (binary_expression "(int)local_b4 + 0x1c" (cast_expression "(int)local_b4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b4")) (+ "+") (number_literal "0x1c")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "(int)local_a4 + 1" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((bVar11 & 0x37) != 6) {\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }" (if "if") (parenthesized_expression "((bVar11 & 0x37) != 6)" (( "(") (binary_expression "(bVar11 & 0x37) != 6" (parenthesized_expression "(bVar11 & 0x37)" (( "(") (binary_expression "bVar11 & 0x37" (identifier "bVar11") (& "&") (number_literal "0x37")) () ")")) (!= "!=") (number_literal "6")) () ")")) (compound_statement "{\n                  piVar25 = (int *)puVar6[8];\n                  goto joined_r0x00024174;\n                }" ({ "{") (expression_statement "piVar25 = (int *)puVar6[8];" (assignment_expression "piVar25 = (int *)puVar6[8]" (identifier "piVar25") (= "=") (cast_expression "(int *)puVar6[8]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar6[8]" (identifier "puVar6") ([ "[") (number_literal "8") (] "]")))) (; ";")) (goto_statement "goto joined_r0x00024174;" (goto "goto") (statement_identifier "joined_r0x00024174") (; ";")) (} "}"))) (} "}")))) (if_statement "if (iVar26 == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }" (if "if") (parenthesized_expression "(iVar26 == 0)" (( "(") (binary_expression "iVar26 == 0" (identifier "iVar26") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");\n              }" ({ "{") (expression_statement "FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");" (call_expression "FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols")" (identifier "FUN_00031740") (argument_list "("../../gas/ecoff.c",0x1042,"ecoff_build_symbols")" (( "(") (string_literal ""../../gas/ecoff.c"" (" """) (string_content "../../gas/ecoff.c") (" """)) (, ",") (number_literal "0x1042") (, ",") (string_literal ""ecoff_build_symbols"" (" """) (string_content "ecoff_build_symbols") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)((int)local_b4 + 4) == 0) {\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }" (if "if") (parenthesized_expression "(*(int *)((int)local_b4 + 4) == 0)" (( "(") (binary_expression "*(int *)((int)local_b4 + 4) == 0" (pointer_expression "*(int *)((int)local_b4 + 4)" (* "*") (cast_expression "(int *)((int)local_b4 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_b4 + 4)" (( "(") (binary_expression "(int)local_b4 + 4" (cast_expression "(int)local_b4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b4")) (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");\n              }" ({ "{") (expression_statement "FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");" (call_expression "FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols")" (identifier "FUN_00031740") (argument_list "("../../gas/ecoff.c",0x1043,"ecoff_build_symbols")" (( "(") (string_literal ""../../gas/ecoff.c"" (" """) (string_content "../../gas/ecoff.c") (" """)) (, ",") (number_literal "0x1043") (, ",") (string_literal ""ecoff_build_symbols"" (" """) (string_content "ecoff_build_symbols") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar15 = FUN_0003e1d0(iVar26);" (assignment_expression "iVar15 = FUN_0003e1d0(iVar26)" (identifier "iVar15") (= "=") (call_expression "FUN_0003e1d0(iVar26)" (identifier "FUN_0003e1d0") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (; ";")) (expression_statement "iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));" (assignment_expression "iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4))" (identifier "iVar21") (= "=") (call_expression "FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4))" (identifier "FUN_0003e1d0") (argument_list "(*(undefined4 *)((int)local_b4 + 4))" (( "(") (pointer_expression "*(undefined4 *)((int)local_b4 + 4)" (* "*") (cast_expression "(undefined4 *)((int)local_b4 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_b4 + 4)" (( "(") (binary_expression "(int)local_b4 + 4" (cast_expression "(int)local_b4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b4")) (+ "+") (number_literal "4")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar15 != iVar21) {\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }" (if "if") (parenthesized_expression "(iVar15 != iVar21)" (( "(") (binary_expression "iVar15 != iVar21" (identifier "iVar15") (!= "!=") (identifier "iVar21")) () ")")) (compound_statement "{\n                uVar13 = dcgettext(0,".begin/.bend in different segments",5);\n                FUN_00031540(uVar13);\n              }" ({ "{") (expression_statement "uVar13 = dcgettext(0,".begin/.bend in different segments",5);" (assignment_expression "uVar13 = dcgettext(0,".begin/.bend in different segments",5)" (identifier "uVar13") (= "=") (call_expression "dcgettext(0,".begin/.bend in different segments",5)" (identifier "dcgettext") (argument_list "(0,".begin/.bend in different segments",5)" (( "(") (number_literal "0") (, ",") (string_literal "".begin/.bend in different segments"" (" """) (string_content ".begin/.bend in different segments") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031540(uVar13);" (call_expression "FUN_00031540(uVar13)" (identifier "FUN_00031540") (argument_list "(uVar13)" (( "(") (identifier "uVar13") () ")"))) (; ";")) (} "}"))) (expression_statement "lVar45 = FUN_0003fad0(iVar26);" (assignment_expression "lVar45 = FUN_0003fad0(iVar26)" (identifier "lVar45") (= "=") (call_expression "FUN_0003fad0(iVar26)" (identifier "FUN_0003fad0") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (; ";")) (expression_statement "lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));" (assignment_expression "lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4))" (identifier "lVar46") (= "=") (call_expression "FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4))" (identifier "FUN_0003fad0") (argument_list "(*(undefined4 *)((int)local_b4 + 4))" (( "(") (pointer_expression "*(undefined4 *)((int)local_b4 + 4)" (* "*") (cast_expression "(undefined4 *)((int)local_b4 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_b4 + 4)" (( "(") (binary_expression "(int)local_b4 + 4" (cast_expression "(int)local_b4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b4")) (+ "+") (number_literal "4")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar10 = lVar45 - lVar46;" (assignment_expression "uVar10 = lVar45 - lVar46" (identifier "uVar10") (= "=") (binary_expression "lVar45 - lVar46" (identifier "lVar45") (- "-") (identifier "lVar46"))) (; ";")) (if_statement "if ((uVar10 & 1) == 0) {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }\n              else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }" (if "if") (parenthesized_expression "((uVar10 & 1) == 0)" (( "(") (binary_expression "(uVar10 & 1) == 0" (parenthesized_expression "(uVar10 & 1)" (( "(") (binary_expression "uVar10 & 1" (identifier "uVar10") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                *(ulonglong *)(puVar6 + 0xd) = uVar10;\n              }" ({ "{") (expression_statement "*(ulonglong *)(puVar6 + 0xd) = uVar10;" (assignment_expression "*(ulonglong *)(puVar6 + 0xd) = uVar10" (pointer_expression "*(ulonglong *)(puVar6 + 0xd)" (* "*") (cast_expression "(ulonglong *)(puVar6 + 0xd)" (( "(") (type_descriptor "ulonglong *" (type_identifier "ulonglong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 0xd)" (( "(") (binary_expression "puVar6 + 0xd" (identifier "puVar6") (+ "+") (number_literal "0xd")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (} "}")) (else_clause "else {\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }" (else "else") (compound_statement "{\n                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;\n              }" ({ "{") (expression_statement "*(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;" (assignment_expression "*(ulonglong *)(puVar6 + 0xd) = uVar10 + 1" (pointer_expression "*(ulonglong *)(puVar6 + 0xd)" (* "*") (cast_expression "(ulonglong *)(puVar6 + 0xd)" (( "(") (type_descriptor "ulonglong *" (type_identifier "ulonglong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 0xd)" (( "(") (binary_expression "puVar6 + 0xd" (identifier "puVar6") (+ "+") (number_literal "0xd")) () ")")))) (= "=") (binary_expression "uVar10 + 1" (identifier "uVar10") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));" (assignment_expression "iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4))" (identifier "iVar15") (= "=") (call_expression "FUN_000414f0(*(undefined4 *)((int)local_b4 + 4))" (identifier "FUN_000414f0") (argument_list "(*(undefined4 *)((int)local_b4 + 4))" (( "(") (pointer_expression "*(undefined4 *)((int)local_b4 + 4)" (* "*") (cast_expression "(undefined4 *)((int)local_b4 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_b4 + 4)" (( "(") (binary_expression "(int)local_b4 + 4" (cast_expression "(int)local_b4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b4")) (+ "+") (number_literal "4")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar13 = puVar6[0xe];" (assignment_expression "uVar13 = puVar6[0xe]" (identifier "uVar13") (= "=") (subscript_expression "puVar6[0xe]" (identifier "puVar6") ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];" (assignment_expression "*(undefined4 *)(iVar15 + 0x28) = puVar6[0xd]" (pointer_expression "*(undefined4 *)(iVar15 + 0x28)" (* "*") (cast_expression "(undefined4 *)(iVar15 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x28)" (( "(") (binary_expression "iVar15 + 0x28" (identifier "iVar15") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (subscript_expression "puVar6[0xd]" (identifier "puVar6") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(iVar15 + 0x2c) = uVar13;" (assignment_expression "*(undefined4 *)(iVar15 + 0x2c) = uVar13" (pointer_expression "*(undefined4 *)(iVar15 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(iVar15 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x2c)" (( "(") (binary_expression "iVar15 + 0x2c" (identifier "iVar15") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "piVar25 = (int *)puVar6[8];" (assignment_expression "piVar25 = (int *)puVar6[8]" (identifier "piVar25") (= "=") (cast_expression "(int *)puVar6[8]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar6[8]" (identifier "puVar6") ([ "[") (number_literal "8") (] "]")))) (; ";")) (if_statement "if (piVar25 != (int *)0x0) goto LAB_00024237;" (if "if") (parenthesized_expression "(piVar25 != (int *)0x0)" (( "(") (binary_expression "piVar25 != (int *)0x0" (identifier "piVar25") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00024237;" (goto "goto") (statement_identifier "LAB_00024237") (; ";"))) (} "}")))) (} "}")))) (labeled_statement "LAB_0002402d:\n          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;" (statement_identifier "LAB_0002402d") (: ":") (expression_statement "uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;" (assignment_expression "uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f" (identifier "uVar32") (= "=") (binary_expression "(int)pcVar1 - (int)local_a0 >> 0x1f" (binary_expression "(int)pcVar1 - (int)local_a0" (cast_expression "(int)pcVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar1")) (- "-") (cast_expression "(int)local_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a0"))) (>> ">>") (number_literal "0x1f"))) (; ";"))) (if_statement "if (uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }" (if "if") (parenthesized_expression "(uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36))" (( "(") (binary_expression "uVar32 < uVar16 ||\n              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)" (binary_expression "uVar32 < uVar16" (identifier "uVar32") (< "<") (identifier "uVar16")) (|| "||") (binary_expression "uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)" (binary_expression "uVar32 - uVar16" (identifier "uVar32") (- "-") (identifier "uVar16")) (< "<") (call_expression "(uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uint)((int)pcVar1 - (int)local_a0) < uVar36)" (( "(") (binary_expression "(uint)((int)pcVar1 - (int)local_a0) < uVar36" (call_expression "(uint)((int)pcVar1 - (int)local_a0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pcVar1 - (int)local_a0)" (( "(") (binary_expression "(int)pcVar1 - (int)local_a0" (cast_expression "(int)pcVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar1")) (- "-") (cast_expression "(int)local_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a0"))) () ")"))) (< "<") (identifier "uVar36")) () ")"))))) () ")")) (compound_statement "{\n            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);\n          }" ({ "{") (expression_statement "local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);" (assignment_expression "local_a0 = (undefined4 ******)FUN_0001ff00(uVar36)" (identifier "local_a0") (= "=") (cast_expression "(undefined4 ******)FUN_0001ff00(uVar36)" (( "(") (type_descriptor "undefined4 ******" (type_identifier "undefined4") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "FUN_0001ff00(uVar36)" (identifier "FUN_0001ff00") (argument_list "(uVar36)" (( "(") (identifier "uVar36") () ")"))))) (; ";")) (} "}"))) (expression_statement "(*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);" (call_expression "(*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0)" (parenthesized_expression "(*pcVar5)" (( "(") (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")) () ")")) (argument_list "(DAT_00081544,puVar6 + 0xc,local_a0)" (( "(") (identifier "DAT_00081544") (, ",") (binary_expression "puVar6 + 0xc" (identifier "puVar6") (+ "+") (number_literal "0xc")) (, ",") (identifier "local_a0") () ")"))) (; ";")) (expression_statement "local_a0 = (undefined4 ******)((int)local_a0 + uVar36);" (assignment_expression "local_a0 = (undefined4 ******)((int)local_a0 + uVar36)" (identifier "local_a0") (= "=") (cast_expression "(undefined4 ******)((int)local_a0 + uVar36)" (( "(") (type_descriptor "undefined4 ******" (type_identifier "undefined4") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((int)local_a0 + uVar36)" (( "(") (binary_expression "(int)local_a0 + uVar36" (cast_expression "(int)local_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a0")) (+ "+") (identifier "uVar36")) () ")")))) (; ";")) (expression_statement "puVar6[9] = local_a8;" (assignment_expression "puVar6[9] = local_a8" (subscript_expression "puVar6[9]" (identifier "puVar6") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "local_a8")) (; ";")) (expression_statement "puVar7 = (uint *)puVar6[5];" (assignment_expression "puVar7 = (uint *)puVar6[5]" (identifier "puVar7") (= "=") (cast_expression "(uint *)puVar6[5]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar6[5]" (identifier "puVar6") ([ "[") (number_literal "5") (] "]")))) (; ";")) (if_statement "if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {\n            puVar7[3] = (int)local_a8 - local_8c;\n          }" (if "if") (parenthesized_expression "((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6))" (( "(") (binary_expression "(puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)" (parenthesized_expression "(puVar7 != (uint *)0x0)" (( "(") (binary_expression "puVar7 != (uint *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "((undefined4 *)*puVar7 == puVar6)" (( "(") (binary_expression "(undefined4 *)*puVar7 == puVar6" (cast_expression "(undefined4 *)*puVar7" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) (== "==") (identifier "puVar6")) () ")"))) () ")")) (compound_statement "{\n            puVar7[3] = (int)local_a8 - local_8c;\n          }" ({ "{") (expression_statement "puVar7[3] = (int)local_a8 - local_8c;" (assignment_expression "puVar7[3] = (int)local_a8 - local_8c" (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "(int)local_a8 - local_8c" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (- "-") (identifier "local_8c"))) (; ";")) (} "}"))) (expression_statement "local_a8 = (undefined4 ******)((int)local_a8 + 1);" (assignment_expression "local_a8 = (undefined4 ******)((int)local_a8 + 1)" (identifier "local_a8") (= "=") (cast_expression "(undefined4 ******)((int)local_a8 + 1)" (( "(") (type_descriptor "undefined4 ******" (type_identifier "undefined4") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((int)local_a8 + 1)" (( "(") (binary_expression "(int)local_a8 + 1" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if ((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }" (if "if") (parenthesized_expression "((iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6))" (( "(") (binary_expression "(iVar26 != 0) &&\n             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)" (parenthesized_expression "(iVar26 != 0)" (( "(") (binary_expression "iVar26 != 0" (identifier "iVar26") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)" (( "(") (comma_expression "iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6" (assignment_expression "iVar15 = FUN_00041590(iVar26)" (identifier "iVar15") (= "=") (call_expression "FUN_00041590(iVar26)" (identifier "FUN_00041590") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (, ",") (binary_expression "*(undefined4 **)(iVar15 + 0x10) == puVar6" (pointer_expression "*(undefined4 **)(iVar15 + 0x10)" (* "*") (cast_expression "(undefined4 **)(iVar15 + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar15 + 0x10)" (( "(") (binary_expression "iVar15 + 0x10" (identifier "iVar15") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (identifier "puVar6"))) () ")"))) () ")")) (compound_statement "{\n            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }\n            goto LAB_00024347;\n          }" ({ "{") (if_statement "if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }" (if "if") (parenthesized_expression "((*(byte *)(puVar6 + 0xf) & 0x37) == 6)" (( "(") (binary_expression "(*(byte *)(puVar6 + 0xf) & 0x37) == 6" (parenthesized_expression "(*(byte *)(puVar6 + 0xf) & 0x37)" (( "(") (binary_expression "*(byte *)(puVar6 + 0xf) & 0x37" (pointer_expression "*(byte *)(puVar6 + 0xf)" (* "*") (cast_expression "(byte *)(puVar6 + 0xf)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 0xf)" (( "(") (binary_expression "puVar6 + 0xf" (identifier "puVar6") (+ "+") (number_literal "0xf")) () ")")))) (& "&") (number_literal "0x37")) () ")")) (== "==") (number_literal "6")) () ")")) (compound_statement "{\n              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;\n            }" ({ "{") (expression_statement "puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;" (assignment_expression "puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000" (subscript_expression "puVar6[0xf]" (identifier "puVar6") ([ "[") (number_literal "0xf") (] "]")) (= "=") (binary_expression "puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000" (binary_expression "puVar6[0xf] & 0xfff" (subscript_expression "puVar6[0xf]" (identifier "puVar6") ([ "[") (number_literal "0xf") (] "]")) (& "&") (number_literal "0xfff")) (| "|") (binary_expression "(((int)local_a8 - local_8c) + -1) * 0x1000" (parenthesized_expression "(((int)local_a8 - local_8c) + -1)" (( "(") (binary_expression "((int)local_a8 - local_8c) + -1" (parenthesized_expression "((int)local_a8 - local_8c)" (( "(") (binary_expression "(int)local_a8 - local_8c" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (- "-") (identifier "local_8c")) () ")")) (+ "+") (number_literal "-1")) () ")")) (* "*") (number_literal "0x1000")))) (; ";")) (} "}"))) (goto_statement "goto LAB_00024347;" (goto "goto") (statement_identifier "LAB_00024347") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          FUN_0003dd80(iVar26);\nLAB_0002410f:\n          if (puVar6[6] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (puVar6[8] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          iVar15 = FUN_00041590(iVar26);\n          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }\n        }" (else "else") (compound_statement "{\n          FUN_0003dd80(iVar26);\nLAB_0002410f:\n          if (puVar6[6] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }\n          if (puVar6[8] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }\n          iVar15 = FUN_00041590(iVar26);\n          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }\n        }" ({ "{") (expression_statement "FUN_0003dd80(iVar26);" (call_expression "FUN_0003dd80(iVar26)" (identifier "FUN_0003dd80") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")"))) (; ";")) (labeled_statement "LAB_0002410f:\n          if (puVar6[6] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }" (statement_identifier "LAB_0002410f") (: ":") (if_statement "if (puVar6[6] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }" (if "if") (parenthesized_expression "(puVar6[6] != 0)" (( "(") (binary_expression "puVar6[6] != 0" (subscript_expression "puVar6[6]" (identifier "puVar6") ([ "[") (number_literal "6") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");\n          }" ({ "{") (expression_statement "FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");" (call_expression "FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols")" (identifier "FUN_00031740") (argument_list "("../../gas/ecoff.c",0x101e,"ecoff_build_symbols")" (( "(") (string_literal ""../../gas/ecoff.c"" (" """) (string_content "../../gas/ecoff.c") (" """)) (, ",") (number_literal "0x101e") (, ",") (string_literal ""ecoff_build_symbols"" (" """) (string_content "ecoff_build_symbols") (" """)) () ")"))) (; ";")) (} "}")))) (if_statement "if (puVar6[8] != 0) {\n                    \n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }" (if "if") (parenthesized_expression "(puVar6[8] != 0)" (( "(") (binary_expression "puVar6[8] != 0" (subscript_expression "puVar6[8]" (identifier "puVar6") ([ "[") (number_literal "8") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");\n          }" ({ "{") (expression_statement "FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");" (call_expression "FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols")" (identifier "FUN_00031740") (argument_list "("../../gas/ecoff.c",0x1069,"ecoff_build_symbols")" (( "(") (string_literal ""../../gas/ecoff.c"" (" """) (string_content "../../gas/ecoff.c") (" """)) (, ",") (number_literal "0x1069") (, ",") (string_literal ""ecoff_build_symbols"" (" """) (string_content "ecoff_build_symbols") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar15 = FUN_00041590(iVar26);" (assignment_expression "iVar15 = FUN_00041590(iVar26)" (identifier "iVar15") (= "=") (call_expression "FUN_00041590(iVar26)" (identifier "FUN_00041590") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (; ";")) (if_statement "if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }" (if "if") (parenthesized_expression "(puVar6 == *(undefined4 **)(iVar15 + 0x10))" (( "(") (binary_expression "puVar6 == *(undefined4 **)(iVar15 + 0x10)" (identifier "puVar6") (== "==") (pointer_expression "*(undefined4 **)(iVar15 + 0x10)" (* "*") (cast_expression "(undefined4 **)(iVar15 + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar15 + 0x10)" (( "(") (binary_expression "iVar15 + 0x10" (identifier "iVar15") (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (compound_statement "{\nLAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);\n            iVar15 = FUN_0003dc20(iVar26);\n            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }\n          }" ({ "{") (labeled_statement "LAB_00024347:\n            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);" (statement_identifier "LAB_00024347") (: ":") (expression_statement "puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);" (assignment_expression "puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70)" (subscript_expression "puVar6[0xb]" (identifier "puVar6") ([ "[") (number_literal "0xb") (] "]")) (= "=") (pointer_expression "*(undefined4 *)((int)local_9c + 0x70)" (* "*") (cast_expression "(undefined4 *)((int)local_9c + 0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_9c + 0x70)" (( "(") (binary_expression "(int)local_9c + 0x70" (cast_expression "(int)local_9c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_9c")) (+ "+") (number_literal "0x70")) () ")"))))) (; ";"))) (expression_statement "iVar15 = FUN_0003dc20(iVar26);" (assignment_expression "iVar15 = FUN_0003dc20(iVar26)" (identifier "iVar15") (= "=") (call_expression "FUN_0003dc20(iVar26)" (identifier "FUN_0003dc20") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (; ";")) (if_statement "if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }" (if "if") (parenthesized_expression "((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0))" (( "(") (binary_expression "(iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)" (parenthesized_expression "(iVar15 != 0)" (( "(") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)" (( "(") (comma_expression "iVar26 = FUN_0003dc90(iVar26), iVar26 != 0" (assignment_expression "iVar26 = FUN_0003dc90(iVar26)" (identifier "iVar26") (= "=") (call_expression "FUN_0003dc90(iVar26)" (identifier "FUN_0003dc90") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (, ",") (binary_expression "iVar26 != 0" (identifier "iVar26") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;\n            }" ({ "{") (expression_statement "*(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;" (assignment_expression "*(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf" (pointer_expression "*(byte *)((int)local_9c + 0x44U)" (* "*") (cast_expression "(byte *)((int)local_9c + 0x44U)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_9c + 0x44U)" (( "(") (binary_expression "(int)local_9c + 0x44U" (cast_expression "(int)local_9c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_9c")) (+ "+") (number_literal "0x44U")) () ")")))) (= "=") (binary_expression "*(byte *)((int)local_9c + 0x44U) & 0xdf" (pointer_expression "*(byte *)((int)local_9c + 0x44U)" (* "*") (cast_expression "(byte *)((int)local_9c + 0x44U)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_9c + 0x44U)" (( "(") (binary_expression "(int)local_9c + 0x44U" (cast_expression "(int)local_9c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_9c")) (+ "+") (number_literal "0x44U")) () ")")))) (& "&") (number_literal "0xdf"))) (; ";")) (} "}"))) (} "}"))) (} "}")))) (if_statement "if (local_70 <= puVar6 + 0x10) goto LAB_00024380;" (if "if") (parenthesized_expression "(local_70 <= puVar6 + 0x10)" (( "(") (binary_expression "local_70 <= puVar6 + 0x10" (identifier "local_70") (<= "<=") (binary_expression "puVar6 + 0x10" (identifier "puVar6") (+ "+") (number_literal "0x10"))) () ")")) (goto_statement "goto LAB_00024380;" (goto "goto") (statement_identifier "LAB_00024380") (; ";"))) (expression_statement "uVar32 = puVar6[0x14];" (assignment_expression "uVar32 = puVar6[0x14]" (identifier "uVar32") (= "=") (subscript_expression "puVar6[0x14]" (identifier "puVar6") ([ "[") (number_literal "0x14") (] "]"))) (; ";")) (expression_statement "puVar6 = puVar6 + 0x10;" (assignment_expression "puVar6 = puVar6 + 0x10" (identifier "puVar6") (= "=") (binary_expression "puVar6 + 0x10" (identifier "puVar6") (+ "+") (number_literal "0x10"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (goto_statement "goto LAB_000243a4;" (goto "goto") (statement_identifier "LAB_000243a4") (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(param_1 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x30) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x30)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0002554e:\n  *(undefined4 *)(param_1 + 0x3c) = 0;" (statement_identifier "LAB_0002554e") (: ":") (expression_statement "*(undefined4 *)(param_1 + 0x3c) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x3c) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x3c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3c)" (( "(") (binary_expression "param_1 + 0x3c" (identifier "param_1") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (number_literal "0")) (; ";"))) (expression_statement "*(undefined4 *)(param_1 + 0x40) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x40) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x40)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x44) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x44) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x44)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x50) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x50) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x50)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(uint *)(param_1 + 0x4c) = local_68;" (assignment_expression "*(uint *)(param_1 + 0x4c) = local_68" (pointer_expression "*(uint *)(param_1 + 0x4c)" (* "*") (cast_expression "(uint *)(param_1 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x4c)" (( "(") (binary_expression "param_1 + 0x4c" (identifier "param_1") (+ "+") (number_literal "0x4c")) () ")")))) (= "=") (identifier "local_68")) (; ";")) (labeled_statement "LAB_00024eaa:\n  uVar16 = FUN_0001ff70(local_68,0);" (statement_identifier "LAB_00024eaa") (: ":") (expression_statement "uVar16 = FUN_0001ff70(local_68,0);" (assignment_expression "uVar16 = FUN_0001ff70(local_68,0)" (identifier "uVar16") (= "=") (call_expression "FUN_0001ff70(local_68,0)" (identifier "FUN_0001ff70") (argument_list "(local_68,0)" (( "(") (identifier "local_68") (, ",") (number_literal "0") () ")")))) (; ";"))) (expression_statement "*(uint *)(param_1 + 0x48) =\n       uVar16 - *(uint *)(param_1 + 0x4c) >> 2 |\n       (-(uint)(uVar16 < *(uint *)(param_1 + 0x4c)) - *(int *)(param_1 + 0x50)) * 0x40000000;" (assignment_expression "*(uint *)(param_1 + 0x48) =\n       uVar16 - *(uint *)(param_1 + 0x4c) >> 2 |\n       (-(uint)(uVar16 < *(uint *)(param_1 + 0x4c)) - *(int *)(param_1 + 0x50)) * 0x40000000" (pointer_expression "*(uint *)(param_1 + 0x48)" (* "*") (cast_expression "(uint *)(param_1 + 0x48)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x48)" (( "(") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) () ")")))) (= "=") (binary_expression "uVar16 - *(uint *)(param_1 + 0x4c) >> 2 |\n       (-(uint)(uVar16 < *(uint *)(param_1 + 0x4c)) - *(int *)(param_1 + 0x50)) * 0x40000000" (binary_expression "uVar16 - *(uint *)(param_1 + 0x4c) >> 2" (binary_expression "uVar16 - *(uint *)(param_1 + 0x4c)" (identifier "uVar16") (- "-") (pointer_expression "*(uint *)(param_1 + 0x4c)" (* "*") (cast_expression "(uint *)(param_1 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x4c)" (( "(") (binary_expression "param_1 + 0x4c" (identifier "param_1") (+ "+") (number_literal "0x4c")) () ")"))))) (>> ">>") (number_literal "2")) (| "|") (binary_expression "(-(uint)(uVar16 < *(uint *)(param_1 + 0x4c)) - *(int *)(param_1 + 0x50)) * 0x40000000" (parenthesized_expression "(-(uint)(uVar16 < *(uint *)(param_1 + 0x4c)) - *(int *)(param_1 + 0x50))" (( "(") (binary_expression "-(uint)(uVar16 < *(uint *)(param_1 + 0x4c)) - *(int *)(param_1 + 0x50)" (unary_expression "-(uint)(uVar16 < *(uint *)(param_1 + 0x4c))" (- "-") (call_expression "(uint)(uVar16 < *(uint *)(param_1 + 0x4c))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar16 < *(uint *)(param_1 + 0x4c))" (( "(") (binary_expression "uVar16 < *(uint *)(param_1 + 0x4c)" (identifier "uVar16") (< "<") (pointer_expression "*(uint *)(param_1 + 0x4c)" (* "*") (cast_expression "(uint *)(param_1 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x4c)" (( "(") (binary_expression "param_1 + 0x4c" (identifier "param_1") (+ "+") (number_literal "0x4c")) () ")"))))) () ")")))) (- "-") (pointer_expression "*(int *)(param_1 + 0x50)" (* "*") (cast_expression "(int *)(param_1 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")"))))) () ")")) (* "*") (number_literal "0x40000000")))) (; ";")) (expression_statement "*(uint *)(param_1 + 0x58) = uVar16;" (assignment_expression "*(uint *)(param_1 + 0x58) = uVar16" (pointer_expression "*(uint *)(param_1 + 0x58)" (* "*") (cast_expression "(uint *)(param_1 + 0x58)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x58)" (( "(") (binary_expression "param_1 + 0x58" (identifier "param_1") (+ "+") (number_literal "0x58")) () ")")))) (= "=") (identifier "uVar16")) (; ";")) (expression_statement "iVar26 = DAT_00078240;" (assignment_expression "iVar26 = DAT_00078240" (identifier "iVar26") (= "=") (identifier "DAT_00078240")) (; ";")) (expression_statement "local_9c = (undefined4 *****)DAT_00078240;" (assignment_expression "local_9c = (undefined4 *****)DAT_00078240" (identifier "local_9c") (= "=") (cast_expression "(undefined4 *****)DAT_00078240" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "DAT_00078240"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x5c) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x5c) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x5c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x5c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x5c)" (( "(") (binary_expression "param_1 + 0x5c" (identifier "param_1") (+ "+") (number_literal "0x5c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar36 = uVar16;" (assignment_expression "uVar36 = uVar16" (identifier "uVar36") (= "=") (identifier "uVar16")) (; ";")) (if_statement "if (iVar26 != 0) {\n    local_a8 = (undefined4 ******)0x0;\n    do {\n      uVar2 = DAT_00078250;\n      if (*(int *)((int)local_9c + 4) != 0) {\n        uVar2 = DAT_0007824e;\n      }\n      local_b4 = *(undefined4 ********)((int)local_9c + 8);\n      uVar32 = (uint)uVar2 * 0x294 + (int)local_b4;\n      pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      if (local_b4 < uVar32) {\n        do {\n          *(undefined4 *******)((int)local_b4 + 0xc) = local_a8;\n          iVar26 = *(int *)((int)local_b4 + 0x78);\n          pcVar24 = pcVar14 + uVar36;\n          if (iVar26 == 0) {\n            iVar15 = 0;\n            iVar26 = 0;\n          }\n          else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }\n          *(int *)((int)local_b4 + 0x10) = iVar15;\n          uVar33 = (int)local_b4 + 0x294;\n          *(int *)((int)local_b4 + 0x14) = iVar26;\n          local_b4 = (undefined4 *******)uVar33;\n        } while (uVar33 < uVar32);\n        pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      }\n      local_9c = pppppuVar17;\n    } while (local_9c != (undefined4 *****)0x0);\n  }" (if "if") (parenthesized_expression "(iVar26 != 0)" (( "(") (binary_expression "iVar26 != 0" (identifier "iVar26") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    local_a8 = (undefined4 ******)0x0;\n    do {\n      uVar2 = DAT_00078250;\n      if (*(int *)((int)local_9c + 4) != 0) {\n        uVar2 = DAT_0007824e;\n      }\n      local_b4 = *(undefined4 ********)((int)local_9c + 8);\n      uVar32 = (uint)uVar2 * 0x294 + (int)local_b4;\n      pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      if (local_b4 < uVar32) {\n        do {\n          *(undefined4 *******)((int)local_b4 + 0xc) = local_a8;\n          iVar26 = *(int *)((int)local_b4 + 0x78);\n          pcVar24 = pcVar14 + uVar36;\n          if (iVar26 == 0) {\n            iVar15 = 0;\n            iVar26 = 0;\n          }\n          else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }\n          *(int *)((int)local_b4 + 0x10) = iVar15;\n          uVar33 = (int)local_b4 + 0x294;\n          *(int *)((int)local_b4 + 0x14) = iVar26;\n          local_b4 = (undefined4 *******)uVar33;\n        } while (uVar33 < uVar32);\n        pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      }\n      local_9c = pppppuVar17;\n    } while (local_9c != (undefined4 *****)0x0);\n  }" ({ "{") (expression_statement "local_a8 = (undefined4 ******)0x0;" (assignment_expression "local_a8 = (undefined4 ******)0x0" (identifier "local_a8") (= "=") (cast_expression "(undefined4 ******)0x0" (( "(") (type_descriptor "undefined4 ******" (type_identifier "undefined4") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n      uVar2 = DAT_00078250;\n      if (*(int *)((int)local_9c + 4) != 0) {\n        uVar2 = DAT_0007824e;\n      }\n      local_b4 = *(undefined4 ********)((int)local_9c + 8);\n      uVar32 = (uint)uVar2 * 0x294 + (int)local_b4;\n      pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      if (local_b4 < uVar32) {\n        do {\n          *(undefined4 *******)((int)local_b4 + 0xc) = local_a8;\n          iVar26 = *(int *)((int)local_b4 + 0x78);\n          pcVar24 = pcVar14 + uVar36;\n          if (iVar26 == 0) {\n            iVar15 = 0;\n            iVar26 = 0;\n          }\n          else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }\n          *(int *)((int)local_b4 + 0x10) = iVar15;\n          uVar33 = (int)local_b4 + 0x294;\n          *(int *)((int)local_b4 + 0x14) = iVar26;\n          local_b4 = (undefined4 *******)uVar33;\n        } while (uVar33 < uVar32);\n        pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      }\n      local_9c = pppppuVar17;\n    } while (local_9c != (undefined4 *****)0x0);" (do "do") (compound_statement "{\n      uVar2 = DAT_00078250;\n      if (*(int *)((int)local_9c + 4) != 0) {\n        uVar2 = DAT_0007824e;\n      }\n      local_b4 = *(undefined4 ********)((int)local_9c + 8);\n      uVar32 = (uint)uVar2 * 0x294 + (int)local_b4;\n      pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      if (local_b4 < uVar32) {\n        do {\n          *(undefined4 *******)((int)local_b4 + 0xc) = local_a8;\n          iVar26 = *(int *)((int)local_b4 + 0x78);\n          pcVar24 = pcVar14 + uVar36;\n          if (iVar26 == 0) {\n            iVar15 = 0;\n            iVar26 = 0;\n          }\n          else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }\n          *(int *)((int)local_b4 + 0x10) = iVar15;\n          uVar33 = (int)local_b4 + 0x294;\n          *(int *)((int)local_b4 + 0x14) = iVar26;\n          local_b4 = (undefined4 *******)uVar33;\n        } while (uVar33 < uVar32);\n        pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      }\n      local_9c = pppppuVar17;\n    }" ({ "{") (expression_statement "uVar2 = DAT_00078250;" (assignment_expression "uVar2 = DAT_00078250" (identifier "uVar2") (= "=") (identifier "DAT_00078250")) (; ";")) (if_statement "if (*(int *)((int)local_9c + 4) != 0) {\n        uVar2 = DAT_0007824e;\n      }" (if "if") (parenthesized_expression "(*(int *)((int)local_9c + 4) != 0)" (( "(") (binary_expression "*(int *)((int)local_9c + 4) != 0" (pointer_expression "*(int *)((int)local_9c + 4)" (* "*") (cast_expression "(int *)((int)local_9c + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_9c + 4)" (( "(") (binary_expression "(int)local_9c + 4" (cast_expression "(int)local_9c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_9c")) (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar2 = DAT_0007824e;\n      }" ({ "{") (expression_statement "uVar2 = DAT_0007824e;" (assignment_expression "uVar2 = DAT_0007824e" (identifier "uVar2") (= "=") (identifier "DAT_0007824e")) (; ";")) (} "}"))) (expression_statement "local_b4 = *(undefined4 ********)((int)local_9c + 8);" (assignment_expression "local_b4 = *(undefined4 ********)((int)local_9c + 8)" (identifier "local_b4") (= "=") (pointer_expression "*(undefined4 ********)((int)local_9c + 8)" (* "*") (cast_expression "(undefined4 ********)((int)local_9c + 8)" (( "(") (type_descriptor "undefined4 ********" (type_identifier "undefined4") (abstract_pointer_declarator "********" (* "*") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))))) () ")") (parenthesized_expression "((int)local_9c + 8)" (( "(") (binary_expression "(int)local_9c + 8" (cast_expression "(int)local_9c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_9c")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar32 = (uint)uVar2 * 0x294 + (int)local_b4;" (assignment_expression "uVar32 = (uint)uVar2 * 0x294 + (int)local_b4" (identifier "uVar32") (= "=") (binary_expression "(uint)uVar2 * 0x294 + (int)local_b4" (binary_expression "(uint)uVar2 * 0x294" (cast_expression "(uint)uVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar2")) (* "*") (number_literal "0x294")) (+ "+") (cast_expression "(int)local_b4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b4")))) (; ";")) (expression_statement "pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);" (assignment_expression "pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4)" (identifier "pppppuVar17") (= "=") (cast_expression "(undefined4 *****)*(int *)((int)local_9c + 4)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (pointer_expression "*(int *)((int)local_9c + 4)" (* "*") (cast_expression "(int *)((int)local_9c + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_9c + 4)" (( "(") (binary_expression "(int)local_9c + 4" (cast_expression "(int)local_9c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_9c")) (+ "+") (number_literal "4")) () ")")))))) (; ";")) (if_statement "if (local_b4 < uVar32) {\n        do {\n          *(undefined4 *******)((int)local_b4 + 0xc) = local_a8;\n          iVar26 = *(int *)((int)local_b4 + 0x78);\n          pcVar24 = pcVar14 + uVar36;\n          if (iVar26 == 0) {\n            iVar15 = 0;\n            iVar26 = 0;\n          }\n          else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }\n          *(int *)((int)local_b4 + 0x10) = iVar15;\n          uVar33 = (int)local_b4 + 0x294;\n          *(int *)((int)local_b4 + 0x14) = iVar26;\n          local_b4 = (undefined4 *******)uVar33;\n        } while (uVar33 < uVar32);\n        pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      }" (if "if") (parenthesized_expression "(local_b4 < uVar32)" (( "(") (binary_expression "local_b4 < uVar32" (identifier "local_b4") (< "<") (identifier "uVar32")) () ")")) (compound_statement "{\n        do {\n          *(undefined4 *******)((int)local_b4 + 0xc) = local_a8;\n          iVar26 = *(int *)((int)local_b4 + 0x78);\n          pcVar24 = pcVar14 + uVar36;\n          if (iVar26 == 0) {\n            iVar15 = 0;\n            iVar26 = 0;\n          }\n          else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }\n          *(int *)((int)local_b4 + 0x10) = iVar15;\n          uVar33 = (int)local_b4 + 0x294;\n          *(int *)((int)local_b4 + 0x14) = iVar26;\n          local_b4 = (undefined4 *******)uVar33;\n        } while (uVar33 < uVar32);\n        pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);\n      }" ({ "{") (do_statement "do {\n          *(undefined4 *******)((int)local_b4 + 0xc) = local_a8;\n          iVar26 = *(int *)((int)local_b4 + 0x78);\n          pcVar24 = pcVar14 + uVar36;\n          if (iVar26 == 0) {\n            iVar15 = 0;\n            iVar26 = 0;\n          }\n          else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }\n          *(int *)((int)local_b4 + 0x10) = iVar15;\n          uVar33 = (int)local_b4 + 0x294;\n          *(int *)((int)local_b4 + 0x14) = iVar26;\n          local_b4 = (undefined4 *******)uVar33;\n        } while (uVar33 < uVar32);" (do "do") (compound_statement "{\n          *(undefined4 *******)((int)local_b4 + 0xc) = local_a8;\n          iVar26 = *(int *)((int)local_b4 + 0x78);\n          pcVar24 = pcVar14 + uVar36;\n          if (iVar26 == 0) {\n            iVar15 = 0;\n            iVar26 = 0;\n          }\n          else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }\n          *(int *)((int)local_b4 + 0x10) = iVar15;\n          uVar33 = (int)local_b4 + 0x294;\n          *(int *)((int)local_b4 + 0x14) = iVar26;\n          local_b4 = (undefined4 *******)uVar33;\n        }" ({ "{") (expression_statement "*(undefined4 *******)((int)local_b4 + 0xc) = local_a8;" (assignment_expression "*(undefined4 *******)((int)local_b4 + 0xc) = local_a8" (pointer_expression "*(undefined4 *******)((int)local_b4 + 0xc)" (* "*") (cast_expression "(undefined4 *******)((int)local_b4 + 0xc)" (( "(") (type_descriptor "undefined4 *******" (type_identifier "undefined4") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)local_b4 + 0xc)" (( "(") (binary_expression "(int)local_b4 + 0xc" (cast_expression "(int)local_b4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b4")) (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "local_a8")) (; ";")) (expression_statement "iVar26 = *(int *)((int)local_b4 + 0x78);" (assignment_expression "iVar26 = *(int *)((int)local_b4 + 0x78)" (identifier "iVar26") (= "=") (pointer_expression "*(int *)((int)local_b4 + 0x78)" (* "*") (cast_expression "(int *)((int)local_b4 + 0x78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_b4 + 0x78)" (( "(") (binary_expression "(int)local_b4 + 0x78" (cast_expression "(int)local_b4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b4")) (+ "+") (number_literal "0x78")) () ")"))))) (; ";")) (expression_statement "pcVar24 = pcVar14 + uVar36;" (assignment_expression "pcVar24 = pcVar14 + uVar36" (identifier "pcVar24") (= "=") (binary_expression "pcVar14 + uVar36" (identifier "pcVar14") (+ "+") (identifier "uVar36"))) (; ";")) (if_statement "if (iVar26 == 0) {\n            iVar15 = 0;\n            iVar26 = 0;\n          }\n          else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }" (if "if") (parenthesized_expression "(iVar26 == 0)" (( "(") (binary_expression "iVar26 == 0" (identifier "iVar26") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar15 = 0;\n            iVar26 = 0;\n          }" ({ "{") (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" (identifier "iVar15") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar26 = 0;" (assignment_expression "iVar26 = 0" (identifier "iVar26") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }" (else "else") (compound_statement "{\n            iVar15 = 0;\n            do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);\n            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);\n            iVar26 = iVar15 >> 0x1f;\n            uVar36 = uVar16 + (int)local_a8;\n          }" ({ "{") (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" (identifier "iVar15") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            } while (iVar26 != 0);" (do "do") (compound_statement "{\n              if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }\n              uVar36 = (uint)uVar2;\n              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              iVar15 = iVar15 + uVar36;\n              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);\n              iVar26 = *(int *)(iVar26 + 4);\n              pcVar24 = pcVar24 + uVar36;\n            }" ({ "{") (if_statement "if (*(int *)(iVar26 + 4) == 0) {\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }\n              else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }" (if "if") (parenthesized_expression "(*(int *)(iVar26 + 4) == 0)" (( "(") (binary_expression "*(int *)(iVar26 + 4) == 0" (pointer_expression "*(int *)(iVar26 + 4)" (* "*") (cast_expression "(int *)(iVar26 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + 4)" (( "(") (binary_expression "iVar26 + 4" (identifier "iVar26") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                uVar2 = *(ushort *)((int)local_b4 + 0x88);\n              }" ({ "{") (expression_statement "uVar2 = *(ushort *)((int)local_b4 + 0x88);" (assignment_expression "uVar2 = *(ushort *)((int)local_b4 + 0x88)" (identifier "uVar2") (= "=") (pointer_expression "*(ushort *)((int)local_b4 + 0x88)" (* "*") (cast_expression "(ushort *)((int)local_b4 + 0x88)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_b4 + 0x88)" (( "(") (binary_expression "(int)local_b4 + 0x88" (cast_expression "(int)local_b4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b4")) (+ "+") (number_literal "0x88")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }" (else "else") (compound_statement "{\n                uVar2 = *(ushort *)((int)local_b4 + 0x86);\n              }" ({ "{") (expression_statement "uVar2 = *(ushort *)((int)local_b4 + 0x86);" (assignment_expression "uVar2 = *(ushort *)((int)local_b4 + 0x86)" (identifier "uVar2") (= "=") (pointer_expression "*(ushort *)((int)local_b4 + 0x86)" (* "*") (cast_expression "(ushort *)((int)local_b4 + 0x86)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_b4 + 0x86)" (( "(") (binary_expression "(int)local_b4 + 0x86" (cast_expression "(int)local_b4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b4")) (+ "+") (number_literal "0x86")) () ")"))))) (; ";")) (} "}")))) (expression_statement "uVar36 = (uint)uVar2;" (assignment_expression "uVar36 = (uint)uVar2" (identifier "uVar36") (= "=") (cast_expression "(uint)uVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar2"))) (; ";")) (if_statement "if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }" (if "if") (parenthesized_expression "((uint)((int)pcVar1 - (int)pcVar24) < uVar36)" (( "(") (binary_expression "(uint)((int)pcVar1 - (int)pcVar24) < uVar36" (call_expression "(uint)((int)pcVar1 - (int)pcVar24)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pcVar1 - (int)pcVar24)" (( "(") (binary_expression "(int)pcVar1 - (int)pcVar24" (cast_expression "(int)pcVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar1")) (- "-") (cast_expression "(int)pcVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar24"))) () ")"))) (< "<") (identifier "uVar36")) () ")")) (compound_statement "{\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }" ({ "{") (expression_statement "pcVar24 = (char *)FUN_0001ff00(uVar36);" (assignment_expression "pcVar24 = (char *)FUN_0001ff00(uVar36)" (identifier "pcVar24") (= "=") (cast_expression "(char *)FUN_0001ff00(uVar36)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001ff00(uVar36)" (identifier "FUN_0001ff00") (argument_list "(uVar36)" (( "(") (identifier "uVar36") () ")"))))) (; ";")) (} "}"))) (expression_statement "iVar15 = iVar15 + uVar36;" (assignment_expression "iVar15 = iVar15 + uVar36" (identifier "iVar15") (= "=") (binary_expression "iVar15 + uVar36" (identifier "iVar15") (+ "+") (identifier "uVar36"))) (; ";")) (expression_statement "memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);" (call_expression "memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36)" (identifier "memcpy") (argument_list "(pcVar24,*(void **)(iVar26 + 8),uVar36)" (( "(") (identifier "pcVar24") (, ",") (pointer_expression "*(void **)(iVar26 + 8)" (* "*") (cast_expression "(void **)(iVar26 + 8)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar26 + 8)" (( "(") (binary_expression "iVar26 + 8" (identifier "iVar26") (+ "+") (number_literal "8")) () ")")))) (, ",") (identifier "uVar36") () ")"))) (; ";")) (expression_statement "iVar26 = *(int *)(iVar26 + 4);" (assignment_expression "iVar26 = *(int *)(iVar26 + 4)" (identifier "iVar26") (= "=") (pointer_expression "*(int *)(iVar26 + 4)" (* "*") (cast_expression "(int *)(iVar26 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + 4)" (( "(") (binary_expression "iVar26 + 4" (identifier "iVar26") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "pcVar24 = pcVar24 + uVar36;" (assignment_expression "pcVar24 = pcVar24 + uVar36" (identifier "pcVar24") (= "=") (binary_expression "pcVar24 + uVar36" (identifier "pcVar24") (+ "+") (identifier "uVar36"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar26 != 0)" (( "(") (binary_expression "iVar26 != 0" (identifier "iVar26") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "local_a8 = (undefined4 ******)((int)local_a8 + iVar15);" (assignment_expression "local_a8 = (undefined4 ******)((int)local_a8 + iVar15)" (identifier "local_a8") (= "=") (cast_expression "(undefined4 ******)((int)local_a8 + iVar15)" (( "(") (type_descriptor "undefined4 ******" (type_identifier "undefined4") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((int)local_a8 + iVar15)" (( "(") (binary_expression "(int)local_a8 + iVar15" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (+ "+") (identifier "iVar15")) () ")")))) (; ";")) (expression_statement "iVar26 = iVar15 >> 0x1f;" (assignment_expression "iVar26 = iVar15 >> 0x1f" (identifier "iVar26") (= "=") (binary_expression "iVar15 >> 0x1f" (identifier "iVar15") (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar36 = uVar16 + (int)local_a8;" (assignment_expression "uVar36 = uVar16 + (int)local_a8" (identifier "uVar36") (= "=") (binary_expression "uVar16 + (int)local_a8" (identifier "uVar16") (+ "+") (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")))) (; ";")) (} "}")))) (expression_statement "*(int *)((int)local_b4 + 0x10) = iVar15;" (assignment_expression "*(int *)((int)local_b4 + 0x10) = iVar15" (pointer_expression "*(int *)((int)local_b4 + 0x10)" (* "*") (cast_expression "(int *)((int)local_b4 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_b4 + 0x10)" (( "(") (binary_expression "(int)local_b4 + 0x10" (cast_expression "(int)local_b4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b4")) (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "iVar15")) (; ";")) (expression_statement "uVar33 = (int)local_b4 + 0x294;" (assignment_expression "uVar33 = (int)local_b4 + 0x294" (identifier "uVar33") (= "=") (binary_expression "(int)local_b4 + 0x294" (cast_expression "(int)local_b4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b4")) (+ "+") (number_literal "0x294"))) (; ";")) (expression_statement "*(int *)((int)local_b4 + 0x14) = iVar26;" (assignment_expression "*(int *)((int)local_b4 + 0x14) = iVar26" (pointer_expression "*(int *)((int)local_b4 + 0x14)" (* "*") (cast_expression "(int *)((int)local_b4 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_b4 + 0x14)" (( "(") (binary_expression "(int)local_b4 + 0x14" (cast_expression "(int)local_b4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b4")) (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "iVar26")) (; ";")) (expression_statement "local_b4 = (undefined4 *******)uVar33;" (assignment_expression "local_b4 = (undefined4 *******)uVar33" (identifier "local_b4") (= "=") (cast_expression "(undefined4 *******)uVar33" (( "(") (type_descriptor "undefined4 *******" (type_identifier "undefined4") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (identifier "uVar33"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar33 < uVar32)" (( "(") (binary_expression "uVar33 < uVar32" (identifier "uVar33") (< "<") (identifier "uVar32")) () ")")) (; ";")) (expression_statement "pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);" (assignment_expression "pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4)" (identifier "pppppuVar17") (= "=") (cast_expression "(undefined4 *****)*(int *)((int)local_9c + 4)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (pointer_expression "*(int *)((int)local_9c + 4)" (* "*") (cast_expression "(int *)((int)local_9c + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_9c + 4)" (( "(") (binary_expression "(int)local_9c + 4" (cast_expression "(int)local_9c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_9c")) (+ "+") (number_literal "4")) () ")")))))) (; ";")) (} "}"))) (expression_statement "local_9c = pppppuVar17;" (assignment_expression "local_9c = pppppuVar17" (identifier "local_9c") (= "=") (identifier "pppppuVar17")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_9c != (undefined4 *****)0x0)" (( "(") (binary_expression "local_9c != (undefined4 *****)0x0" (identifier "local_9c") (!= "!=") (cast_expression "(undefined4 *****)0x0" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (expression_statement "local_9c = (undefined4 *****)FUN_0001ff70(uVar36,0);" (assignment_expression "local_9c = (undefined4 *****)FUN_0001ff70(uVar36,0)" (identifier "local_9c") (= "=") (cast_expression "(undefined4 *****)FUN_0001ff70(uVar36,0)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (call_expression "FUN_0001ff70(uVar36,0)" (identifier "FUN_0001ff70") (argument_list "(uVar36,0)" (( "(") (identifier "uVar36") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "uVar36 = *(uint *)(param_3 + 0x38);" (assignment_expression "uVar36 = *(uint *)(param_3 + 0x38)" (identifier "uVar36") (= "=") (pointer_expression "*(uint *)(param_3 + 0x38)" (* "*") (cast_expression "(uint *)(param_3 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x38)" (( "(") (binary_expression "param_3 + 0x38" (identifier "param_3") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x78) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x78) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x78)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x78)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x78)" (( "(") (binary_expression "param_1 + 0x78" (identifier "param_1") (+ "+") (number_literal "0x78")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)(param_1 + 0x54) = (int)local_9c - *(int *)(param_1 + 0x58);" (assignment_expression "*(int *)(param_1 + 0x54) = (int)local_9c - *(int *)(param_1 + 0x58)" (pointer_expression "*(int *)(param_1 + 0x54)" (* "*") (cast_expression "(int *)(param_1 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")")))) (= "=") (binary_expression "(int)local_9c - *(int *)(param_1 + 0x58)" (cast_expression "(int)local_9c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_9c")) (- "-") (pointer_expression "*(int *)(param_1 + 0x58)" (* "*") (cast_expression "(int *)(param_1 + 0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x58)" (( "(") (binary_expression "param_1 + 0x58" (identifier "param_1") (+ "+") (number_literal "0x58")) () ")")))))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x7c) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x7c) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x7c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x7c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x7c)" (( "(") (binary_expression "param_1 + 0x7c" (identifier "param_1") (+ "+") (number_literal "0x7c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x80) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x80) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x80)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x80)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x80)" (( "(") (binary_expression "param_1 + 0x80" (identifier "param_1") (+ "+") (number_literal "0x80")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 ******)(param_1 + 0x70) = local_9c;" (assignment_expression "*(undefined4 ******)(param_1 + 0x70) = local_9c" (pointer_expression "*(undefined4 ******)(param_1 + 0x70)" (* "*") (cast_expression "(undefined4 ******)(param_1 + 0x70)" (( "(") (type_descriptor "undefined4 ******" (type_identifier "undefined4") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(param_1 + 0x70)" (( "(") (binary_expression "param_1 + 0x70" (identifier "param_1") (+ "+") (number_literal "0x70")) () ")")))) (= "=") (identifier "local_9c")) (; ";")) (expression_statement "pcVar24 = pcVar14 + (int)local_9c;" (assignment_expression "pcVar24 = pcVar14 + (int)local_9c" (identifier "pcVar24") (= "=") (binary_expression "pcVar14 + (int)local_9c" (identifier "pcVar14") (+ "+") (cast_expression "(int)local_9c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_9c")))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x74) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x74) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x74)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x74)" (( "(") (binary_expression "param_1 + 0x74" (identifier "param_1") (+ "+") (number_literal "0x74")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar5 = *(code **)(param_3 + 0x88);" (assignment_expression "pcVar5 = *(code **)(param_3 + 0x88)" (identifier "pcVar5") (= "=") (pointer_expression "*(code **)(param_3 + 0x88)" (* "*") (cast_expression "(code **)(param_3 + 0x88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + 0x88)" (( "(") (binary_expression "param_3 + 0x88" (identifier "param_3") (+ "+") (number_literal "0x88")) () ")"))))) (; ";")) (expression_statement "uVar16 = *(uint *)(param_3 + 0x34);" (assignment_expression "uVar16 = *(uint *)(param_3 + 0x34)" (identifier "uVar16") (= "=") (pointer_expression "*(uint *)(param_3 + 0x34)" (* "*") (cast_expression "(uint *)(param_3 + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x34)" (( "(") (binary_expression "param_3 + 0x34" (identifier "param_3") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (if_statement "if (DAT_00078240 == 0) {\n    uVar13 = 0;\n  }\n  else {\n    local_ac = (undefined4 *****)0x0;\n    ppppppuVar27 = (undefined4 ******)DAT_00078240;\nLAB_000251e2:\n    do {\n      local_98 = ppppppuVar27;\n      uVar32 = *(uint *)((int)local_98 + 8);\n      pcVar19 = pcVar24;\n      if (*(int *)((int)local_98 + 4) == 0) {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);\n        if (local_b4 <= uVar32) {\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);\n        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n        if (local_b4 <= uVar32) goto LAB_000251e2;\n      }\n      do {\n        uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;\n        if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           ) {\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }\n        pcVar24 = pcVar19 + uVar16;\n        uVar33 = uVar32 + 0x294;\n        (*pcVar5)(DAT_00081544,uVar32,pcVar19);\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        pcVar19 = pcVar24;\n        uVar32 = uVar33;\n      } while (uVar33 < local_b4);\n      ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n    } while (*(int *)((int)local_98 + 4) != 0);\n    local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n    uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                          -(uint)(local_9c < *(uint *)(param_1 + 0x70)) - *(int *)(param_1 + 0x74),\n                          *(undefined4 *)(param_3 + 0x34),*(undefined4 *)(param_3 + 0x38));\n  }" (if "if") (parenthesized_expression "(DAT_00078240 == 0)" (( "(") (binary_expression "DAT_00078240 == 0" (identifier "DAT_00078240") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar13 = 0;\n  }" ({ "{") (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" (identifier "uVar13") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    local_ac = (undefined4 *****)0x0;\n    ppppppuVar27 = (undefined4 ******)DAT_00078240;\nLAB_000251e2:\n    do {\n      local_98 = ppppppuVar27;\n      uVar32 = *(uint *)((int)local_98 + 8);\n      pcVar19 = pcVar24;\n      if (*(int *)((int)local_98 + 4) == 0) {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);\n        if (local_b4 <= uVar32) {\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);\n        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n        if (local_b4 <= uVar32) goto LAB_000251e2;\n      }\n      do {\n        uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;\n        if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           ) {\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }\n        pcVar24 = pcVar19 + uVar16;\n        uVar33 = uVar32 + 0x294;\n        (*pcVar5)(DAT_00081544,uVar32,pcVar19);\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        pcVar19 = pcVar24;\n        uVar32 = uVar33;\n      } while (uVar33 < local_b4);\n      ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n    } while (*(int *)((int)local_98 + 4) != 0);\n    local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n    uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                          -(uint)(local_9c < *(uint *)(param_1 + 0x70)) - *(int *)(param_1 + 0x74),\n                          *(undefined4 *)(param_3 + 0x34),*(undefined4 *)(param_3 + 0x38));\n  }" (else "else") (compound_statement "{\n    local_ac = (undefined4 *****)0x0;\n    ppppppuVar27 = (undefined4 ******)DAT_00078240;\nLAB_000251e2:\n    do {\n      local_98 = ppppppuVar27;\n      uVar32 = *(uint *)((int)local_98 + 8);\n      pcVar19 = pcVar24;\n      if (*(int *)((int)local_98 + 4) == 0) {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);\n        if (local_b4 <= uVar32) {\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);\n        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n        if (local_b4 <= uVar32) goto LAB_000251e2;\n      }\n      do {\n        uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;\n        if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           ) {\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }\n        pcVar24 = pcVar19 + uVar16;\n        uVar33 = uVar32 + 0x294;\n        (*pcVar5)(DAT_00081544,uVar32,pcVar19);\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        pcVar19 = pcVar24;\n        uVar32 = uVar33;\n      } while (uVar33 < local_b4);\n      ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n    } while (*(int *)((int)local_98 + 4) != 0);\n    local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n    uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                          -(uint)(local_9c < *(uint *)(param_1 + 0x70)) - *(int *)(param_1 + 0x74),\n                          *(undefined4 *)(param_3 + 0x34),*(undefined4 *)(param_3 + 0x38));\n  }" ({ "{") (expression_statement "local_ac = (undefined4 *****)0x0;" (assignment_expression "local_ac = (undefined4 *****)0x0" (identifier "local_ac") (= "=") (cast_expression "(undefined4 *****)0x0" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppppppuVar27 = (undefined4 ******)DAT_00078240;" (assignment_expression "ppppppuVar27 = (undefined4 ******)DAT_00078240" (identifier "ppppppuVar27") (= "=") (cast_expression "(undefined4 ******)DAT_00078240" (( "(") (type_descriptor "undefined4 ******" (type_identifier "undefined4") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (identifier "DAT_00078240"))) (; ";")) (labeled_statement "LAB_000251e2:\n    do {\n      local_98 = ppppppuVar27;\n      uVar32 = *(uint *)((int)local_98 + 8);\n      pcVar19 = pcVar24;\n      if (*(int *)((int)local_98 + 4) == 0) {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);\n        if (local_b4 <= uVar32) {\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);\n        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n        if (local_b4 <= uVar32) goto LAB_000251e2;\n      }\n      do {\n        uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;\n        if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           ) {\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }\n        pcVar24 = pcVar19 + uVar16;\n        uVar33 = uVar32 + 0x294;\n        (*pcVar5)(DAT_00081544,uVar32,pcVar19);\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        pcVar19 = pcVar24;\n        uVar32 = uVar33;\n      } while (uVar33 < local_b4);\n      ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n    } while (*(int *)((int)local_98 + 4) != 0);" (statement_identifier "LAB_000251e2") (: ":") (do_statement "do {\n      local_98 = ppppppuVar27;\n      uVar32 = *(uint *)((int)local_98 + 8);\n      pcVar19 = pcVar24;\n      if (*(int *)((int)local_98 + 4) == 0) {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);\n        if (local_b4 <= uVar32) {\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);\n        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n        if (local_b4 <= uVar32) goto LAB_000251e2;\n      }\n      do {\n        uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;\n        if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           ) {\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }\n        pcVar24 = pcVar19 + uVar16;\n        uVar33 = uVar32 + 0x294;\n        (*pcVar5)(DAT_00081544,uVar32,pcVar19);\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        pcVar19 = pcVar24;\n        uVar32 = uVar33;\n      } while (uVar33 < local_b4);\n      ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n    } while (*(int *)((int)local_98 + 4) != 0);" (do "do") (compound_statement "{\n      local_98 = ppppppuVar27;\n      uVar32 = *(uint *)((int)local_98 + 8);\n      pcVar19 = pcVar24;\n      if (*(int *)((int)local_98 + 4) == 0) {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);\n        if (local_b4 <= uVar32) {\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);\n        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n        if (local_b4 <= uVar32) goto LAB_000251e2;\n      }\n      do {\n        uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;\n        if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           ) {\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }\n        pcVar24 = pcVar19 + uVar16;\n        uVar33 = uVar32 + 0x294;\n        (*pcVar5)(DAT_00081544,uVar32,pcVar19);\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        pcVar19 = pcVar24;\n        uVar32 = uVar33;\n      } while (uVar33 < local_b4);\n      ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n    }" ({ "{") (expression_statement "local_98 = ppppppuVar27;" (assignment_expression "local_98 = ppppppuVar27" (identifier "local_98") (= "=") (identifier "ppppppuVar27")) (; ";")) (expression_statement "uVar32 = *(uint *)((int)local_98 + 8);" (assignment_expression "uVar32 = *(uint *)((int)local_98 + 8)" (identifier "uVar32") (= "=") (pointer_expression "*(uint *)((int)local_98 + 8)" (* "*") (cast_expression "(uint *)((int)local_98 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_98 + 8)" (( "(") (binary_expression "(int)local_98 + 8" (cast_expression "(int)local_98" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_98")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "pcVar19 = pcVar24;" (assignment_expression "pcVar19 = pcVar24" (identifier "pcVar19") (= "=") (identifier "pcVar24")) (; ";")) (if_statement "if (*(int *)((int)local_98 + 4) == 0) {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);\n        if (local_b4 <= uVar32) {\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }\n      }\n      else {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);\n        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n        if (local_b4 <= uVar32) goto LAB_000251e2;\n      }" (if "if") (parenthesized_expression "(*(int *)((int)local_98 + 4) == 0)" (( "(") (binary_expression "*(int *)((int)local_98 + 4) == 0" (pointer_expression "*(int *)((int)local_98 + 4)" (* "*") (cast_expression "(int *)((int)local_98 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_98 + 4)" (( "(") (binary_expression "(int)local_98 + 4" (cast_expression "(int)local_98" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_98")) (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);\n        if (local_b4 <= uVar32) {\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }\n      }" ({ "{") (expression_statement "local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);" (assignment_expression "local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294)" (identifier "local_b4") (= "=") (cast_expression "(undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294)" (( "(") (type_descriptor "undefined4 *******" (type_identifier "undefined4") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(uVar32 + (uint)DAT_00078250 * 0x294)" (( "(") (binary_expression "uVar32 + (uint)DAT_00078250 * 0x294" (identifier "uVar32") (+ "+") (binary_expression "(uint)DAT_00078250 * 0x294" (cast_expression "(uint)DAT_00078250" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "DAT_00078250")) (* "*") (number_literal "0x294"))) () ")")))) (; ";")) (if_statement "if (local_b4 <= uVar32) {\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }" (if "if") (parenthesized_expression "(local_b4 <= uVar32)" (( "(") (binary_expression "local_b4 <= uVar32" (identifier "local_b4") (<= "<=") (identifier "uVar32")) () ")")) (compound_statement "{\n          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);\n          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));\n          goto LAB_000252e8;\n        }" ({ "{") (expression_statement "local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);" (assignment_expression "local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16)" (identifier "local_9c") (= "=") (cast_expression "(undefined4 *****)((int)local_9c + (int)local_ac * uVar16)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)local_9c + (int)local_ac * uVar16)" (( "(") (binary_expression "(int)local_9c + (int)local_ac * uVar16" (cast_expression "(int)local_9c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_9c")) (+ "+") (binary_expression "(int)local_ac * uVar16" (cast_expression "(int)local_ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_ac")) (* "*") (identifier "uVar16"))) () ")")))) (; ";")) (expression_statement "uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38));" (assignment_expression "uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38))" (identifier "uVar13") (= "=") (call_expression "FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38))" (identifier "FUN_000548c0") (argument_list "((int)local_9c - *(uint *)(param_1 + 0x70),\n                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),\n                                *(undefined4 *)(param_3 + 0x38))" (( "(") (binary_expression "(int)local_9c - *(uint *)(param_1 + 0x70)" (cast_expression "(int)local_9c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_9c")) (- "-") (pointer_expression "*(uint *)(param_1 + 0x70)" (* "*") (cast_expression "(uint *)(param_1 + 0x70)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x70)" (( "(") (binary_expression "param_1 + 0x70" (identifier "param_1") (+ "+") (number_literal "0x70")) () ")"))))) (, ",") (binary_expression "-(uint)(local_9c < *(uint *)(param_1 + 0x70)) -\n                                *(int *)(param_1 + 0x74)" (unary_expression "-(uint)(local_9c < *(uint *)(param_1 + 0x70))" (- "-") (call_expression "(uint)(local_9c < *(uint *)(param_1 + 0x70))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_9c < *(uint *)(param_1 + 0x70))" (( "(") (binary_expression "local_9c < *(uint *)(param_1 + 0x70)" (identifier "local_9c") (< "<") (pointer_expression "*(uint *)(param_1 + 0x70)" (* "*") (cast_expression "(uint *)(param_1 + 0x70)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x70)" (( "(") (binary_expression "param_1 + 0x70" (identifier "param_1") (+ "+") (number_literal "0x70")) () ")"))))) () ")")))) (- "-") (pointer_expression "*(int *)(param_1 + 0x74)" (* "*") (cast_expression "(int *)(param_1 + 0x74)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x74)" (( "(") (binary_expression "param_1 + 0x74" (identifier "param_1") (+ "+") (number_literal "0x74")) () ")"))))) (, ",") (pointer_expression "*(undefined4 *)(param_3 + 0x34)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x34)" (( "(") (binary_expression "param_3 + 0x34" (identifier "param_3") (+ "+") (number_literal "0x34")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_3 + 0x38)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x38)" (( "(") (binary_expression "param_3 + 0x38" (identifier "param_3") (+ "+") (number_literal "0x38")) () ")")))) () ")")))) (; ";")) (goto_statement "goto LAB_000252e8;" (goto "goto") (statement_identifier "LAB_000252e8") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);\n        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n        if (local_b4 <= uVar32) goto LAB_000251e2;\n      }" (else "else") (compound_statement "{\n        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);\n        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);\n        if (local_b4 <= uVar32) goto LAB_000251e2;\n      }" ({ "{") (expression_statement "local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);" (assignment_expression "local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294)" (identifier "local_b4") (= "=") (cast_expression "(undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294)" (( "(") (type_descriptor "undefined4 *******" (type_identifier "undefined4") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(uVar32 + (uint)DAT_0007824e * 0x294)" (( "(") (binary_expression "uVar32 + (uint)DAT_0007824e * 0x294" (identifier "uVar32") (+ "+") (binary_expression "(uint)DAT_0007824e * 0x294" (cast_expression "(uint)DAT_0007824e" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "DAT_0007824e")) (* "*") (number_literal "0x294"))) () ")")))) (; ";")) (expression_statement "ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);" (assignment_expression "ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4)" (identifier "ppppppuVar27") (= "=") (cast_expression "(undefined4 ******)*(int *)((int)local_98 + 4)" (( "(") (type_descriptor "undefined4 ******" (type_identifier "undefined4") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (pointer_expression "*(int *)((int)local_98 + 4)" (* "*") (cast_expression "(int *)((int)local_98 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_98 + 4)" (( "(") (binary_expression "(int)local_98 + 4" (cast_expression "(int)local_98" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_98")) (+ "+") (number_literal "4")) () ")")))))) (; ";")) (if_statement "if (local_b4 <= uVar32) goto LAB_000251e2;" (if "if") (parenthesized_expression "(local_b4 <= uVar32)" (( "(") (binary_expression "local_b4 <= uVar32" (identifier "local_b4") (<= "<=") (identifier "uVar32")) () ")")) (goto_statement "goto LAB_000251e2;" (goto "goto") (statement_identifier "LAB_000251e2") (; ";"))) (} "}")))) (do_statement "do {\n        uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;\n        if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           ) {\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }\n        pcVar24 = pcVar19 + uVar16;\n        uVar33 = uVar32 + 0x294;\n        (*pcVar5)(DAT_00081544,uVar32,pcVar19);\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        pcVar19 = pcVar24;\n        uVar32 = uVar33;\n      } while (uVar33 < local_b4);" (do "do") (compound_statement "{\n        uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;\n        if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           ) {\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }\n        pcVar24 = pcVar19 + uVar16;\n        uVar33 = uVar32 + 0x294;\n        (*pcVar5)(DAT_00081544,uVar32,pcVar19);\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        pcVar19 = pcVar24;\n        uVar32 = uVar33;\n      }" ({ "{") (expression_statement "uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;" (assignment_expression "uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f" (identifier "uVar33") (= "=") (binary_expression "(int)pcVar1 - (int)pcVar19 >> 0x1f" (binary_expression "(int)pcVar1 - (int)pcVar19" (cast_expression "(int)pcVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar1")) (- "-") (cast_expression "(int)pcVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar19"))) (>> ">>") (number_literal "0x1f"))) (; ";")) (if_statement "if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           ) {\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }" (if "if") (parenthesized_expression "(uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)\n           )" (( "(") (binary_expression "uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)" (binary_expression "uVar33 < uVar36" (identifier "uVar33") (< "<") (identifier "uVar36")) (|| "||") (binary_expression "uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)" (binary_expression "uVar33 - uVar36" (identifier "uVar33") (- "-") (identifier "uVar36")) (< "<") (call_expression "(uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uint)((int)pcVar1 - (int)pcVar19) < uVar16)" (( "(") (binary_expression "(uint)((int)pcVar1 - (int)pcVar19) < uVar16" (call_expression "(uint)((int)pcVar1 - (int)pcVar19)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pcVar1 - (int)pcVar19)" (( "(") (binary_expression "(int)pcVar1 - (int)pcVar19" (cast_expression "(int)pcVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar1")) (- "-") (cast_expression "(int)pcVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar19"))) () ")"))) (< "<") (identifier "uVar16")) () ")"))))) () ")")) (compound_statement "{\n          pcVar19 = (char *)FUN_0001ff00(uVar16);\n        }" ({ "{") (expression_statement "pcVar19 = (char *)FUN_0001ff00(uVar16);" (assignment_expression "pcVar19 = (char *)FUN_0001ff00(uVar16)" (identifier "pcVar19") (= "=") (cast_expression "(char *)FUN_0001ff00(uVar16)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001ff00(uVar16)" (identifier "FUN_0001ff00") (argument_list "(uVar16)" (( "(") (identifier "uVar16") () ")"))))) (; ";")) (} "}"))) (expression_statement "pcVar24 = pcVar19 + uVar16;" (assignment_expression "pcVar24 = pcVar19 + uVar16" (identifier "pcVar24") (= "=") (binary_expression "pcVar19 + uVar16" (identifier "pcVar19") (+ "+") (identifier "uVar16"))) (; ";")) (expression_statement "uVar33 = uVar32 + 0x294;" (assignment_expression "uVar33 = uVar32 + 0x294" (identifier "uVar33") (= "=") (binary_expression "uVar32 + 0x294" (identifier "uVar32") (+ "+") (number_literal "0x294"))) (; ";")) (expression_statement "(*pcVar5)(DAT_00081544,uVar32,pcVar19);" (call_expression "(*pcVar5)(DAT_00081544,uVar32,pcVar19)" (parenthesized_expression "(*pcVar5)" (( "(") (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")) () ")")) (argument_list "(DAT_00081544,uVar32,pcVar19)" (( "(") (identifier "DAT_00081544") (, ",") (identifier "uVar32") (, ",") (identifier "pcVar19") () ")"))) (; ";")) (expression_statement "local_ac = (undefined4 *****)((int)local_ac + 1);" (assignment_expression "local_ac = (undefined4 *****)((int)local_ac + 1)" (identifier "local_ac") (= "=") (cast_expression "(undefined4 *****)((int)local_ac + 1)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)local_ac + 1)" (( "(") (binary_expression "(int)local_ac + 1" (cast_expression "(int)local_ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_ac")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pcVar19 = pcVar24;" (assignment_expression "pcVar19 = pcVar24" (identifier "pcVar19") (= "=") (identifier "pcVar24")) (; ";")) (expression_statement "uVar32 = uVar33;" (assignment_expression "uVar32 = uVar33" (identifier "uVar32") (= "=") (identifier "uVar33")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar33 < local_b4)" (( "(") (binary_expression "uVar33 < local_b4" (identifier "uVar33") (< "<") (identifier "local_b4")) () ")")) (; ";")) (expression_statement "ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);" (assignment_expression "ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4)" (identifier "ppppppuVar27") (= "=") (cast_expression "(undefined4 ******)*(int *)((int)local_98 + 4)" (( "(") (type_descriptor "undefined4 ******" (type_identifier "undefined4") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (pointer_expression "*(int *)((int)local_98 + 4)" (* "*") (cast_expression "(int *)((int)local_98 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_98 + 4)" (( "(") (binary_expression "(int)local_98 + 4" (cast_expression "(int)local_98" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_98")) (+ "+") (number_literal "4")) () ")")))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(int *)((int)local_98 + 4) != 0)" (( "(") (binary_expression "*(int *)((int)local_98 + 4) != 0" (pointer_expression "*(int *)((int)local_98 + 4)" (* "*") (cast_expression "(int *)((int)local_98 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_98 + 4)" (( "(") (binary_expression "(int)local_98 + 4" (cast_expression "(int)local_98" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_98")) (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (; ";"))) (expression_statement "local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);" (assignment_expression "local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16)" (identifier "local_9c") (= "=") (cast_expression "(undefined4 *****)((int)local_9c + (int)local_ac * uVar16)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)local_9c + (int)local_ac * uVar16)" (( "(") (binary_expression "(int)local_9c + (int)local_ac * uVar16" (cast_expression "(int)local_9c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_9c")) (+ "+") (binary_expression "(int)local_ac * uVar16" (cast_expression "(int)local_ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_ac")) (* "*") (identifier "uVar16"))) () ")")))) (; ";")) (expression_statement "uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                          -(uint)(local_9c < *(uint *)(param_1 + 0x70)) - *(int *)(param_1 + 0x74),\n                          *(undefined4 *)(param_3 + 0x34),*(undefined4 *)(param_3 + 0x38));" (assignment_expression "uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                          -(uint)(local_9c < *(uint *)(param_1 + 0x70)) - *(int *)(param_1 + 0x74),\n                          *(undefined4 *)(param_3 + 0x34),*(undefined4 *)(param_3 + 0x38))" (identifier "uVar13") (= "=") (call_expression "FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),\n                          -(uint)(local_9c < *(uint *)(param_1 + 0x70)) - *(int *)(param_1 + 0x74),\n                          *(undefined4 *)(param_3 + 0x34),*(undefined4 *)(param_3 + 0x38))" (identifier "FUN_000548c0") (argument_list "((int)local_9c - *(uint *)(param_1 + 0x70),\n                          -(uint)(local_9c < *(uint *)(param_1 + 0x70)) - *(int *)(param_1 + 0x74),\n                          *(undefined4 *)(param_3 + 0x34),*(undefined4 *)(param_3 + 0x38))" (( "(") (binary_expression "(int)local_9c - *(uint *)(param_1 + 0x70)" (cast_expression "(int)local_9c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_9c")) (- "-") (pointer_expression "*(uint *)(param_1 + 0x70)" (* "*") (cast_expression "(uint *)(param_1 + 0x70)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x70)" (( "(") (binary_expression "param_1 + 0x70" (identifier "param_1") (+ "+") (number_literal "0x70")) () ")"))))) (, ",") (binary_expression "-(uint)(local_9c < *(uint *)(param_1 + 0x70)) - *(int *)(param_1 + 0x74)" (unary_expression "-(uint)(local_9c < *(uint *)(param_1 + 0x70))" (- "-") (call_expression "(uint)(local_9c < *(uint *)(param_1 + 0x70))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_9c < *(uint *)(param_1 + 0x70))" (( "(") (binary_expression "local_9c < *(uint *)(param_1 + 0x70)" (identifier "local_9c") (< "<") (pointer_expression "*(uint *)(param_1 + 0x70)" (* "*") (cast_expression "(uint *)(param_1 + 0x70)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x70)" (( "(") (binary_expression "param_1 + 0x70" (identifier "param_1") (+ "+") (number_literal "0x70")) () ")"))))) () ")")))) (- "-") (pointer_expression "*(int *)(param_1 + 0x74)" (* "*") (cast_expression "(int *)(param_1 + 0x74)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x74)" (( "(") (binary_expression "param_1 + 0x74" (identifier "param_1") (+ "+") (number_literal "0x74")) () ")"))))) (, ",") (pointer_expression "*(undefined4 *)(param_3 + 0x34)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x34)" (( "(") (binary_expression "param_3 + 0x34" (identifier "param_3") (+ "+") (number_literal "0x34")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_3 + 0x38)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x38)" (( "(") (binary_expression "param_3 + 0x38" (identifier "param_3") (+ "+") (number_literal "0x38")) () ")")))) () ")")))) (; ";")) (} "}")))) (labeled_statement "LAB_000252e8:\n  *(undefined4 *)(param_1 + 0x6c) = uVar13;" (statement_identifier "LAB_000252e8") (: ":") (expression_statement "*(undefined4 *)(param_1 + 0x6c) = uVar13;" (assignment_expression "*(undefined4 *)(param_1 + 0x6c) = uVar13" (pointer_expression "*(undefined4 *)(param_1 + 0x6c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x6c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x6c)" (( "(") (binary_expression "param_1 + 0x6c" (identifier "param_1") (+ "+") (number_literal "0x6c")) () ")")))) (= "=") (identifier "uVar13")) (; ";"))) (expression_statement "*(undefined4 *)(param_1 + 0x60) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x60) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x60)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x60)" (( "(") (binary_expression "param_1 + 0x60" (identifier "param_1") (+ "+") (number_literal "0x60")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar26 = DAT_000816a4;" (assignment_expression "iVar26 = DAT_000816a4" (identifier "iVar26") (= "=") (identifier "DAT_000816a4")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 100) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 100) = 0" (pointer_expression "*(undefined4 *)(param_1 + 100)" (* "*") (cast_expression "(undefined4 *)(param_1 + 100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 100)" (( "(") (binary_expression "param_1 + 100" (identifier "param_1") (+ "+") (number_literal "100")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x68) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x68) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x68)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x68)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x68)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x84) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x84) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x84)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x84)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x84)" (( "(") (binary_expression "param_1 + 0x84" (identifier "param_1") (+ "+") (number_literal "0x84")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x88) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x88) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x88)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x88)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x88)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x8c) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x8c) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x8c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x8c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x8c)" (( "(") (binary_expression "param_1 + 0x8c" (identifier "param_1") (+ "+") (number_literal "0x8c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (for_statement "for (; iVar26 != 0; iVar26 = FUN_00040c00(iVar26)) {\n    iVar15 = FUN_00041590(iVar26);\n    if (*(int *)(iVar15 + 0x10) != 0) {\n      iVar15 = FUN_0003dc20(iVar26);\n      if (((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n         (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) {\n        iVar15 = FUN_00041590(iVar26);\n        iVar15 = *(int *)(iVar15 + 0x10);\n        *(undefined4 *)(iVar15 + 0x34) = 0;\n        *(undefined4 *)(iVar15 + 0x38) = 0;\n        *(uint *)(iVar15 + 0x3c) = *(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000;\n      }\n      iVar15 = FUN_00041590(iVar26);\n      FUN_0004ed20(iVar26,*(int *)(iVar15 + 0x10) + 0x28);\n    }\n  }" (for "for") (( "(") (; ";") (binary_expression "iVar26 != 0" (identifier "iVar26") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar26 = FUN_00040c00(iVar26)" (identifier "iVar26") (= "=") (call_expression "FUN_00040c00(iVar26)" (identifier "FUN_00040c00") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) () ")") (compound_statement "{\n    iVar15 = FUN_00041590(iVar26);\n    if (*(int *)(iVar15 + 0x10) != 0) {\n      iVar15 = FUN_0003dc20(iVar26);\n      if (((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n         (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) {\n        iVar15 = FUN_00041590(iVar26);\n        iVar15 = *(int *)(iVar15 + 0x10);\n        *(undefined4 *)(iVar15 + 0x34) = 0;\n        *(undefined4 *)(iVar15 + 0x38) = 0;\n        *(uint *)(iVar15 + 0x3c) = *(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000;\n      }\n      iVar15 = FUN_00041590(iVar26);\n      FUN_0004ed20(iVar26,*(int *)(iVar15 + 0x10) + 0x28);\n    }\n  }" ({ "{") (expression_statement "iVar15 = FUN_00041590(iVar26);" (assignment_expression "iVar15 = FUN_00041590(iVar26)" (identifier "iVar15") (= "=") (call_expression "FUN_00041590(iVar26)" (identifier "FUN_00041590") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (; ";")) (if_statement "if (*(int *)(iVar15 + 0x10) != 0) {\n      iVar15 = FUN_0003dc20(iVar26);\n      if (((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n         (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) {\n        iVar15 = FUN_00041590(iVar26);\n        iVar15 = *(int *)(iVar15 + 0x10);\n        *(undefined4 *)(iVar15 + 0x34) = 0;\n        *(undefined4 *)(iVar15 + 0x38) = 0;\n        *(uint *)(iVar15 + 0x3c) = *(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000;\n      }\n      iVar15 = FUN_00041590(iVar26);\n      FUN_0004ed20(iVar26,*(int *)(iVar15 + 0x10) + 0x28);\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar15 + 0x10) != 0)" (( "(") (binary_expression "*(int *)(iVar15 + 0x10) != 0" (pointer_expression "*(int *)(iVar15 + 0x10)" (* "*") (cast_expression "(int *)(iVar15 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x10)" (( "(") (binary_expression "iVar15 + 0x10" (identifier "iVar15") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar15 = FUN_0003dc20(iVar26);\n      if (((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n         (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) {\n        iVar15 = FUN_00041590(iVar26);\n        iVar15 = *(int *)(iVar15 + 0x10);\n        *(undefined4 *)(iVar15 + 0x34) = 0;\n        *(undefined4 *)(iVar15 + 0x38) = 0;\n        *(uint *)(iVar15 + 0x3c) = *(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000;\n      }\n      iVar15 = FUN_00041590(iVar26);\n      FUN_0004ed20(iVar26,*(int *)(iVar15 + 0x10) + 0x28);\n    }" ({ "{") (expression_statement "iVar15 = FUN_0003dc20(iVar26);" (assignment_expression "iVar15 = FUN_0003dc20(iVar26)" (identifier "iVar15") (= "=") (call_expression "FUN_0003dc20(iVar26)" (identifier "FUN_0003dc20") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (; ";")) (if_statement "if (((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n         (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) {\n        iVar15 = FUN_00041590(iVar26);\n        iVar15 = *(int *)(iVar15 + 0x10);\n        *(undefined4 *)(iVar15 + 0x34) = 0;\n        *(undefined4 *)(iVar15 + 0x38) = 0;\n        *(uint *)(iVar15 + 0x3c) = *(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000;\n      }" (if "if") (parenthesized_expression "(((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n         (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0))" (( "(") (binary_expression "((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&\n         (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)" (parenthesized_expression "((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0))" (( "(") (binary_expression "(iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)" (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)" (( "(") (comma_expression "iVar15 = FUN_0003dc90(iVar26), iVar15 == 0" (assignment_expression "iVar15 = FUN_0003dc90(iVar26)" (identifier "iVar15") (= "=") (call_expression "FUN_0003dc90(iVar26)" (identifier "FUN_0003dc90") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (, ",") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)" (( "(") (comma_expression "iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0" (assignment_expression "iVar15 = FUN_0003ddd0(iVar26)" (identifier "iVar15") (= "=") (call_expression "FUN_0003ddd0(iVar26)" (identifier "FUN_0003ddd0") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (, ",") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        iVar15 = FUN_00041590(iVar26);\n        iVar15 = *(int *)(iVar15 + 0x10);\n        *(undefined4 *)(iVar15 + 0x34) = 0;\n        *(undefined4 *)(iVar15 + 0x38) = 0;\n        *(uint *)(iVar15 + 0x3c) = *(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000;\n      }" ({ "{") (expression_statement "iVar15 = FUN_00041590(iVar26);" (assignment_expression "iVar15 = FUN_00041590(iVar26)" (identifier "iVar15") (= "=") (call_expression "FUN_00041590(iVar26)" (identifier "FUN_00041590") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (; ";")) (expression_statement "iVar15 = *(int *)(iVar15 + 0x10);" (assignment_expression "iVar15 = *(int *)(iVar15 + 0x10)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(iVar15 + 0x10)" (* "*") (cast_expression "(int *)(iVar15 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x10)" (( "(") (binary_expression "iVar15 + 0x10" (identifier "iVar15") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar15 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(iVar15 + 0x34) = 0" (pointer_expression "*(undefined4 *)(iVar15 + 0x34)" (* "*") (cast_expression "(undefined4 *)(iVar15 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x34)" (( "(") (binary_expression "iVar15 + 0x34" (identifier "iVar15") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar15 + 0x38) = 0;" (assignment_expression "*(undefined4 *)(iVar15 + 0x38) = 0" (pointer_expression "*(undefined4 *)(iVar15 + 0x38)" (* "*") (cast_expression "(undefined4 *)(iVar15 + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x38)" (( "(") (binary_expression "iVar15 + 0x38" (identifier "iVar15") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(uint *)(iVar15 + 0x3c) = *(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000;" (assignment_expression "*(uint *)(iVar15 + 0x3c) = *(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000" (pointer_expression "*(uint *)(iVar15 + 0x3c)" (* "*") (cast_expression "(uint *)(iVar15 + 0x3c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x3c)" (( "(") (binary_expression "iVar15 + 0x3c" (identifier "iVar15") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000" (binary_expression "*(uint *)(iVar15 + 0x3c) & 0x800" (pointer_expression "*(uint *)(iVar15 + 0x3c)" (* "*") (cast_expression "(uint *)(iVar15 + 0x3c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x3c)" (( "(") (binary_expression "iVar15 + 0x3c" (identifier "iVar15") (+ "+") (number_literal "0x3c")) () ")")))) (& "&") (number_literal "0x800")) (| "|") (number_literal "0xfffff000"))) (; ";")) (} "}"))) (expression_statement "iVar15 = FUN_00041590(iVar26);" (assignment_expression "iVar15 = FUN_00041590(iVar26)" (identifier "iVar15") (= "=") (call_expression "FUN_00041590(iVar26)" (identifier "FUN_00041590") (argument_list "(iVar26)" (( "(") (identifier "iVar26") () ")")))) (; ";")) (expression_statement "FUN_0004ed20(iVar26,*(int *)(iVar15 + 0x10) + 0x28);" (call_expression "FUN_0004ed20(iVar26,*(int *)(iVar15 + 0x10) + 0x28)" (identifier "FUN_0004ed20") (argument_list "(iVar26,*(int *)(iVar15 + 0x10) + 0x28)" (( "(") (identifier "iVar26") (, ",") (binary_expression "*(int *)(iVar15 + 0x10) + 0x28" (pointer_expression "*(int *)(iVar15 + 0x10)" (* "*") (cast_expression "(int *)(iVar15 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x10)" (( "(") (binary_expression "iVar15 + 0x10" (identifier "iVar15") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x28")) () ")"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if ((*(int *)(param_3 + 4) - 1U & (uint)local_9c) == 0) {\n    *(undefined2 *)(param_1 + 2) = 0x30b;\n    *param_2 = pcVar14;\n    return (uint)local_9c;\n  }" (if "if") (parenthesized_expression "((*(int *)(param_3 + 4) - 1U & (uint)local_9c) == 0)" (( "(") (binary_expression "(*(int *)(param_3 + 4) - 1U & (uint)local_9c) == 0" (parenthesized_expression "(*(int *)(param_3 + 4) - 1U & (uint)local_9c)" (( "(") (binary_expression "*(int *)(param_3 + 4) - 1U & (uint)local_9c" (binary_expression "*(int *)(param_3 + 4) - 1U" (pointer_expression "*(int *)(param_3 + 4)" (* "*") (cast_expression "(int *)(param_3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 4)" (( "(") (binary_expression "param_3 + 4" (identifier "param_3") (+ "+") (number_literal "4")) () ")")))) (- "-") (number_literal "1U")) (& "&") (cast_expression "(uint)local_9c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_9c"))) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *(undefined2 *)(param_1 + 2) = 0x30b;\n    *param_2 = pcVar14;\n    return (uint)local_9c;\n  }" ({ "{") (expression_statement "*(undefined2 *)(param_1 + 2) = 0x30b;" (assignment_expression "*(undefined2 *)(param_1 + 2) = 0x30b" (pointer_expression "*(undefined2 *)(param_1 + 2)" (* "*") (cast_expression "(undefined2 *)(param_1 + 2)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 2)" (( "(") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "0x30b")) (; ";")) (expression_statement "*param_2 = pcVar14;" (assignment_expression "*param_2 = pcVar14" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (identifier "pcVar14")) (; ";")) (return_statement "return (uint)local_9c;" (return "return") (cast_expression "(uint)local_9c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_9c")) (; ";")) (} "}"))) (expression_statement "FUN_00031740("../../gas/ecoff.c",0x129d,"ecoff_build_debug",local_9c);" (call_expression "FUN_00031740("../../gas/ecoff.c",0x129d,"ecoff_build_debug",local_9c)" (identifier "FUN_00031740") (argument_list "("../../gas/ecoff.c",0x129d,"ecoff_build_debug",local_9c)" (( "(") (string_literal ""../../gas/ecoff.c"" (" """) (string_content "../../gas/ecoff.c") (" """)) (, ",") (number_literal "0x129d") (, ",") (string_literal ""ecoff_build_debug"" (" """) (string_content "ecoff_build_debug") (" """)) (, ",") (identifier "local_9c") () ")"))) (; ";")) (labeled_statement "code_r0x00024a60:\n  local_ac = (undefined4 *****)((int)local_ac + 3);" (statement_identifier "code_r0x00024a60") (: ":") (expression_statement "local_ac = (undefined4 *****)((int)local_ac + 3);" (assignment_expression "local_ac = (undefined4 *****)((int)local_ac + 3)" (identifier "local_ac") (= "=") (cast_expression "(undefined4 *****)((int)local_ac + 3)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)local_ac + 3)" (( "(") (binary_expression "(int)local_ac + 3" (cast_expression "(int)local_ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_ac")) (+ "+") (number_literal "3")) () ")")))) (; ";"))) (expression_statement "pcVar24 = local_38 + 2;" (assignment_expression "pcVar24 = local_38 + 2" (identifier "pcVar24") (= "=") (binary_expression "local_38 + 2" (identifier "local_38") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "local_38[1] = (char)((uint)iVar15 >> 8);" (assignment_expression "local_38[1] = (char)((uint)iVar15 >> 8)" (subscript_expression "local_38[1]" (identifier "local_38") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)iVar15 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)iVar15 >> 8)" (( "(") (binary_expression "(uint)iVar15 >> 8" (cast_expression "(uint)iVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "iVar15")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "local_38 = local_38 + 3;" (assignment_expression "local_38 = local_38 + 3" (identifier "local_38") (= "=") (binary_expression "local_38 + 3" (identifier "local_38") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "*pcVar24 = (char)iVar15;" (assignment_expression "*pcVar24 = (char)iVar15" (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) (= "=") (cast_expression "(char)iVar15" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "iVar15"))) (; ";")) (labeled_statement "LAB_000238d0:\n  if (0 < (int)pppppuVar17) {\n    uVar16 = (int)pppppuVar17 - 1;\n    local_ac = (undefined4 *****)((int)local_ac + 1);\n    pppppuVar17 = (undefined4 *****)((uVar16 >> 4) + (int)local_ac);\n    if (pcVar1 <= local_38) goto LAB_00023925;\n    while (pcVar24 = local_38 + 1, pcVar19 = local_38, local_38 = pcVar24, 0xf < uVar16) {\n      while( true ) {\n        uVar16 = uVar16 - 0x10;\n        *pcVar19 = '\x0f';\n        if (pppppuVar17 == local_ac) goto LAB_00023953;\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        if (local_38 < pcVar1) break;\nLAB_00023925:\n        pcVar19 = (char *)FUN_0001ff00(1);\n        local_38 = pcVar19 + 1;\n        if (uVar16 < 0x10) goto LAB_00023944;\n      }\n    }\nLAB_00023944:\n    *pcVar19 = (char)uVar16;\n  }" (statement_identifier "LAB_000238d0") (: ":") (if_statement "if (0 < (int)pppppuVar17) {\n    uVar16 = (int)pppppuVar17 - 1;\n    local_ac = (undefined4 *****)((int)local_ac + 1);\n    pppppuVar17 = (undefined4 *****)((uVar16 >> 4) + (int)local_ac);\n    if (pcVar1 <= local_38) goto LAB_00023925;\n    while (pcVar24 = local_38 + 1, pcVar19 = local_38, local_38 = pcVar24, 0xf < uVar16) {\n      while( true ) {\n        uVar16 = uVar16 - 0x10;\n        *pcVar19 = '\x0f';\n        if (pppppuVar17 == local_ac) goto LAB_00023953;\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        if (local_38 < pcVar1) break;\nLAB_00023925:\n        pcVar19 = (char *)FUN_0001ff00(1);\n        local_38 = pcVar19 + 1;\n        if (uVar16 < 0x10) goto LAB_00023944;\n      }\n    }\nLAB_00023944:\n    *pcVar19 = (char)uVar16;\n  }" (if "if") (parenthesized_expression "(0 < (int)pppppuVar17)" (( "(") (binary_expression "0 < (int)pppppuVar17" (number_literal "0") (< "<") (cast_expression "(int)pppppuVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppuVar17"))) () ")")) (compound_statement "{\n    uVar16 = (int)pppppuVar17 - 1;\n    local_ac = (undefined4 *****)((int)local_ac + 1);\n    pppppuVar17 = (undefined4 *****)((uVar16 >> 4) + (int)local_ac);\n    if (pcVar1 <= local_38) goto LAB_00023925;\n    while (pcVar24 = local_38 + 1, pcVar19 = local_38, local_38 = pcVar24, 0xf < uVar16) {\n      while( true ) {\n        uVar16 = uVar16 - 0x10;\n        *pcVar19 = '\x0f';\n        if (pppppuVar17 == local_ac) goto LAB_00023953;\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        if (local_38 < pcVar1) break;\nLAB_00023925:\n        pcVar19 = (char *)FUN_0001ff00(1);\n        local_38 = pcVar19 + 1;\n        if (uVar16 < 0x10) goto LAB_00023944;\n      }\n    }\nLAB_00023944:\n    *pcVar19 = (char)uVar16;\n  }" ({ "{") (expression_statement "uVar16 = (int)pppppuVar17 - 1;" (assignment_expression "uVar16 = (int)pppppuVar17 - 1" (identifier "uVar16") (= "=") (binary_expression "(int)pppppuVar17 - 1" (cast_expression "(int)pppppuVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppuVar17")) (- "-") (number_literal "1"))) (; ";")) (expression_statement "local_ac = (undefined4 *****)((int)local_ac + 1);" (assignment_expression "local_ac = (undefined4 *****)((int)local_ac + 1)" (identifier "local_ac") (= "=") (cast_expression "(undefined4 *****)((int)local_ac + 1)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)local_ac + 1)" (( "(") (binary_expression "(int)local_ac + 1" (cast_expression "(int)local_ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_ac")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pppppuVar17 = (undefined4 *****)((uVar16 >> 4) + (int)local_ac);" (assignment_expression "pppppuVar17 = (undefined4 *****)((uVar16 >> 4) + (int)local_ac)" (identifier "pppppuVar17") (= "=") (cast_expression "(undefined4 *****)((uVar16 >> 4) + (int)local_ac)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((uVar16 >> 4) + (int)local_ac)" (( "(") (binary_expression "(uVar16 >> 4) + (int)local_ac" (parenthesized_expression "(uVar16 >> 4)" (( "(") (binary_expression "uVar16 >> 4" (identifier "uVar16") (>> ">>") (number_literal "4")) () ")")) (+ "+") (cast_expression "(int)local_ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_ac"))) () ")")))) (; ";")) (if_statement "if (pcVar1 <= local_38) goto LAB_00023925;" (if "if") (parenthesized_expression "(pcVar1 <= local_38)" (( "(") (binary_expression "pcVar1 <= local_38" (identifier "pcVar1") (<= "<=") (identifier "local_38")) () ")")) (goto_statement "goto LAB_00023925;" (goto "goto") (statement_identifier "LAB_00023925") (; ";"))) (while_statement "while (pcVar24 = local_38 + 1, pcVar19 = local_38, local_38 = pcVar24, 0xf < uVar16) {\n      while( true ) {\n        uVar16 = uVar16 - 0x10;\n        *pcVar19 = '\x0f';\n        if (pppppuVar17 == local_ac) goto LAB_00023953;\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        if (local_38 < pcVar1) break;\nLAB_00023925:\n        pcVar19 = (char *)FUN_0001ff00(1);\n        local_38 = pcVar19 + 1;\n        if (uVar16 < 0x10) goto LAB_00023944;\n      }\n    }" (while "while") (parenthesized_expression "(pcVar24 = local_38 + 1, pcVar19 = local_38, local_38 = pcVar24, 0xf < uVar16)" (( "(") (comma_expression "pcVar24 = local_38 + 1, pcVar19 = local_38, local_38 = pcVar24, 0xf < uVar16" (assignment_expression "pcVar24 = local_38 + 1" (identifier "pcVar24") (= "=") (binary_expression "local_38 + 1" (identifier "local_38") (+ "+") (number_literal "1"))) (, ",") (comma_expression "pcVar19 = local_38, local_38 = pcVar24, 0xf < uVar16" (assignment_expression "pcVar19 = local_38" (identifier "pcVar19") (= "=") (identifier "local_38")) (, ",") (comma_expression "local_38 = pcVar24, 0xf < uVar16" (assignment_expression "local_38 = pcVar24" (identifier "local_38") (= "=") (identifier "pcVar24")) (, ",") (binary_expression "0xf < uVar16" (number_literal "0xf") (< "<") (identifier "uVar16"))))) () ")")) (compound_statement "{\n      while( true ) {\n        uVar16 = uVar16 - 0x10;\n        *pcVar19 = '\x0f';\n        if (pppppuVar17 == local_ac) goto LAB_00023953;\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        if (local_38 < pcVar1) break;\nLAB_00023925:\n        pcVar19 = (char *)FUN_0001ff00(1);\n        local_38 = pcVar19 + 1;\n        if (uVar16 < 0x10) goto LAB_00023944;\n      }\n    }" ({ "{") (while_statement "while( true ) {\n        uVar16 = uVar16 - 0x10;\n        *pcVar19 = '\x0f';\n        if (pppppuVar17 == local_ac) goto LAB_00023953;\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        if (local_38 < pcVar1) break;\nLAB_00023925:\n        pcVar19 = (char *)FUN_0001ff00(1);\n        local_38 = pcVar19 + 1;\n        if (uVar16 < 0x10) goto LAB_00023944;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        uVar16 = uVar16 - 0x10;\n        *pcVar19 = '\x0f';\n        if (pppppuVar17 == local_ac) goto LAB_00023953;\n        local_ac = (undefined4 *****)((int)local_ac + 1);\n        if (local_38 < pcVar1) break;\nLAB_00023925:\n        pcVar19 = (char *)FUN_0001ff00(1);\n        local_38 = pcVar19 + 1;\n        if (uVar16 < 0x10) goto LAB_00023944;\n      }" ({ "{") (expression_statement "uVar16 = uVar16 - 0x10;" (assignment_expression "uVar16 = uVar16 - 0x10" (identifier "uVar16") (= "=") (binary_expression "uVar16 - 0x10" (identifier "uVar16") (- "-") (number_literal "0x10"))) (; ";")) (expression_statement "*pcVar19 = '\x0f';" (assignment_expression "*pcVar19 = '\x0f'" (pointer_expression "*pcVar19" (* "*") (identifier "pcVar19")) (= "=") (char_literal "'\x0f'" (' "'") (escape_sequence "\x0f") (' "'"))) (; ";")) (if_statement "if (pppppuVar17 == local_ac) goto LAB_00023953;" (if "if") (parenthesized_expression "(pppppuVar17 == local_ac)" (( "(") (binary_expression "pppppuVar17 == local_ac" (identifier "pppppuVar17") (== "==") (identifier "local_ac")) () ")")) (goto_statement "goto LAB_00023953;" (goto "goto") (statement_identifier "LAB_00023953") (; ";"))) (expression_statement "local_ac = (undefined4 *****)((int)local_ac + 1);" (assignment_expression "local_ac = (undefined4 *****)((int)local_ac + 1)" (identifier "local_ac") (= "=") (cast_expression "(undefined4 *****)((int)local_ac + 1)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)local_ac + 1)" (( "(") (binary_expression "(int)local_ac + 1" (cast_expression "(int)local_ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_ac")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (local_38 < pcVar1) break;" (if "if") (parenthesized_expression "(local_38 < pcVar1)" (( "(") (binary_expression "local_38 < pcVar1" (identifier "local_38") (< "<") (identifier "pcVar1")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_00023925:\n        pcVar19 = (char *)FUN_0001ff00(1);" (statement_identifier "LAB_00023925") (: ":") (expression_statement "pcVar19 = (char *)FUN_0001ff00(1);" (assignment_expression "pcVar19 = (char *)FUN_0001ff00(1)" (identifier "pcVar19") (= "=") (cast_expression "(char *)FUN_0001ff00(1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001ff00(1)" (identifier "FUN_0001ff00") (argument_list "(1)" (( "(") (number_literal "1") () ")"))))) (; ";"))) (expression_statement "local_38 = pcVar19 + 1;" (assignment_expression "local_38 = pcVar19 + 1" (identifier "local_38") (= "=") (binary_expression "pcVar19 + 1" (identifier "pcVar19") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar16 < 0x10) goto LAB_00023944;" (if "if") (parenthesized_expression "(uVar16 < 0x10)" (( "(") (binary_expression "uVar16 < 0x10" (identifier "uVar16") (< "<") (number_literal "0x10")) () ")")) (goto_statement "goto LAB_00023944;" (goto "goto") (statement_identifier "LAB_00023944") (; ";"))) (} "}"))) (} "}"))) (labeled_statement "LAB_00023944:\n    *pcVar19 = (char)uVar16;" (statement_identifier "LAB_00023944") (: ":") (expression_statement "*pcVar19 = (char)uVar16;" (assignment_expression "*pcVar19 = (char)uVar16" (pointer_expression "*pcVar19" (* "*") (identifier "pcVar19")) (= "=") (cast_expression "(char)uVar16" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar16"))) (; ";"))) (} "}")))) (labeled_statement "LAB_00023953:\n  pppppppuVar30 = (undefined4 *******)*local_b4;" (statement_identifier "LAB_00023953") (: ":") (expression_statement "pppppppuVar30 = (undefined4 *******)*local_b4;" (assignment_expression "pppppppuVar30 = (undefined4 *******)*local_b4" (identifier "pppppppuVar30") (= "=") (cast_expression "(undefined4 *******)*local_b4" (( "(") (type_descriptor "undefined4 *******" (type_identifier "undefined4") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*local_b4" (* "*") (identifier "local_b4")))) (; ";"))) (if_statement "if (pppppppuVar30 == (undefined4 *******)0x0) goto LAB_00023a10;" (if "if") (parenthesized_expression "(pppppppuVar30 == (undefined4 *******)0x0)" (( "(") (binary_expression "pppppppuVar30 == (undefined4 *******)0x0" (identifier "pppppppuVar30") (== "==") (cast_expression "(undefined4 *******)0x0" (( "(") (type_descriptor "undefined4 *******" (type_identifier "undefined4") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00023a10;" (goto "goto") (statement_identifier "LAB_00023a10") (; ";"))) (expression_statement "local_9c = local_a4;" (assignment_expression "local_9c = local_a4" (identifier "local_9c") (= "=") (identifier "local_a4")) (; ";")) (expression_statement "local_94 = local_b4;" (assignment_expression "local_94 = local_b4" (identifier "local_94") (= "=") (identifier "local_b4")) (; ";")) (expression_statement "local_98 = local_a8;" (assignment_expression "local_98 = local_a8" (identifier "local_98") (= "=") (identifier "local_a8")) (; ";")) (labeled_statement "LAB_000237a0:\n  pppppppuVar29 = (undefined4 *******)*pppppppuVar30;" (statement_identifier "LAB_000237a0") (: ":") (expression_statement "pppppppuVar29 = (undefined4 *******)*pppppppuVar30;" (assignment_expression "pppppppuVar29 = (undefined4 *******)*pppppppuVar30" (identifier "pppppppuVar29") (= "=") (cast_expression "(undefined4 *******)*pppppppuVar30" (( "(") (type_descriptor "undefined4 *******" (type_identifier "undefined4") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*pppppppuVar30" (* "*") (identifier "pppppppuVar30")))) (; ";"))) (expression_statement "local_b4 = pppppppuVar30;" (assignment_expression "local_b4 = pppppppuVar30" (identifier "local_b4") (= "=") (identifier "pppppppuVar30")) (; ";")) (goto_statement "goto LAB_000237a6;" (goto "goto") (statement_identifier "LAB_000237a6") (; ";")) (labeled_statement "LAB_00023a10:\n  if (local_a8 != (undefined4 ******)0x0) {\n    local_a8[0xd] = local_b4[5];\n  }" (statement_identifier "LAB_00023a10") (: ":") (if_statement "if (local_a8 != (undefined4 ******)0x0) {\n    local_a8[0xd] = local_b4[5];\n  }" (if "if") (parenthesized_expression "(local_a8 != (undefined4 ******)0x0)" (( "(") (binary_expression "local_a8 != (undefined4 ******)0x0" (identifier "local_a8") (!= "!=") (cast_expression "(undefined4 ******)0x0" (( "(") (type_descriptor "undefined4 ******" (type_identifier "undefined4") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    local_a8[0xd] = local_b4[5];\n  }" ({ "{") (expression_statement "local_a8[0xd] = local_b4[5];" (assignment_expression "local_a8[0xd] = local_b4[5]" (subscript_expression "local_a8[0xd]" (identifier "local_a8") ([ "[") (number_literal "0xd") (] "]")) (= "=") (subscript_expression "local_b4[5]" (identifier "local_b4") ([ "[") (number_literal "5") (] "]"))) (; ";")) (} "}")))) (if_statement "if (local_a0 != (undefined4 ******)0x0) {\n    local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n    local_a0[0x15] = (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n    local_a0[9] = local_a4;\n  }" (if "if") (parenthesized_expression "(local_a0 != (undefined4 ******)0x0)" (( "(") (binary_expression "local_a0 != (undefined4 ******)0x0" (identifier "local_a0") (!= "!=") (cast_expression "(undefined4 ******)0x0" (( "(") (type_descriptor "undefined4 ******" (type_identifier "undefined4") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);\n    local_a0[0x15] = (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);\n    local_a0[9] = local_a4;\n  }" ({ "{") (expression_statement "local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);" (assignment_expression "local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12])" (subscript_expression "local_a0[0x14]" (identifier "local_a0") ([ "[") (number_literal "0x14") (] "]")) (= "=") (cast_expression "(undefined4 *****)((int)local_ac - (int)local_a0[0x12])" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)local_ac - (int)local_a0[0x12])" (( "(") (binary_expression "(int)local_ac - (int)local_a0[0x12]" (cast_expression "(int)local_ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_ac")) (- "-") (cast_expression "(int)local_a0[0x12]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "local_a0[0x12]" (identifier "local_a0") ([ "[") (number_literal "0x12") (] "]")))) () ")")))) (; ";")) (expression_statement "local_a0[0x15] = (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);" (assignment_expression "local_a0[0x15] = (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13])" (subscript_expression "local_a0[0x15]" (identifier "local_a0") ([ "[") (number_literal "0x15") (] "]")) (= "=") (cast_expression "(undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13])" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13])" (( "(") (binary_expression "-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]" (unary_expression "-(uint)(local_ac < local_a0[0x12])" (- "-") (call_expression "(uint)(local_ac < local_a0[0x12])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_ac < local_a0[0x12])" (( "(") (binary_expression "local_ac < local_a0[0x12]" (identifier "local_ac") (< "<") (subscript_expression "local_a0[0x12]" (identifier "local_a0") ([ "[") (number_literal "0x12") (] "]"))) () ")")))) (- "-") (cast_expression "(int)local_a0[0x13]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "local_a0[0x13]" (identifier "local_a0") ([ "[") (number_literal "0x13") (] "]")))) () ")")))) (; ";")) (expression_statement "local_a0[9] = local_a4;" (assignment_expression "local_a0[9] = local_a4" (subscript_expression "local_a0[9]" (identifier "local_a0") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "local_a4")) (; ";")) (} "}"))) (goto_statement "goto LAB_00023a3f;" (goto "goto") (statement_identifier "LAB_00023a3f") (; ";")) (labeled_statement "LAB_00024380:\n  iVar26 = *(int *)(local_64 + 4);" (statement_identifier "LAB_00024380") (: ":") (expression_statement "iVar26 = *(int *)(local_64 + 4);" (assignment_expression "iVar26 = *(int *)(local_64 + 4)" (identifier "iVar26") (= "=") (pointer_expression "*(int *)(local_64 + 4)" (* "*") (cast_expression "(int *)(local_64 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_64 + 4)" (( "(") (binary_expression "local_64 + 4" (identifier "local_64") (+ "+") (number_literal "4")) () ")"))))) (; ";"))) (if_statement "if (*(int *)(local_64 + 4) == 0) goto code_r0x00024393;" (if "if") (parenthesized_expression "(*(int *)(local_64 + 4) == 0)" (( "(") (binary_expression "*(int *)(local_64 + 4) == 0" (pointer_expression "*(int *)(local_64 + 4)" (* "*") (cast_expression "(int *)(local_64 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_64 + 4)" (( "(") (binary_expression "local_64 + 4" (identifier "local_64") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto code_r0x00024393;" (goto "goto") (statement_identifier "code_r0x00024393") (; ";"))) (goto_statement "goto LAB_00023bdc;" (goto "goto") (statement_identifier "LAB_00023bdc") (; ";")) (labeled_statement "code_r0x00024393:\n  iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);" (statement_identifier "code_r0x00024393") (: ":") (expression_statement "iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);" (assignment_expression "iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18)" (identifier "iVar26") (= "=") (binary_expression "(int)local_a8 - *(int *)((int)local_9c + 0x18)" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (- "-") (pointer_expression "*(int *)((int)local_9c + 0x18)" (* "*") (cast_expression "(int *)((int)local_9c + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_9c + 0x18)" (( "(") (binary_expression "(int)local_9c + 0x18" (cast_expression "(int)local_9c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_9c")) (+ "+") (number_literal "0x18")) () ")")))))) (; ";"))) (expression_statement "local_8c = (int)local_a8;" (assignment_expression "local_8c = (int)local_a8" (identifier "local_8c") (= "=") (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8"))) (; ";")) (labeled_statement "LAB_000243a4:\n  *(int *)((int)local_9c + 0x1c) = iVar26;" (statement_identifier "LAB_000243a4") (: ":") (expression_statement "*(int *)((int)local_9c + 0x1c) = iVar26;" (assignment_expression "*(int *)((int)local_9c + 0x1c) = iVar26" (pointer_expression "*(int *)((int)local_9c + 0x1c)" (* "*") (cast_expression "(int *)((int)local_9c + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_9c + 0x1c)" (( "(") (binary_expression "(int)local_9c + 0x1c" (cast_expression "(int)local_9c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_9c")) (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "iVar26")) (; ";"))) (expression_statement "local_9c = (undefined4 *****)((int)local_9c + 0x294);" (assignment_expression "local_9c = (undefined4 *****)((int)local_9c + 0x294)" (identifier "local_9c") (= "=") (cast_expression "(undefined4 *****)((int)local_9c + 0x294)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)local_9c + 0x294)" (( "(") (binary_expression "(int)local_9c + 0x294" (cast_expression "(int)local_9c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_9c")) (+ "+") (number_literal "0x294")) () ")")))) (; ";")) (if_statement "if (local_54 <= local_9c) goto code_r0x000243bf;" (if "if") (parenthesized_expression "(local_54 <= local_9c)" (( "(") (binary_expression "local_54 <= local_9c" (identifier "local_54") (<= "<=") (identifier "local_9c")) () ")")) (goto_statement "goto code_r0x000243bf;" (goto "goto") (statement_identifier "code_r0x000243bf") (; ";"))) (goto_statement "goto LAB_00023bb7;" (goto "goto") (statement_identifier "LAB_00023bb7") (; ";")) (labeled_statement "code_r0x000243bf:\n  iVar26 = *(int *)(local_5c + 4);" (statement_identifier "code_r0x000243bf") (: ":") (expression_statement "iVar26 = *(int *)(local_5c + 4);" (assignment_expression "iVar26 = *(int *)(local_5c + 4)" (identifier "iVar26") (= "=") (pointer_expression "*(int *)(local_5c + 4)" (* "*") (cast_expression "(int *)(local_5c + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_5c + 4)" (( "(") (binary_expression "local_5c + 4" (identifier "local_5c") (+ "+") (number_literal "4")) () ")"))))) (; ";"))) (if_statement "if (*(int *)(local_5c + 4) == 0) goto code_r0x000243ce;" (if "if") (parenthesized_expression "(*(int *)(local_5c + 4) == 0)" (( "(") (binary_expression "*(int *)(local_5c + 4) == 0" (pointer_expression "*(int *)(local_5c + 4)" (* "*") (cast_expression "(int *)(local_5c + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_5c + 4)" (( "(") (binary_expression "local_5c + 4" (identifier "local_5c") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto code_r0x000243ce;" (goto "goto") (statement_identifier "code_r0x000243ce") (; ";"))) (goto_statement "goto LAB_00023b80;" (goto "goto") (statement_identifier "LAB_00023b80") (; ";")) (labeled_statement "code_r0x000243ce:\n  local_68 = local_68 + local_8c * uVar36;" (statement_identifier "code_r0x000243ce") (: ":") (expression_statement "local_68 = local_68 + local_8c * uVar36;" (assignment_expression "local_68 = local_68 + local_8c * uVar36" (identifier "local_68") (= "=") (binary_expression "local_68 + local_8c * uVar36" (identifier "local_68") (+ "+") (binary_expression "local_8c * uVar36" (identifier "local_8c") (* "*") (identifier "uVar36")))) (; ";"))) (expression_statement "uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                        -(uint)(local_68 < *(uint *)(param_1 + 0x34)) - *(int *)(param_1 + 0x38),\n                        *(undefined4 *)(param_3 + 0x24),*(undefined4 *)(param_3 + 0x28));" (assignment_expression "uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                        -(uint)(local_68 < *(uint *)(param_1 + 0x34)) - *(int *)(param_1 + 0x38),\n                        *(undefined4 *)(param_3 + 0x24),*(undefined4 *)(param_3 + 0x28))" (identifier "uVar13") (= "=") (call_expression "FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),\n                        -(uint)(local_68 < *(uint *)(param_1 + 0x34)) - *(int *)(param_1 + 0x38),\n                        *(undefined4 *)(param_3 + 0x24),*(undefined4 *)(param_3 + 0x28))" (identifier "FUN_000548c0") (argument_list "(local_68 - *(uint *)(param_1 + 0x34),\n                        -(uint)(local_68 < *(uint *)(param_1 + 0x34)) - *(int *)(param_1 + 0x38),\n                        *(undefined4 *)(param_3 + 0x24),*(undefined4 *)(param_3 + 0x28))" (( "(") (binary_expression "local_68 - *(uint *)(param_1 + 0x34)" (identifier "local_68") (- "-") (pointer_expression "*(uint *)(param_1 + 0x34)" (* "*") (cast_expression "(uint *)(param_1 + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")"))))) (, ",") (binary_expression "-(uint)(local_68 < *(uint *)(param_1 + 0x34)) - *(int *)(param_1 + 0x38)" (unary_expression "-(uint)(local_68 < *(uint *)(param_1 + 0x34))" (- "-") (call_expression "(uint)(local_68 < *(uint *)(param_1 + 0x34))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_68 < *(uint *)(param_1 + 0x34))" (( "(") (binary_expression "local_68 < *(uint *)(param_1 + 0x34)" (identifier "local_68") (< "<") (pointer_expression "*(uint *)(param_1 + 0x34)" (* "*") (cast_expression "(uint *)(param_1 + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")"))))) () ")")))) (- "-") (pointer_expression "*(int *)(param_1 + 0x38)" (* "*") (cast_expression "(int *)(param_1 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")"))))) (, ",") (pointer_expression "*(undefined4 *)(param_3 + 0x24)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x24)" (( "(") (binary_expression "param_3 + 0x24" (identifier "param_3") (+ "+") (number_literal "0x24")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_3 + 0x28)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x28)" (( "(") (binary_expression "param_3 + 0x28" (identifier "param_3") (+ "+") (number_literal "0x28")) () ")")))) () ")")))) (; ";")) (labeled_statement "LAB_0002441d:\n  puVar20 = (undefined4 *)DAT_00078240;" (statement_identifier "LAB_0002441d") (: ":") (expression_statement "puVar20 = (undefined4 *)DAT_00078240;" (assignment_expression "puVar20 = (undefined4 *)DAT_00078240" (identifier "puVar20") (= "=") (cast_expression "(undefined4 *)DAT_00078240" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "DAT_00078240"))) (; ";"))) (expression_statement "*(undefined4 *)(param_1 + 0x30) = uVar13;" (assignment_expression "*(undefined4 *)(param_1 + 0x30) = uVar13" (pointer_expression "*(undefined4 *)(param_1 + 0x30)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "pcVar24 = pcVar14 + *(int *)(param_1 + 0x28);" (assignment_expression "pcVar24 = pcVar14 + *(int *)(param_1 + 0x28)" (identifier "pcVar24") (= "=") (binary_expression "pcVar14 + *(int *)(param_1 + 0x28)" (identifier "pcVar14") (+ "+") (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))))) (; ";")) (expression_statement "uVar36 = *(uint *)(param_3 + 0x1c);" (assignment_expression "uVar36 = *(uint *)(param_3 + 0x1c)" (identifier "uVar36") (= "=") (pointer_expression "*(uint *)(param_3 + 0x1c)" (* "*") (cast_expression "(uint *)(param_3 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x1c)" (( "(") (binary_expression "param_3 + 0x1c" (identifier "param_3") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "uVar16 = *(uint *)(param_3 + 0x20);" (assignment_expression "uVar16 = *(uint *)(param_3 + 0x20)" (identifier "uVar16") (= "=") (pointer_expression "*(uint *)(param_3 + 0x20)" (* "*") (cast_expression "(uint *)(param_3 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x20)" (( "(") (binary_expression "param_3 + 0x20" (identifier "param_3") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "pcVar5 = *(code **)(param_3 + 0x7c);" (assignment_expression "pcVar5 = *(code **)(param_3 + 0x7c)" (identifier "pcVar5") (= "=") (pointer_expression "*(code **)(param_3 + 0x7c)" (* "*") (cast_expression "(code **)(param_3 + 0x7c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + 0x7c)" (( "(") (binary_expression "param_3 + 0x7c" (identifier "param_3") (+ "+") (number_literal "0x7c")) () ")"))))) (; ";")) (if_statement "if (puVar20 != (undefined4 *)0x0) {\n    sVar9 = 0;\nLAB_00024474:\n    do {\n      local_70 = puVar20;\n      local_a4 = *(undefined4 ******)((int)local_70 + 8);\n      if (*(int *)((int)local_70 + 4) == 0) {\n        local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5);\n        if (local_7c <= local_a4) break;\n      }\n      else {\n        local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);\n        puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }\n      do {\n        bVar41 = true;\n        *(short *)(local_a4 + 0xc) = sVar9;\n        uVar32 = (uint)local_a4[0x28];\n        if (uVar32 != 0) {\nLAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);\n          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);\n        }\n        *(short *)((int)local_a4 + 0x32) = (short)uVar32;\n        local_a4 = local_a4 + 0xa5;\n      } while (local_a4 < local_7c);\n      puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n    } while (*(int *)((int)local_70 + 4) != 0);\n    pppppppuVar29 = (undefined4 *******)DAT_00078240;\n    *(undefined4 *)(param_1 + 0x3c) = 0;\n    *(undefined4 *)(param_1 + 0x40) = 0;\n    *(undefined4 *)(param_1 + 0x44) = 0;\n    *(undefined4 *)(param_1 + 0x50) = 0;\n    *(uint *)(param_1 + 0x4c) = local_68;\n    iVar26 = *(int *)(*(int *)(DAT_00081544 + 4) + 8);\n    bVar41 = iVar26 == 0;\n    pcVar24 = pcVar14 + local_68;\n    if (pppppppuVar29 != (undefined4 *******)0x0) {\n      iVar15 = 0;\nLAB_00024d54:\n      do {\n        local_94 = pppppppuVar29;\n        local_a0 = *(undefined4 *******)((int)local_94 + 8);\n        if (*(int *)((int)local_94 + 4) == 0) {\n          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          *(int *)((int)local_a0 + 0x34) = iVar15;\n          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;\n          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);\n          if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }\n          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;\n          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);\n        } while (local_a0 < local_9c);\n        pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n      } while (*(int *)((int)local_94 + 4) != 0);\n      local_68 = local_68 + iVar15 * 4;\n    }\n    goto LAB_00024eaa;\n  }" (if "if") (parenthesized_expression "(puVar20 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar20 != (undefined4 *)0x0" (identifier "puVar20") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    sVar9 = 0;\nLAB_00024474:\n    do {\n      local_70 = puVar20;\n      local_a4 = *(undefined4 ******)((int)local_70 + 8);\n      if (*(int *)((int)local_70 + 4) == 0) {\n        local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5);\n        if (local_7c <= local_a4) break;\n      }\n      else {\n        local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);\n        puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }\n      do {\n        bVar41 = true;\n        *(short *)(local_a4 + 0xc) = sVar9;\n        uVar32 = (uint)local_a4[0x28];\n        if (uVar32 != 0) {\nLAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);\n          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);\n        }\n        *(short *)((int)local_a4 + 0x32) = (short)uVar32;\n        local_a4 = local_a4 + 0xa5;\n      } while (local_a4 < local_7c);\n      puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n    } while (*(int *)((int)local_70 + 4) != 0);\n    pppppppuVar29 = (undefined4 *******)DAT_00078240;\n    *(undefined4 *)(param_1 + 0x3c) = 0;\n    *(undefined4 *)(param_1 + 0x40) = 0;\n    *(undefined4 *)(param_1 + 0x44) = 0;\n    *(undefined4 *)(param_1 + 0x50) = 0;\n    *(uint *)(param_1 + 0x4c) = local_68;\n    iVar26 = *(int *)(*(int *)(DAT_00081544 + 4) + 8);\n    bVar41 = iVar26 == 0;\n    pcVar24 = pcVar14 + local_68;\n    if (pppppppuVar29 != (undefined4 *******)0x0) {\n      iVar15 = 0;\nLAB_00024d54:\n      do {\n        local_94 = pppppppuVar29;\n        local_a0 = *(undefined4 *******)((int)local_94 + 8);\n        if (*(int *)((int)local_94 + 4) == 0) {\n          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          *(int *)((int)local_a0 + 0x34) = iVar15;\n          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;\n          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);\n          if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }\n          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;\n          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);\n        } while (local_a0 < local_9c);\n        pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n      } while (*(int *)((int)local_94 + 4) != 0);\n      local_68 = local_68 + iVar15 * 4;\n    }\n    goto LAB_00024eaa;\n  }" ({ "{") (expression_statement "sVar9 = 0;" (assignment_expression "sVar9 = 0" (identifier "sVar9") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00024474:\n    do {\n      local_70 = puVar20;\n      local_a4 = *(undefined4 ******)((int)local_70 + 8);\n      if (*(int *)((int)local_70 + 4) == 0) {\n        local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5);\n        if (local_7c <= local_a4) break;\n      }\n      else {\n        local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);\n        puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }\n      do {\n        bVar41 = true;\n        *(short *)(local_a4 + 0xc) = sVar9;\n        uVar32 = (uint)local_a4[0x28];\n        if (uVar32 != 0) {\nLAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);\n          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);\n        }\n        *(short *)((int)local_a4 + 0x32) = (short)uVar32;\n        local_a4 = local_a4 + 0xa5;\n      } while (local_a4 < local_7c);\n      puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n    } while (*(int *)((int)local_70 + 4) != 0);" (statement_identifier "LAB_00024474") (: ":") (do_statement "do {\n      local_70 = puVar20;\n      local_a4 = *(undefined4 ******)((int)local_70 + 8);\n      if (*(int *)((int)local_70 + 4) == 0) {\n        local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5);\n        if (local_7c <= local_a4) break;\n      }\n      else {\n        local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);\n        puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }\n      do {\n        bVar41 = true;\n        *(short *)(local_a4 + 0xc) = sVar9;\n        uVar32 = (uint)local_a4[0x28];\n        if (uVar32 != 0) {\nLAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);\n          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);\n        }\n        *(short *)((int)local_a4 + 0x32) = (short)uVar32;\n        local_a4 = local_a4 + 0xa5;\n      } while (local_a4 < local_7c);\n      puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n    } while (*(int *)((int)local_70 + 4) != 0);" (do "do") (compound_statement "{\n      local_70 = puVar20;\n      local_a4 = *(undefined4 ******)((int)local_70 + 8);\n      if (*(int *)((int)local_70 + 4) == 0) {\n        local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5);\n        if (local_7c <= local_a4) break;\n      }\n      else {\n        local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);\n        puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }\n      do {\n        bVar41 = true;\n        *(short *)(local_a4 + 0xc) = sVar9;\n        uVar32 = (uint)local_a4[0x28];\n        if (uVar32 != 0) {\nLAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);\n          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);\n        }\n        *(short *)((int)local_a4 + 0x32) = (short)uVar32;\n        local_a4 = local_a4 + 0xa5;\n      } while (local_a4 < local_7c);\n      puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n    }" ({ "{") (expression_statement "local_70 = puVar20;" (assignment_expression "local_70 = puVar20" (identifier "local_70") (= "=") (identifier "puVar20")) (; ";")) (expression_statement "local_a4 = *(undefined4 ******)((int)local_70 + 8);" (assignment_expression "local_a4 = *(undefined4 ******)((int)local_70 + 8)" (identifier "local_a4") (= "=") (pointer_expression "*(undefined4 ******)((int)local_70 + 8)" (* "*") (cast_expression "(undefined4 ******)((int)local_70 + 8)" (( "(") (type_descriptor "undefined4 ******" (type_identifier "undefined4") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((int)local_70 + 8)" (( "(") (binary_expression "(int)local_70 + 8" (cast_expression "(int)local_70" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_70")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (*(int *)((int)local_70 + 4) == 0) {\n        local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5);\n        if (local_7c <= local_a4) break;\n      }\n      else {\n        local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);\n        puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }" (if "if") (parenthesized_expression "(*(int *)((int)local_70 + 4) == 0)" (( "(") (binary_expression "*(int *)((int)local_70 + 4) == 0" (pointer_expression "*(int *)((int)local_70 + 4)" (* "*") (cast_expression "(int *)((int)local_70 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_70 + 4)" (( "(") (binary_expression "(int)local_70 + 4" (cast_expression "(int)local_70" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_70")) (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5);\n        if (local_7c <= local_a4) break;\n      }" ({ "{") (expression_statement "local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5);" (assignment_expression "local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5)" (identifier "local_7c") (= "=") (cast_expression "(uint *)(local_a4 + (uint)DAT_00078250 * 0xa5)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_a4 + (uint)DAT_00078250 * 0xa5)" (( "(") (binary_expression "local_a4 + (uint)DAT_00078250 * 0xa5" (identifier "local_a4") (+ "+") (binary_expression "(uint)DAT_00078250 * 0xa5" (cast_expression "(uint)DAT_00078250" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "DAT_00078250")) (* "*") (number_literal "0xa5"))) () ")")))) (; ";")) (if_statement "if (local_7c <= local_a4) break;" (if "if") (parenthesized_expression "(local_7c <= local_a4)" (( "(") (binary_expression "local_7c <= local_a4" (identifier "local_7c") (<= "<=") (identifier "local_a4")) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (else_clause "else {\n        local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);\n        puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }" (else "else") (compound_statement "{\n        local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);\n        puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);\n        if (local_7c <= local_a4) goto LAB_00024474;\n      }" ({ "{") (expression_statement "local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);" (assignment_expression "local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5)" (identifier "local_7c") (= "=") (cast_expression "(uint *)(local_a4 + (uint)DAT_0007824e * 0xa5)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_a4 + (uint)DAT_0007824e * 0xa5)" (( "(") (binary_expression "local_a4 + (uint)DAT_0007824e * 0xa5" (identifier "local_a4") (+ "+") (binary_expression "(uint)DAT_0007824e * 0xa5" (cast_expression "(uint)DAT_0007824e" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "DAT_0007824e")) (* "*") (number_literal "0xa5"))) () ")")))) (; ";")) (expression_statement "puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);" (assignment_expression "puVar20 = (undefined4 *)*(int *)((int)local_70 + 4)" (identifier "puVar20") (= "=") (cast_expression "(undefined4 *)*(int *)((int)local_70 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*(int *)((int)local_70 + 4)" (* "*") (cast_expression "(int *)((int)local_70 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_70 + 4)" (( "(") (binary_expression "(int)local_70 + 4" (cast_expression "(int)local_70" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_70")) (+ "+") (number_literal "4")) () ")")))))) (; ";")) (if_statement "if (local_7c <= local_a4) goto LAB_00024474;" (if "if") (parenthesized_expression "(local_7c <= local_a4)" (( "(") (binary_expression "local_7c <= local_a4" (identifier "local_7c") (<= "<=") (identifier "local_a4")) () ")")) (goto_statement "goto LAB_00024474;" (goto "goto") (statement_identifier "LAB_00024474") (; ";"))) (} "}")))) (do_statement "do {\n        bVar41 = true;\n        *(short *)(local_a4 + 0xc) = sVar9;\n        uVar32 = (uint)local_a4[0x28];\n        if (uVar32 != 0) {\nLAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);\n          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);\n        }\n        *(short *)((int)local_a4 + 0x32) = (short)uVar32;\n        local_a4 = local_a4 + 0xa5;\n      } while (local_a4 < local_7c);" (do "do") (compound_statement "{\n        bVar41 = true;\n        *(short *)(local_a4 + 0xc) = sVar9;\n        uVar32 = (uint)local_a4[0x28];\n        if (uVar32 != 0) {\nLAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);\n          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);\n        }\n        *(short *)((int)local_a4 + 0x32) = (short)uVar32;\n        local_a4 = local_a4 + 0xa5;\n      }" ({ "{") (expression_statement "bVar41 = true;" (assignment_expression "bVar41 = true" (identifier "bVar41") (= "=") (true "true")) (; ";")) (expression_statement "*(short *)(local_a4 + 0xc) = sVar9;" (assignment_expression "*(short *)(local_a4 + 0xc) = sVar9" (pointer_expression "*(short *)(local_a4 + 0xc)" (* "*") (cast_expression "(short *)(local_a4 + 0xc)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_a4 + 0xc)" (( "(") (binary_expression "local_a4 + 0xc" (identifier "local_a4") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "sVar9")) (; ";")) (expression_statement "uVar32 = (uint)local_a4[0x28];" (assignment_expression "uVar32 = (uint)local_a4[0x28]" (identifier "uVar32") (= "=") (cast_expression "(uint)local_a4[0x28]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_a4[0x28]" (identifier "local_a4") ([ "[") (number_literal "0x28") (] "]")))) (; ";")) (if_statement "if (uVar32 != 0) {\nLAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);\n          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);\n        }" (if "if") (parenthesized_expression "(uVar32 != 0)" (( "(") (binary_expression "uVar32 != 0" (identifier "uVar32") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);\n          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);\n        }" ({ "{") (labeled_statement "LAB_000244d8:\n          do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);" (statement_identifier "LAB_000244d8") (: ":") (do_statement "do {\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          } while (*(uint *)(local_88 + 4) != 0);" (do "do") (compound_statement "{\n            local_88 = uVar32;\n            if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }\n            do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);\n            uVar32 = *(uint *)(local_88 + 4);\n          }" ({ "{") (expression_statement "local_88 = uVar32;" (assignment_expression "local_88 = uVar32" (identifier "local_88") (= "=") (identifier "uVar32")) (; ";")) (if_statement "if (*(uint *)(local_88 + 4) == 0) {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }\n            else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }" (if "if") (parenthesized_expression "(*(uint *)(local_88 + 4) == 0)" (( "(") (binary_expression "*(uint *)(local_88 + 4) == 0" (pointer_expression "*(uint *)(local_88 + 4)" (* "*") (cast_expression "(uint *)(local_88 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_88 + 4)" (( "(") (binary_expression "local_88 + 4" (identifier "local_88") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);\n              if (local_a0 <= piVar25) break;\n            }" ({ "{") (expression_statement "piVar25 = *(int **)(local_88 + 8);" (assignment_expression "piVar25 = *(int **)(local_88 + 8)" (identifier "piVar25") (= "=") (pointer_expression "*(int **)(local_88 + 8)" (* "*") (cast_expression "(int **)(local_88 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_88 + 8)" (( "(") (binary_expression "local_88 + 8" (identifier "local_88") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);" (assignment_expression "local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11)" (identifier "local_a0") (= "=") (cast_expression "(undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11)" (( "(") (type_descriptor "undefined4 ******" (type_identifier "undefined4") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11)" (( "(") (binary_expression "piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11" (identifier "piVar25") (+ "+") (binary_expression "(uint)(ushort)local_a4[0x2c] * 0x11" (cast_expression "(uint)(ushort)local_a4[0x2c]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(ushort)local_a4[0x2c]" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (subscript_expression "local_a4[0x2c]" (identifier "local_a4") ([ "[") (number_literal "0x2c") (] "]")))) (* "*") (number_literal "0x11"))) () ")")))) (; ";")) (if_statement "if (local_a0 <= piVar25) break;" (if "if") (parenthesized_expression "(local_a0 <= piVar25)" (( "(") (binary_expression "local_a0 <= piVar25" (identifier "local_a0") (<= "<=") (identifier "piVar25")) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (else_clause "else {\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }" (else "else") (compound_statement "{\n              piVar25 = *(int **)(local_88 + 8);\n              local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);\n              uVar32 = *(uint *)(local_88 + 4);\n              if (local_a0 <= piVar25) goto LAB_000244d8;\n            }" ({ "{") (expression_statement "piVar25 = *(int **)(local_88 + 8);" (assignment_expression "piVar25 = *(int **)(local_88 + 8)" (identifier "piVar25") (= "=") (pointer_expression "*(int **)(local_88 + 8)" (* "*") (cast_expression "(int **)(local_88 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_88 + 8)" (( "(") (binary_expression "local_88 + 8" (identifier "local_88") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);" (assignment_expression "local_a0 = (undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11)" (identifier "local_a0") (= "=") (cast_expression "(undefined4 ******)\n                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11)" (( "(") (type_descriptor "undefined4 ******" (type_identifier "undefined4") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11)" (( "(") (binary_expression "piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11" (identifier "piVar25") (+ "+") (binary_expression "(uint)*(ushort *)((int)local_a4 + 0xae) * 0x11" (binary_expression "(uint)*(ushort *)((int)local_a4 + 0xae)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)((int)local_a4 + 0xae)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_a4 + 0xae)" (( "(") (binary_expression "(int)local_a4 + 0xae" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (+ "+") (number_literal "0xae")) () ")")))) (* "*") (number_literal "0x11"))) () ")")))) (; ";")) (expression_statement "uVar32 = *(uint *)(local_88 + 4);" (assignment_expression "uVar32 = *(uint *)(local_88 + 4)" (identifier "uVar32") (= "=") (pointer_expression "*(uint *)(local_88 + 4)" (* "*") (cast_expression "(uint *)(local_88 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_88 + 4)" (( "(") (binary_expression "local_88 + 4" (identifier "local_88") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (local_a0 <= piVar25) goto LAB_000244d8;" (if "if") (parenthesized_expression "(local_a0 <= piVar25)" (( "(") (binary_expression "local_a0 <= piVar25" (identifier "local_a0") (<= "<=") (identifier "piVar25")) () ")")) (goto_statement "goto LAB_000244d8;" (goto "goto") (statement_identifier "LAB_000244d8") (; ";"))) (} "}")))) (do_statement "do {\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            } while (piVar25 < local_a0);" (do "do") (compound_statement "{\n              uVar13 = *(undefined4 *)(*piVar25 + 4);\n              iVar26 = FUN_0003fad0(uVar13);\n              iVar15 = FUN_0003e1d0(uVar13);\n              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);\n              if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }\n              piVar25[1] = iVar26;\n              piVar25[2] = iVar15;\n              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;\n              if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }\n              piVar3 = piVar25 + 1;\n              piVar25 = piVar25 + 0x11;\n              (*pcVar5)(DAT_00081544,piVar3,pcVar24);\n              pcVar24 = pcVar24 + uVar36;\n              bVar41 = false;\n              sVar9 = sVar9 + 1;\n            }" ({ "{") (expression_statement "uVar13 = *(undefined4 *)(*piVar25 + 4);" (assignment_expression "uVar13 = *(undefined4 *)(*piVar25 + 4)" (identifier "uVar13") (= "=") (pointer_expression "*(undefined4 *)(*piVar25 + 4)" (* "*") (cast_expression "(undefined4 *)(*piVar25 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar25 + 4)" (( "(") (binary_expression "*piVar25 + 4" (pointer_expression "*piVar25" (* "*") (identifier "piVar25")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar26 = FUN_0003fad0(uVar13);" (assignment_expression "iVar26 = FUN_0003fad0(uVar13)" (identifier "iVar26") (= "=") (call_expression "FUN_0003fad0(uVar13)" (identifier "FUN_0003fad0") (argument_list "(uVar13)" (( "(") (identifier "uVar13") () ")")))) (; ";")) (expression_statement "iVar15 = FUN_0003e1d0(uVar13);" (assignment_expression "iVar15 = FUN_0003e1d0(uVar13)" (identifier "iVar15") (= "=") (call_expression "FUN_0003e1d0(uVar13)" (identifier "FUN_0003e1d0") (argument_list "(uVar13)" (( "(") (identifier "uVar13") () ")")))) (; ";")) (expression_statement "uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);" (assignment_expression "uVar32 = iVar26 + *(int *)(iVar15 + 0x1c)" (identifier "uVar32") (= "=") (binary_expression "iVar26 + *(int *)(iVar15 + 0x1c)" (identifier "iVar26") (+ "+") (pointer_expression "*(int *)(iVar15 + 0x1c)" (* "*") (cast_expression "(int *)(iVar15 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x1c)" (( "(") (binary_expression "iVar15 + 0x1c" (identifier "iVar15") (+ "+") (number_literal "0x1c")) () ")")))))) (; ";")) (if_statement "if (bVar41) {\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }\n              else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }" (if "if") (parenthesized_expression "(bVar41)" (( "(") (identifier "bVar41") () ")")) (compound_statement "{\n                iVar26 = 0;\n                *local_a4 = (undefined4 ****)uVar32;\n                iVar15 = 0;\n                local_a4[1] = (undefined4 ****)0x0;\n              }" ({ "{") (expression_statement "iVar26 = 0;" (assignment_expression "iVar26 = 0" (identifier "iVar26") (= "=") (number_literal "0")) (; ";")) (expression_statement "*local_a4 = (undefined4 ****)uVar32;" (assignment_expression "*local_a4 = (undefined4 ****)uVar32" (pointer_expression "*local_a4" (* "*") (identifier "local_a4")) (= "=") (cast_expression "(undefined4 ****)uVar32" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "uVar32"))) (; ";")) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" (identifier "iVar15") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_a4[1] = (undefined4 ****)0x0;" (assignment_expression "local_a4[1] = (undefined4 ****)0x0" (subscript_expression "local_a4[1]" (identifier "local_a4") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(undefined4 ****)0x0" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }" (else "else") (compound_statement "{\n                iVar26 = uVar32 - (int)*local_a4;\n                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];\n              }" ({ "{") (expression_statement "iVar26 = uVar32 - (int)*local_a4;" (assignment_expression "iVar26 = uVar32 - (int)*local_a4" (identifier "iVar26") (= "=") (binary_expression "uVar32 - (int)*local_a4" (identifier "uVar32") (- "-") (cast_expression "(int)*local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*local_a4" (* "*") (identifier "local_a4"))))) (; ";")) (expression_statement "iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];" (assignment_expression "iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1]" (identifier "iVar15") (= "=") (binary_expression "-(uint)(uVar32 < *local_a4) - (int)local_a4[1]" (unary_expression "-(uint)(uVar32 < *local_a4)" (- "-") (call_expression "(uint)(uVar32 < *local_a4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar32 < *local_a4)" (( "(") (binary_expression "uVar32 < *local_a4" (identifier "uVar32") (< "<") (pointer_expression "*local_a4" (* "*") (identifier "local_a4"))) () ")")))) (- "-") (cast_expression "(int)local_a4[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "local_a4[1]" (identifier "local_a4") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (} "}")))) (expression_statement "piVar25[1] = iVar26;" (assignment_expression "piVar25[1] = iVar26" (subscript_expression "piVar25[1]" (identifier "piVar25") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar26")) (; ";")) (expression_statement "piVar25[2] = iVar15;" (assignment_expression "piVar25[2] = iVar15" (subscript_expression "piVar25[2]" (identifier "piVar25") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar15")) (; ";")) (expression_statement "uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;" (assignment_expression "uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f" (identifier "uVar32") (= "=") (binary_expression "(int)pcVar1 - (int)pcVar24 >> 0x1f" (binary_expression "(int)pcVar1 - (int)pcVar24" (cast_expression "(int)pcVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar1")) (- "-") (cast_expression "(int)pcVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar24"))) (>> ">>") (number_literal "0x1f"))) (; ";")) (if_statement "if (uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }" (if "if") (parenthesized_expression "(uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36))" (( "(") (binary_expression "uVar32 < uVar16 ||\n                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)" (binary_expression "uVar32 < uVar16" (identifier "uVar32") (< "<") (identifier "uVar16")) (|| "||") (binary_expression "uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)" (binary_expression "uVar32 - uVar16" (identifier "uVar32") (- "-") (identifier "uVar16")) (< "<") (call_expression "(uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uint)((int)pcVar1 - (int)pcVar24) < uVar36)" (( "(") (binary_expression "(uint)((int)pcVar1 - (int)pcVar24) < uVar36" (call_expression "(uint)((int)pcVar1 - (int)pcVar24)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pcVar1 - (int)pcVar24)" (( "(") (binary_expression "(int)pcVar1 - (int)pcVar24" (cast_expression "(int)pcVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar1")) (- "-") (cast_expression "(int)pcVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar24"))) () ")"))) (< "<") (identifier "uVar36")) () ")"))))) () ")")) (compound_statement "{\n                pcVar24 = (char *)FUN_0001ff00(uVar36);\n              }" ({ "{") (expression_statement "pcVar24 = (char *)FUN_0001ff00(uVar36);" (assignment_expression "pcVar24 = (char *)FUN_0001ff00(uVar36)" (identifier "pcVar24") (= "=") (cast_expression "(char *)FUN_0001ff00(uVar36)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001ff00(uVar36)" (identifier "FUN_0001ff00") (argument_list "(uVar36)" (( "(") (identifier "uVar36") () ")"))))) (; ";")) (} "}"))) (expression_statement "piVar3 = piVar25 + 1;" (assignment_expression "piVar3 = piVar25 + 1" (identifier "piVar3") (= "=") (binary_expression "piVar25 + 1" (identifier "piVar25") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar25 = piVar25 + 0x11;" (assignment_expression "piVar25 = piVar25 + 0x11" (identifier "piVar25") (= "=") (binary_expression "piVar25 + 0x11" (identifier "piVar25") (+ "+") (number_literal "0x11"))) (; ";")) (expression_statement "(*pcVar5)(DAT_00081544,piVar3,pcVar24);" (call_expression "(*pcVar5)(DAT_00081544,piVar3,pcVar24)" (parenthesized_expression "(*pcVar5)" (( "(") (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")) () ")")) (argument_list "(DAT_00081544,piVar3,pcVar24)" (( "(") (identifier "DAT_00081544") (, ",") (identifier "piVar3") (, ",") (identifier "pcVar24") () ")"))) (; ";")) (expression_statement "pcVar24 = pcVar24 + uVar36;" (assignment_expression "pcVar24 = pcVar24 + uVar36" (identifier "pcVar24") (= "=") (binary_expression "pcVar24 + uVar36" (identifier "pcVar24") (+ "+") (identifier "uVar36"))) (; ";")) (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" (identifier "bVar41") (= "=") (false "false")) (; ";")) (expression_statement "sVar9 = sVar9 + 1;" (assignment_expression "sVar9 = sVar9 + 1" (identifier "sVar9") (= "=") (binary_expression "sVar9 + 1" (identifier "sVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar25 < local_a0)" (( "(") (binary_expression "piVar25 < local_a0" (identifier "piVar25") (< "<") (identifier "local_a0")) () ")")) (; ";")) (expression_statement "uVar32 = *(uint *)(local_88 + 4);" (assignment_expression "uVar32 = *(uint *)(local_88 + 4)" (identifier "uVar32") (= "=") (pointer_expression "*(uint *)(local_88 + 4)" (* "*") (cast_expression "(uint *)(local_88 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_88 + 4)" (( "(") (binary_expression "local_88 + 4" (identifier "local_88") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(uint *)(local_88 + 4) != 0)" (( "(") (binary_expression "*(uint *)(local_88 + 4) != 0" (pointer_expression "*(uint *)(local_88 + 4)" (* "*") (cast_expression "(uint *)(local_88 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_88 + 4)" (( "(") (binary_expression "local_88 + 4" (identifier "local_88") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (; ";"))) (expression_statement "uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);" (assignment_expression "uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc])" (identifier "uVar32") (= "=") (call_expression "(uint)(ushort)(sVar9 - (short)local_a4[0xc])" (call_expression "(uint)(ushort)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(ushort)" (( "(") (identifier "ushort") () ")"))) (argument_list "(sVar9 - (short)local_a4[0xc])" (( "(") (binary_expression "sVar9 - (short)local_a4[0xc]" (identifier "sVar9") (- "-") (cast_expression "(short)local_a4[0xc]" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (subscript_expression "local_a4[0xc]" (identifier "local_a4") ([ "[") (number_literal "0xc") (] "]")))) () ")")))) (; ";")) (} "}"))) (expression_statement "*(short *)((int)local_a4 + 0x32) = (short)uVar32;" (assignment_expression "*(short *)((int)local_a4 + 0x32) = (short)uVar32" (pointer_expression "*(short *)((int)local_a4 + 0x32)" (* "*") (cast_expression "(short *)((int)local_a4 + 0x32)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_a4 + 0x32)" (( "(") (binary_expression "(int)local_a4 + 0x32" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (+ "+") (number_literal "0x32")) () ")")))) (= "=") (cast_expression "(short)uVar32" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "uVar32"))) (; ";")) (expression_statement "local_a4 = local_a4 + 0xa5;" (assignment_expression "local_a4 = local_a4 + 0xa5" (identifier "local_a4") (= "=") (binary_expression "local_a4 + 0xa5" (identifier "local_a4") (+ "+") (number_literal "0xa5"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_a4 < local_7c)" (( "(") (binary_expression "local_a4 < local_7c" (identifier "local_a4") (< "<") (identifier "local_7c")) () ")")) (; ";")) (expression_statement "puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);" (assignment_expression "puVar20 = (undefined4 *)*(int *)((int)local_70 + 4)" (identifier "puVar20") (= "=") (cast_expression "(undefined4 *)*(int *)((int)local_70 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*(int *)((int)local_70 + 4)" (* "*") (cast_expression "(int *)((int)local_70 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_70 + 4)" (( "(") (binary_expression "(int)local_70 + 4" (cast_expression "(int)local_70" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_70")) (+ "+") (number_literal "4")) () ")")))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(int *)((int)local_70 + 4) != 0)" (( "(") (binary_expression "*(int *)((int)local_70 + 4) != 0" (pointer_expression "*(int *)((int)local_70 + 4)" (* "*") (cast_expression "(int *)((int)local_70 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_70 + 4)" (( "(") (binary_expression "(int)local_70 + 4" (cast_expression "(int)local_70" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_70")) (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (; ";"))) (expression_statement "pppppppuVar29 = (undefined4 *******)DAT_00078240;" (assignment_expression "pppppppuVar29 = (undefined4 *******)DAT_00078240" (identifier "pppppppuVar29") (= "=") (cast_expression "(undefined4 *******)DAT_00078240" (( "(") (type_descriptor "undefined4 *******" (type_identifier "undefined4") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (identifier "DAT_00078240"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x3c) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x3c) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x3c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3c)" (( "(") (binary_expression "param_1 + 0x3c" (identifier "param_1") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x40) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x40) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x40)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x44) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x44) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x44)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x50) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x50) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x50)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(uint *)(param_1 + 0x4c) = local_68;" (assignment_expression "*(uint *)(param_1 + 0x4c) = local_68" (pointer_expression "*(uint *)(param_1 + 0x4c)" (* "*") (cast_expression "(uint *)(param_1 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x4c)" (( "(") (binary_expression "param_1 + 0x4c" (identifier "param_1") (+ "+") (number_literal "0x4c")) () ")")))) (= "=") (identifier "local_68")) (; ";")) (expression_statement "iVar26 = *(int *)(*(int *)(DAT_00081544 + 4) + 8);" (assignment_expression "iVar26 = *(int *)(*(int *)(DAT_00081544 + 4) + 8)" (identifier "iVar26") (= "=") (pointer_expression "*(int *)(*(int *)(DAT_00081544 + 4) + 8)" (* "*") (cast_expression "(int *)(*(int *)(DAT_00081544 + 4) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_00081544 + 4) + 8)" (( "(") (binary_expression "*(int *)(DAT_00081544 + 4) + 8" (pointer_expression "*(int *)(DAT_00081544 + 4)" (* "*") (cast_expression "(int *)(DAT_00081544 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00081544 + 4)" (( "(") (binary_expression "DAT_00081544 + 4" (identifier "DAT_00081544") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "bVar41 = iVar26 == 0;" (assignment_expression "bVar41 = iVar26 == 0" (identifier "bVar41") (= "=") (binary_expression "iVar26 == 0" (identifier "iVar26") (== "==") (number_literal "0"))) (; ";")) (expression_statement "pcVar24 = pcVar14 + local_68;" (assignment_expression "pcVar24 = pcVar14 + local_68" (identifier "pcVar24") (= "=") (binary_expression "pcVar14 + local_68" (identifier "pcVar14") (+ "+") (identifier "local_68"))) (; ";")) (if_statement "if (pppppppuVar29 != (undefined4 *******)0x0) {\n      iVar15 = 0;\nLAB_00024d54:\n      do {\n        local_94 = pppppppuVar29;\n        local_a0 = *(undefined4 *******)((int)local_94 + 8);\n        if (*(int *)((int)local_94 + 4) == 0) {\n          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          *(int *)((int)local_a0 + 0x34) = iVar15;\n          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;\n          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);\n          if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }\n          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;\n          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);\n        } while (local_a0 < local_9c);\n        pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n      } while (*(int *)((int)local_94 + 4) != 0);\n      local_68 = local_68 + iVar15 * 4;\n    }" (if "if") (parenthesized_expression "(pppppppuVar29 != (undefined4 *******)0x0)" (( "(") (binary_expression "pppppppuVar29 != (undefined4 *******)0x0" (identifier "pppppppuVar29") (!= "!=") (cast_expression "(undefined4 *******)0x0" (( "(") (type_descriptor "undefined4 *******" (type_identifier "undefined4") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      iVar15 = 0;\nLAB_00024d54:\n      do {\n        local_94 = pppppppuVar29;\n        local_a0 = *(undefined4 *******)((int)local_94 + 8);\n        if (*(int *)((int)local_94 + 4) == 0) {\n          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          *(int *)((int)local_a0 + 0x34) = iVar15;\n          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;\n          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);\n          if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }\n          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;\n          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);\n        } while (local_a0 < local_9c);\n        pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n      } while (*(int *)((int)local_94 + 4) != 0);\n      local_68 = local_68 + iVar15 * 4;\n    }" ({ "{") (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" (identifier "iVar15") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00024d54:\n      do {\n        local_94 = pppppppuVar29;\n        local_a0 = *(undefined4 *******)((int)local_94 + 8);\n        if (*(int *)((int)local_94 + 4) == 0) {\n          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          *(int *)((int)local_a0 + 0x34) = iVar15;\n          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;\n          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);\n          if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }\n          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;\n          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);\n        } while (local_a0 < local_9c);\n        pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n      } while (*(int *)((int)local_94 + 4) != 0);" (statement_identifier "LAB_00024d54") (: ":") (do_statement "do {\n        local_94 = pppppppuVar29;\n        local_a0 = *(undefined4 *******)((int)local_94 + 8);\n        if (*(int *)((int)local_94 + 4) == 0) {\n          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          *(int *)((int)local_a0 + 0x34) = iVar15;\n          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;\n          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);\n          if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }\n          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;\n          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);\n        } while (local_a0 < local_9c);\n        pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n      } while (*(int *)((int)local_94 + 4) != 0);" (do "do") (compound_statement "{\n        local_94 = pppppppuVar29;\n        local_a0 = *(undefined4 *******)((int)local_94 + 8);\n        if (*(int *)((int)local_94 + 4) == 0) {\n          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }\n        do {\n          *(int *)((int)local_a0 + 0x34) = iVar15;\n          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;\n          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);\n          if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }\n          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;\n          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);\n        } while (local_a0 < local_9c);\n        pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n      }" ({ "{") (expression_statement "local_94 = pppppppuVar29;" (assignment_expression "local_94 = pppppppuVar29" (identifier "local_94") (= "=") (identifier "pppppppuVar29")) (; ";")) (expression_statement "local_a0 = *(undefined4 *******)((int)local_94 + 8);" (assignment_expression "local_a0 = *(undefined4 *******)((int)local_94 + 8)" (identifier "local_a0") (= "=") (pointer_expression "*(undefined4 *******)((int)local_94 + 8)" (* "*") (cast_expression "(undefined4 *******)((int)local_94 + 8)" (( "(") (type_descriptor "undefined4 *******" (type_identifier "undefined4") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)local_94 + 8)" (( "(") (binary_expression "(int)local_94 + 8" (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (*(int *)((int)local_94 + 4) == 0) {\n          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);\n          if (local_9c <= local_a0) break;\n        }\n        else {\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }" (if "if") (parenthesized_expression "(*(int *)((int)local_94 + 4) == 0)" (( "(") (binary_expression "*(int *)((int)local_94 + 4) == 0" (pointer_expression "*(int *)((int)local_94 + 4)" (* "*") (cast_expression "(int *)((int)local_94 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_94 + 4)" (( "(") (binary_expression "(int)local_94 + 4" (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94")) (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);\n          if (local_9c <= local_a0) break;\n        }" ({ "{") (expression_statement "local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);" (assignment_expression "local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0)" (identifier "local_9c") (= "=") (cast_expression "(undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((uint)DAT_00078250 * 0x294 + (int)local_a0)" (( "(") (binary_expression "(uint)DAT_00078250 * 0x294 + (int)local_a0" (binary_expression "(uint)DAT_00078250 * 0x294" (cast_expression "(uint)DAT_00078250" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "DAT_00078250")) (* "*") (number_literal "0x294")) (+ "+") (cast_expression "(int)local_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a0"))) () ")")))) (; ";")) (if_statement "if (local_9c <= local_a0) break;" (if "if") (parenthesized_expression "(local_9c <= local_a0)" (( "(") (binary_expression "local_9c <= local_a0" (identifier "local_9c") (<= "<=") (identifier "local_a0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (else_clause "else {\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }" (else "else") (compound_statement "{\n          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);\n          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);\n          if (local_9c <= local_a0) goto LAB_00024d54;\n        }" ({ "{") (expression_statement "local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);" (assignment_expression "local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0)" (identifier "local_9c") (= "=") (cast_expression "(undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((uint)DAT_0007824e * 0x294 + (int)local_a0)" (( "(") (binary_expression "(uint)DAT_0007824e * 0x294 + (int)local_a0" (binary_expression "(uint)DAT_0007824e * 0x294" (cast_expression "(uint)DAT_0007824e" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "DAT_0007824e")) (* "*") (number_literal "0x294")) (+ "+") (cast_expression "(int)local_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a0"))) () ")")))) (; ";")) (expression_statement "pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);" (assignment_expression "pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4)" (identifier "pppppppuVar29") (= "=") (cast_expression "(undefined4 *******)*(int *)((int)local_94 + 4)" (( "(") (type_descriptor "undefined4 *******" (type_identifier "undefined4") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*(int *)((int)local_94 + 4)" (* "*") (cast_expression "(int *)((int)local_94 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_94 + 4)" (( "(") (binary_expression "(int)local_94 + 4" (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94")) (+ "+") (number_literal "4")) () ")")))))) (; ";")) (if_statement "if (local_9c <= local_a0) goto LAB_00024d54;" (if "if") (parenthesized_expression "(local_9c <= local_a0)" (( "(") (binary_expression "local_9c <= local_a0" (identifier "local_9c") (<= "<=") (identifier "local_a0")) () ")")) (goto_statement "goto LAB_00024d54;" (goto "goto") (statement_identifier "LAB_00024d54") (; ";"))) (} "}")))) (do_statement "do {\n          *(int *)((int)local_a0 + 0x34) = iVar15;\n          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;\n          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);\n          if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }\n          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;\n          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);\n        } while (local_a0 < local_9c);" (do "do") (compound_statement "{\n          *(int *)((int)local_a0 + 0x34) = iVar15;\n          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;\n          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);\n          if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }\n          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;\n          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);\n        }" ({ "{") (expression_statement "*(int *)((int)local_a0 + 0x34) = iVar15;" (assignment_expression "*(int *)((int)local_a0 + 0x34) = iVar15" (pointer_expression "*(int *)((int)local_a0 + 0x34)" (* "*") (cast_expression "(int *)((int)local_a0 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_a0 + 0x34)" (( "(") (binary_expression "(int)local_a0 + 0x34" (cast_expression "(int)local_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a0")) (+ "+") (number_literal "0x34")) () ")")))) (= "=") (identifier "iVar15")) (; ";")) (expression_statement "*(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;" (assignment_expression "*(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7" (pointer_expression "*(byte *)((int)local_a0 + 0x44)" (* "*") (cast_expression "(byte *)((int)local_a0 + 0x44)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_a0 + 0x44)" (( "(") (binary_expression "(int)local_a0 + 0x44" (cast_expression "(int)local_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a0")) (+ "+") (number_literal "0x44")) () ")")))) (= "=") (binary_expression "*(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7" (binary_expression "*(byte *)((int)local_a0 + 0x44) & 0x7f" (pointer_expression "*(byte *)((int)local_a0 + 0x44)" (* "*") (cast_expression "(byte *)((int)local_a0 + 0x44)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_a0 + 0x44)" (( "(") (binary_expression "(int)local_a0 + 0x44" (cast_expression "(int)local_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a0")) (+ "+") (number_literal "0x44")) () ")")))) (& "&") (number_literal "0x7f")) (| "|") (binary_expression "bVar41 << 7" (identifier "bVar41") (<< "<<") (number_literal "7")))) (; ";")) (expression_statement "ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);" (assignment_expression "ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4)" (identifier "ppppppuVar27") (= "=") (pointer_expression "*(undefined4 *******)((int)local_a0 + 0xb4)" (* "*") (cast_expression "(undefined4 *******)((int)local_a0 + 0xb4)" (( "(") (type_descriptor "undefined4 *******" (type_identifier "undefined4") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)local_a0 + 0xb4)" (( "(") (binary_expression "(int)local_a0 + 0xb4" (cast_expression "(int)local_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a0")) (+ "+") (number_literal "0xb4")) () ")"))))) (; ";")) (if_statement "if (ppppppuVar27 != (undefined4 ******)0x0) {\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }" (if "if") (parenthesized_expression "(ppppppuVar27 != (undefined4 ******)0x0)" (( "(") (binary_expression "ppppppuVar27 != (undefined4 ******)0x0" (identifier "ppppppuVar27") (!= "!=") (cast_expression "(undefined4 ******)0x0" (( "(") (type_descriptor "undefined4 ******" (type_identifier "undefined4") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);\n            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));\n          }" ({ "{") (labeled_statement "LAB_00024dd0:\n            do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);" (statement_identifier "LAB_00024dd0") (: ":") (do_statement "do {\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            } while (*(int *)((int)local_a8 + 4) != 0);" (do "do") (compound_statement "{\n              local_a8 = ppppppuVar27;\n              puVar20 = *(undefined4 **)((int)local_a8 + 8);\n              if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }\n              do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);\n              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n            }" ({ "{") (expression_statement "local_a8 = ppppppuVar27;" (assignment_expression "local_a8 = ppppppuVar27" (identifier "local_a8") (= "=") (identifier "ppppppuVar27")) (; ";")) (expression_statement "puVar20 = *(undefined4 **)((int)local_a8 + 8);" (assignment_expression "puVar20 = *(undefined4 **)((int)local_a8 + 8)" (identifier "puVar20") (= "=") (pointer_expression "*(undefined4 **)((int)local_a8 + 8)" (* "*") (cast_expression "(undefined4 **)((int)local_a8 + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)local_a8 + 8)" (( "(") (binary_expression "(int)local_a8 + 8" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (*(int *)((int)local_a8 + 4) == 0) {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }\n              else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }" (if "if") (parenthesized_expression "(*(int *)((int)local_a8 + 4) == 0)" (( "(") (binary_expression "*(int *)((int)local_a8 + 4) == 0" (pointer_expression "*(int *)((int)local_a8 + 4)" (* "*") (cast_expression "(int *)((int)local_a8 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_a8 + 4)" (( "(") (binary_expression "(int)local_a8 + 4" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;\n                if (local_ac <= puVar20) break;\n              }" ({ "{") (expression_statement "local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)\n                ;" (assignment_expression "local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)" (identifier "local_ac") (= "=") (cast_expression "(undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)" (( "(") (binary_expression "puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2" (identifier "puVar20") (+ "+") (binary_expression "(uint)*(ushort *)((int)local_a0 + 0xc4) * 2" (binary_expression "(uint)*(ushort *)((int)local_a0 + 0xc4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)((int)local_a0 + 0xc4)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_a0 + 0xc4)" (( "(") (binary_expression "(int)local_a0 + 0xc4" (cast_expression "(int)local_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a0")) (+ "+") (number_literal "0xc4")) () ")")))) (* "*") (number_literal "2"))) () ")")))) (; ";")) (if_statement "if (local_ac <= puVar20) break;" (if "if") (parenthesized_expression "(local_ac <= puVar20)" (( "(") (binary_expression "local_ac <= puVar20" (identifier "local_ac") (<= "<=") (identifier "puVar20")) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (else_clause "else {\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }" (else "else") (compound_statement "{\n                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;\n                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);\n                if (local_ac <= puVar20) goto LAB_00024dd0;\n              }" ({ "{") (expression_statement "local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)\n                ;" (assignment_expression "local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)" (identifier "local_ac") (= "=") (cast_expression "(undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)" (( "(") (binary_expression "puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2" (identifier "puVar20") (+ "+") (binary_expression "(uint)*(ushort *)((int)local_a0 + 0xc2) * 2" (binary_expression "(uint)*(ushort *)((int)local_a0 + 0xc2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)((int)local_a0 + 0xc2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_a0 + 0xc2)" (( "(") (binary_expression "(int)local_a0 + 0xc2" (cast_expression "(int)local_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a0")) (+ "+") (number_literal "0xc2")) () ")")))) (* "*") (number_literal "2"))) () ")")))) (; ";")) (expression_statement "ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);" (assignment_expression "ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4)" (identifier "ppppppuVar27") (= "=") (cast_expression "(undefined4 ******)*(int *)((int)local_a8 + 4)" (( "(") (type_descriptor "undefined4 ******" (type_identifier "undefined4") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (pointer_expression "*(int *)((int)local_a8 + 4)" (* "*") (cast_expression "(int *)((int)local_a8 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_a8 + 4)" (( "(") (binary_expression "(int)local_a8 + 4" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (+ "+") (number_literal "4")) () ")")))))) (; ";")) (if_statement "if (local_ac <= puVar20) goto LAB_00024dd0;" (if "if") (parenthesized_expression "(local_ac <= puVar20)" (( "(") (binary_expression "local_ac <= puVar20" (identifier "local_ac") (<= "<=") (identifier "puVar20")) () ")")) (goto_statement "goto LAB_00024dd0;" (goto "goto") (statement_identifier "LAB_00024dd0") (; ";"))) (} "}")))) (do_statement "do {\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              } while (puVar20 < local_ac);" (do "do") (compound_statement "{\n                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }\n                switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }\n                pcVar24 = pcVar24 + 4;\n                iVar15 = iVar15 + 1;\n                puVar20 = puVar20 + 2;\n              }" ({ "{") (if_statement "if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }" (if "if") (parenthesized_expression "((uint)((int)pcVar1 - (int)pcVar24) < 4)" (( "(") (binary_expression "(uint)((int)pcVar1 - (int)pcVar24) < 4" (call_expression "(uint)((int)pcVar1 - (int)pcVar24)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pcVar1 - (int)pcVar24)" (( "(") (binary_expression "(int)pcVar1 - (int)pcVar24" (cast_expression "(int)pcVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar1")) (- "-") (cast_expression "(int)pcVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar24"))) () ")"))) (< "<") (number_literal "4")) () ")")) (compound_statement "{\n                  pcVar24 = (char *)FUN_0001ff00(4);\n                }" ({ "{") (expression_statement "pcVar24 = (char *)FUN_0001ff00(4);" (assignment_expression "pcVar24 = (char *)FUN_0001ff00(4)" (identifier "pcVar24") (= "=") (cast_expression "(char *)FUN_0001ff00(4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001ff00(4)" (identifier "FUN_0001ff00") (argument_list "(4)" (( "(") (number_literal "4") () ")"))))) (; ";")) (} "}"))) (switch_statement "switch(*puVar20) {\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }" (switch "switch") (parenthesized_expression "(*puVar20)" (( "(") (pointer_expression "*puVar20" (* "*") (identifier "puVar20")) () ")")) (compound_statement "{\n                case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;\n                case 2:\n                case 3:\n                case 4:\n                case 5:\n                case 6:\n                case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                }" ({ "{") (case_statement "case 0:\n                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);\n                  break;" (case "case") (number_literal "0") (: ":") (expression_statement "(**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);" (call_expression "(**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24)" (parenthesized_expression "(**(code **)(param_3 + 0x94))" (( "(") (pointer_expression "**(code **)(param_3 + 0x94)" (* "*") (pointer_expression "*(code **)(param_3 + 0x94)" (* "*") (cast_expression "(code **)(param_3 + 0x94)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + 0x94)" (( "(") (binary_expression "param_3 + 0x94" (identifier "param_3") (+ "+") (number_literal "0x94")) () ")"))))) () ")")) (argument_list "(bVar41,puVar20 + 1,pcVar24)" (( "(") (identifier "bVar41") (, ",") (binary_expression "puVar20 + 1" (identifier "puVar20") (+ "+") (number_literal "1")) (, ",") (identifier "pcVar24") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 1:\n                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);\n                  break;" (case "case") (number_literal "1") (: ":") (expression_statement "(**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);" (call_expression "(**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24)" (parenthesized_expression "(**(code **)(param_3 + 0x98))" (( "(") (pointer_expression "**(code **)(param_3 + 0x98)" (* "*") (pointer_expression "*(code **)(param_3 + 0x98)" (* "*") (cast_expression "(code **)(param_3 + 0x98)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + 0x98)" (( "(") (binary_expression "param_3 + 0x98" (identifier "param_3") (+ "+") (number_literal "0x98")) () ")"))))) () ")")) (argument_list "(bVar41,puVar20 + 1,pcVar24)" (( "(") (identifier "bVar41") (, ",") (binary_expression "puVar20 + 1" (identifier "puVar20") (+ "+") (number_literal "1")) (, ",") (identifier "pcVar24") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 2:" (case "case") (number_literal "2") (: ":")) (case_statement "case 3:" (case "case") (number_literal "3") (: ":")) (case_statement "case 4:" (case "case") (number_literal "4") (: ":")) (case_statement "case 5:" (case "case") (number_literal "5") (: ":")) (case_statement "case 6:" (case "case") (number_literal "6") (: ":")) (case_statement "case 7:\n                  iVar21 = puVar20[1];\n                  if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }" (case "case") (number_literal "7") (: ":") (expression_statement "iVar21 = puVar20[1];" (assignment_expression "iVar21 = puVar20[1]" (identifier "iVar21") (= "=") (subscript_expression "puVar20[1]" (identifier "puVar20") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (iVar26 == 0) {\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }\n                  else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }" (if "if") (parenthesized_expression "(iVar26 == 0)" (( "(") (binary_expression "iVar26 == 0" (identifier "iVar26") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }" ({ "{") (expression_statement "func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);" (call_expression "func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24)" (identifier "func_0x00014620") (argument_list "(iVar21,iVar21 >> 0x1f,pcVar24)" (( "(") (identifier "iVar21") (, ",") (binary_expression "iVar21 >> 0x1f" (identifier "iVar21") (>> ">>") (number_literal "0x1f")) (, ",") (identifier "pcVar24") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }" (else "else") (compound_statement "{\n                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);\n                  }" ({ "{") (expression_statement "func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);" (call_expression "func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24)" (identifier "func_0x000144b0") (argument_list "(iVar21,iVar21 >> 0x1f,pcVar24)" (( "(") (identifier "iVar21") (, ",") (binary_expression "iVar21 >> 0x1f" (identifier "iVar21") (>> ">>") (number_literal "0x1f")) (, ",") (identifier "pcVar24") () ")"))) (; ";")) (} "}"))))) (} "}"))) (expression_statement "pcVar24 = pcVar24 + 4;" (assignment_expression "pcVar24 = pcVar24 + 4" (identifier "pcVar24") (= "=") (binary_expression "pcVar24 + 4" (identifier "pcVar24") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" (identifier "iVar15") (= "=") (binary_expression "iVar15 + 1" (identifier "iVar15") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar20 = puVar20 + 2;" (assignment_expression "puVar20 = puVar20 + 2" (identifier "puVar20") (= "=") (binary_expression "puVar20 + 2" (identifier "puVar20") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar20 < local_ac)" (( "(") (binary_expression "puVar20 < local_ac" (identifier "puVar20") (< "<") (identifier "local_ac")) () ")")) (; ";")) (expression_statement "ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);" (assignment_expression "ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4)" (identifier "ppppppuVar27") (= "=") (cast_expression "(undefined4 ******)*(int *)((int)local_a8 + 4)" (( "(") (type_descriptor "undefined4 ******" (type_identifier "undefined4") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (pointer_expression "*(int *)((int)local_a8 + 4)" (* "*") (cast_expression "(int *)((int)local_a8 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_a8 + 4)" (( "(") (binary_expression "(int)local_a8 + 4" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (+ "+") (number_literal "4")) () ")")))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(int *)((int)local_a8 + 4) != 0)" (( "(") (binary_expression "*(int *)((int)local_a8 + 4) != 0" (pointer_expression "*(int *)((int)local_a8 + 4)" (* "*") (cast_expression "(int *)((int)local_a8 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_a8 + 4)" (( "(") (binary_expression "(int)local_a8 + 4" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (; ";"))) (expression_statement "ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));" (assignment_expression "ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34))" (identifier "ppppppuVar27") (= "=") (cast_expression "(undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34))" (( "(") (type_descriptor "undefined4 ******" (type_identifier "undefined4") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(iVar15 - *(int *)((int)local_a0 + 0x34))" (( "(") (binary_expression "iVar15 - *(int *)((int)local_a0 + 0x34)" (identifier "iVar15") (- "-") (pointer_expression "*(int *)((int)local_a0 + 0x34)" (* "*") (cast_expression "(int *)((int)local_a0 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_a0 + 0x34)" (( "(") (binary_expression "(int)local_a0 + 0x34" (cast_expression "(int)local_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a0")) (+ "+") (number_literal "0x34")) () ")"))))) () ")")))) (; ";")) (} "}"))) (expression_statement "*(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;" (assignment_expression "*(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27" (pointer_expression "*(undefined4 *******)((int)local_a0 + 0x38)" (* "*") (cast_expression "(undefined4 *******)((int)local_a0 + 0x38)" (( "(") (type_descriptor "undefined4 *******" (type_identifier "undefined4") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)local_a0 + 0x38)" (( "(") (binary_expression "(int)local_a0 + 0x38" (cast_expression "(int)local_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a0")) (+ "+") (number_literal "0x38")) () ")")))) (= "=") (identifier "ppppppuVar27")) (; ";")) (expression_statement "local_a0 = (undefined4 ******)((int)local_a0 + 0x294);" (assignment_expression "local_a0 = (undefined4 ******)((int)local_a0 + 0x294)" (identifier "local_a0") (= "=") (cast_expression "(undefined4 ******)((int)local_a0 + 0x294)" (( "(") (type_descriptor "undefined4 ******" (type_identifier "undefined4") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((int)local_a0 + 0x294)" (( "(") (binary_expression "(int)local_a0 + 0x294" (cast_expression "(int)local_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a0")) (+ "+") (number_literal "0x294")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_a0 < local_9c)" (( "(") (binary_expression "local_a0 < local_9c" (identifier "local_a0") (< "<") (identifier "local_9c")) () ")")) (; ";")) (expression_statement "pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);" (assignment_expression "pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4)" (identifier "pppppppuVar29") (= "=") (cast_expression "(undefined4 *******)*(int *)((int)local_94 + 4)" (( "(") (type_descriptor "undefined4 *******" (type_identifier "undefined4") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*(int *)((int)local_94 + 4)" (* "*") (cast_expression "(int *)((int)local_94 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_94 + 4)" (( "(") (binary_expression "(int)local_94 + 4" (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94")) (+ "+") (number_literal "4")) () ")")))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(int *)((int)local_94 + 4) != 0)" (( "(") (binary_expression "*(int *)((int)local_94 + 4) != 0" (pointer_expression "*(int *)((int)local_94 + 4)" (* "*") (cast_expression "(int *)((int)local_94 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_94 + 4)" (( "(") (binary_expression "(int)local_94 + 4" (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94")) (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (; ";"))) (expression_statement "local_68 = local_68 + iVar15 * 4;" (assignment_expression "local_68 = local_68 + iVar15 * 4" (identifier "local_68") (= "=") (binary_expression "local_68 + iVar15 * 4" (identifier "local_68") (+ "+") (binary_expression "iVar15 * 4" (identifier "iVar15") (* "*") (number_literal "4")))) (; ";")) (} "}"))) (goto_statement "goto LAB_00024eaa;" (goto "goto") (statement_identifier "LAB_00024eaa") (; ";")) (} "}"))) (goto_statement "goto LAB_0002554e;" (goto "goto") (statement_identifier "LAB_0002554e") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */

type_1 function_1(type_2 *hdr,char **bufp,type_3 *backend)

{
  type_4 *var_36;
  type_5 *pPVar2;
  type_6 var_84;
  type_7 sVar4;
  type_8 *pfVar5;
  type_9 *p_Var6;
  type_10 *var_51;
  type_11 *psVar8;
  type_10 *var_55;
  type_12 AVar10;
  type_13 *var_64;
  type_14 uVar12;
  type_15 *p_Var13;
  type_16 var_94;
  type_17 *p_Var15;
  type_18 var_63;
  type_4 bVar17;
  type_19 *var_93;
  type_7 sVar19;
  type_20 var_57;
  type_21 *ptag;
  type_22 *var_11;
  char *var_80;
  type_23 var_78;
  type_24 var_24;
  long lVar25;
  char *var_88;
  type_23 var_58;
  type_23 var_59;
  int var_42;
  type_25 *paVar30;
  type_26 *peVar31;
  type_27 *var_56;
  type_28 *var_50;
  type_29 sVar34;
  type_30 *var_83;
  type_31 *var_96;
  type_1 var_82;
  type_32 *var_101;
  type_11 *var_4;
  char cVar39;
  type_33 *var_19;
  type_33 *var_23;
  type_20 bVar42;
  type_34 *peVar43;
  type_24 var_37;
  type_35 *var_92;
  int var_29;
  type_36 *var_10;
  type_1 var_43;
  type_24 var_39;
  type_37 *var_53;
  type_20 *var_72;
  type_20 *var_77;
  type_38 *var_97;
  type_24 var_44;
  type_37 *var_85;
  char cVar56;
  type_24 var_38;
  type_20 *var_73;
  int var_30;
  type_37 *var_87;
  bool var_74;
  bool var_34;
  bool var_75;
  type_20 bVar64;
  type_39 var_21;
  type_39 var_61;
  type_19 *var_62;
  int var_60;
  type_38 *var_35;
  type_31 *var_27;
  type_37 *var_91;
  type_37 *var_25;
  type_37 *var_47;
  type_31 *var_26;
  type_19 *var_28;
  int var_48;
  type_30 *local_88;
  type_37 *var_90;
  char **local_78;
  char **local_74;
  type_10 *var_52;
  type_24 var_41;
  type_28 *local_64;
  type_30 *local_5c;
  type_37 *var_46;
  char *var_15;
  char *var_31;
  char *var_32;
  type_19 first;
  
  bVar64 = 0;
  var_44 = (type_24)backend->external_pdr_size;
  var_42 = *(int *)((int)&backend->external_pdr_size + 4);
  if (var_1 == (type_34 *)0x0) {
    var_2((char *)0x0,1,0);
  }
  sVar19 = (type_7)top_tag_head->first_tag;
  var_96 = cur_proc_ptr;
  while (cur_proc_ptr = var_96, (type_28 *)sVar19.f_scope != (type_28 *)0x0) {
    ptag = (type_21 *)(sVar19.f_tag)->hash_ptr;
    if ((sVar19.f_tag)->forward_ref != (type_27 *)0x0) {
      var_3(ptag,(type_21 *)&(sVar19.f_tag)->forward_ref);
      ptag = (type_21 *)(sVar19.f_tag)->hash_ptr;
    }
    sVar4 = (type_7)(sVar19.f_scope)->type;
    alloc_counts[5].total_free = alloc_counts[5].total_free + 1;
    ptag->basic_type = (bt_t)(sVar19.f_scope)->lsym;
    (sVar19.f_scope)->prev = (type_40 *)alloc_counts[5].free_list;
    alloc_counts[5].free_list = sVar19;
    sVar19 = sVar4;
    var_96 = cur_proc_ptr;
  }
  alloc_counts[7].total_free = alloc_counts[7].total_free + 1;
  sVar19 = top_tag_head;
  ((type_22 *)top_tag_head)->free = (type_40 *)alloc_counts[7].free_list;
  alloc_counts[7].free_list = sVar19;
  peVar43 = cur_file_ptr;
  cur_proc_ptr = (type_31 *)0x0;
  for (var_4 = symbol_rootP; var_4 != (type_11 *)0x0; var_4 = var_5(var_4)) {
    peVar31 = var_6(var_4);
    if (((peVar31->ecoff_symbol == (type_10 *)0x0) &&
        (peVar31 = var_6(var_4), peVar31->ecoff_file != (type_36 *)0x0)) &&
       (paVar30 = var_7(var_4), (paVar30->flags & 0x100) == 0)) {
      peVar31 = var_6(var_4);
      cur_file_ptr = peVar31->ecoff_file;
      var_21 = var_8(var_4);
      var_9((char *)0x0,st_Nil,sc_Nil,var_4,0,(type_29)var_21,0xfffff);
    }
  }
  var_34 = false;
  cur_proc_ptr = var_96;
  cur_file_ptr = peVar43;
  var_10 = var_1;
joined_r0x000235e4:
  if (var_10 != (type_34 *)0x0) {
    var_11 = var_10->cur_scope;
    peVar43 = var_10;
    cur_file_ptr = var_10;
    while (var_11 != (type_22 *)0x0) {
      while( true ) {
        var_11 = var_11->prev;
        if (var_11 == (type_40 *)0x0) {
          var_9((char *)0x0,st_End,sc_Text,(type_11 *)0x0,0,0,0);
          var_10 = var_10->next_file;
          goto joined_r0x000235e4;
        }
        peVar43->cur_scope = var_11;
        if ((var_34) || (peVar43->fake != 0)) break;
        var_34 = true;
        var_80 = (char *)var_12(0,"missing .end or .bend at end of file",5);
        var_13(var_80);
        var_11 = cur_file_ptr->cur_scope;
        peVar43 = cur_file_ptr;
        if (var_11 == (type_22 *)0x0) goto LAB_00023650;
      }
    }
LAB_00023650:
    var_10 = var_10->next_file;
    goto joined_r0x000235e4;
  }
  var_15 = (char *)var_14(0x2000);
  var_19 = first_lineno;
  var_62 = first_lineno;
  var_31 = var_15 + 0x2000;
  var_34 = var_16 == var_17;
  *(type_14 *)&hdr->cbLineOffset = 0;
  *(type_14 *)((int)&hdr->cbLineOffset + 4) = 0;
  hdr->ilineMax = 0;
  var_32 = var_15;
  if ((var_34) || (var_18 == (type_31 *)0x0)) {
    if (var_19 != (type_19 *)0x0) {
      var_19 = var_19->next;
      goto LAB_00023764;
    }
  }
  else if (var_19 != (type_19 *)0x0) {
    var_21 = var_8(var_18->sym->as_sym);
    var_78 = var_20(var_18->sym->as_sym);
    if ((int)(var_21 >> 0x20) + *(int *)((int)&var_78->vma + 4) +
        (type_24)var_22((type_24)var_21,(type_24)var_78->vma) == 0 && (type_24)var_21 + (int)var_78->vma == 0)
    {
      var_19 = var_19->next;
    }
    else {
      first.file = var_19->file;
      first.paddr = 0;
      first.proc = var_19->proc;
      first.lineno = 0;
      first.frag = &zero_address_frag;
      first.next = var_62;
      var_62 = &first;
    }
LAB_00023764:
    var_47 = (type_37 *)0x0;
    var_35 = (type_38 *)0x0;
    var_28 = (type_19 *)0x0;
    var_25 = (type_37 *)0x0;
    var_26 = (type_31 *)0x0;
LAB_000237a6:
    var_23 = var_19;
    if (var_23 == (type_33 *)0x0) {
      var_24 = 1;
LAB_000237e1:
      peVar43 = var_62->file;
      var_27 = var_62->proc;
      var_91 = (type_37 *)((int)var_47 + var_24);
      if ((type_37 *)peVar43 == var_25) {
        if (var_26 != var_27) {
          if (var_26 != (type_31 *)0x0) {
            (var_26->pdr).lnHigh = var_28->lineno;
          }
          goto LAB_000238a1;
        }
        if ((var_28 != (type_19 *)0x0) &&
           (var_29 = var_62->lineno - var_28->lineno, var_29 != 0)) {
          do {
            var_30 = var_24 - 1;
            if (var_30 < 0x10) {
              var_24 = 0;
            }
            else {
              var_24 = var_24 - 0x10;
              var_30 = 0xf;
            }
            if (var_29 + 7U < 0xf) {
              if (var_31 <= var_32) {
                var_32 = var_33(&var_15,&var_31,var_32,1);
              }
              var_35 = (type_38 *)((int)var_35 + 1);
              *var_32 = (char)var_29 * '\x10' + (char)var_30;
              var_32 = var_32 + 1;
              break;
            }
            if ((int)var_31 - (int)var_32 < 3) {
              var_32 = var_33(&var_15,&var_31,var_32,3);
            }
            *var_32 = (char)var_30 + -0x80;
            if (var_29 < -0x8000) {
              var_29 = var_29 + 0x8000;
              cVar56 = -0x80;
              cVar39 = '\0';
            }
            else {
              if (var_29 < 0x8000) goto code_r0x00024a60;
              var_29 = var_29 + -0x7fff;
              cVar56 = '\x7f';
              cVar39 = -1;
            }
            var_35 = (type_38 *)((int)var_35 + 3);
            var_80 = var_32 + 2;
            var_32[1] = cVar56;
            var_32 = var_32 + 3;
            *var_80 = cVar39;
          } while( true );
        }
      }
      else {
        var_34 = var_26 != var_27;
        if (var_26 != (type_31 *)0x0 && var_34) {
          (var_26->pdr).lnHigh = var_28->lineno;
          var_34 = var_26 != (type_31 *)0x0 && var_34;
        }
        lVar25 = 0;
        if (var_25 != (type_37 *)0x0) {
          var_47 = (type_37 *)0x0;
          var_36 = &((type_41 *)var_25)->cbLineOffset;
          bVar17 = *var_36;
          *(type_24 *)((int)&((type_41 *)var_25)->cbLine + 4) =
               -(type_24)(var_35 < (type_24)*var_36) -
               *(int *)((int)&((type_41 *)var_25)->cbLineOffset + 4);
          *(int *)&((type_41 *)var_25)->cbLine = (int)var_35 - (int)bVar17;
          ((type_41 *)var_25)->cline = (long)var_91;
          hdr->ilineMax = hdr->ilineMax + (int)var_91->type_20;
          lVar25 = ((type_41 *)var_25)->cline + ((type_41 *)var_25)->ilineBase;
          var_91 = (type_37 *)var_24;
        }
        (peVar43->fdr).ilineBase = lVar25;
        *(type_38 **)&(peVar43->fdr).cbLineOffset = var_35;
        *(type_14 *)((int)&(peVar43->fdr).cbLineOffset + 4) = 0;
        var_25 = (type_37 *)peVar43;
        if (var_34) {
LAB_000238a1:
          if (var_27 != (type_31 *)0x0) {
            (var_27->pdr).lnLow = var_62->lineno;
            var_36 = &((type_41 *)var_25)->cbLineOffset;
            bVar17 = *var_36;
            var_29 = *(int *)((int)&((type_41 *)var_25)->cbLineOffset + 4);
            *(int *)&(var_27->pdr).cbLineOffset = (int)var_35 - (int)*var_36;
            *(type_24 *)((int)&(var_27->pdr).cbLineOffset + 4) =
                 -(type_24)(var_35 < (type_24)bVar17) - var_29;
            (var_27->pdr).iline = (long)var_47;
          }
        }
        else {
          var_27 = var_26;
        }
      }
      goto LAB_000238d0;
    }
    pfVar5 = var_23->frag;
    var_39 = var_23->paddr + (int)pfVar5->fr_address;
    var_38 = *(int *)((int)&pfVar5->fr_address + 4) +
             (type_24)var_22(var_23->paddr,(type_24)pfVar5->fr_address);
    pfVar5 = var_62->frag;
    var_24 = var_62->paddr + (int)pfVar5->fr_address;
    var_37 = *(int *)((int)&pfVar5->fr_address + 4) +
             (type_24)var_22(var_62->paddr,(type_24)pfVar5->fr_address);
    if (var_37 < var_38 || var_37 - var_38 < (type_24)(var_24 < var_39)) {
      var_24 = var_39 - var_24 >> 2 | ((var_38 - var_37) - (type_24)(var_39 < var_24)) * 0x40000000;
      goto LAB_000237e1;
    }
    goto LAB_000237a0;
  }
  var_91 = (type_37 *)0x0;
  var_35 = (type_38 *)0x0;
LAB_00023a3f:
  local_74 = &var_31;
  local_78 = &var_15;
  hdr->ilineMax = hdr->ilineMax + (int)var_91;
  var_41 = var_40(backend,local_78,local_74,(type_1)var_35,&var_32);
  var_29 = *(int *)((int)&hdr->cbLineOffset + 4);
  *(type_24 *)&hdr->cbPdOffset = var_41;
  *(type_24 *)&hdr->cbLine = var_41 - (int)hdr->cbLineOffset;
  var_43 = proc_cnt;
  *(type_24 *)((int)&hdr->cbLine + 4) = -(type_24)(var_41 < (type_24)hdr->cbLineOffset) - var_29;
  *(type_14 *)((int)&hdr->cbPdOffset + 4) = 0;
  hdr->idnMax = 0;
  *(type_14 *)&hdr->cbDnOffset = 0;
  *(type_14 *)((int)&hdr->cbDnOffset + 4) = 0;
  hdr->ipdMax = var_43;
  var_37 = (int)var_31 - (int)(var_15 + var_41);
  var_24 = (int)var_37 >> 0x1f;
  var_39 = (int)((type_18)var_44 * (type_18)var_43 >> 0x20) + var_42 * var_43;
  if (var_24 < var_39 ||
      var_24 - var_39 < (type_24)(var_37 < (type_24)((type_18)var_44 * (type_18)var_43))) {
    var_33(local_78,local_74,var_15 + var_41,var_43 * var_44);
    var_43 = proc_cnt;
  }
  var_41 = var_43 * var_44 + var_41;
  var_44 = (type_24)backend->external_sym_size;
  var_25 = (type_37 *)(var_15 + var_41);
  *(type_24 *)&hdr->cbSymOffset = var_41;
  var_24 = *(type_24 *)((int)&backend->external_sym_size + 4);
  *(type_14 *)((int)&hdr->cbSymOffset + 4) = 0;
  p_Var6 = backend->swap_sym_out;
  if (file_desc.first != (type_30 *)0x0) {
    var_48 = 0;
    var_78 = (type_23)(var_45 + 0x180);
    var_83 = file_desc.first;
LAB_00023b80:
    local_5c = var_83;
    var_47 = local_5c->datum;
    if (local_5c->next == (type_42 *)0x0) {
      var_46 = (type_37 *)(var_47->file + file_desc.objects_last_page);
      if (var_46 <= var_47) {
        var_41 = var_41 + var_48 * var_44;
        lVar25 = var_49(var_41 - (int)hdr->cbSymOffset,
                           -(type_24)(var_41 < (type_24)hdr->cbSymOffset) -
                           *(int *)((int)&hdr->cbSymOffset + 4),(int)backend->external_sym_size,
                           *(type_14 *)((int)&backend->external_sym_size + 4));
        goto LAB_0002441d;
      }
    }
    else {
      var_46 = (type_37 *)(var_47->file + file_desc.objects_per_page);
      var_83 = local_5c->next;
      if (var_46 <= var_47) goto LAB_00023b80;
    }
LAB_00023bb7:
    var_47->ofile[0].isymBase = var_48;
    var_50 = var_47->type_28[4].same_block;
    if (var_50 != (type_28 *)0x0) {
      var_27 = (type_31 *)var_48;
LAB_00023bdc:
      local_64 = var_50;
      var_51 = (type_10 *)local_64->same_name;
      if ((type_28 *)local_64->hash_ptr == (type_28 *)0x0) {
        var_52 = var_51 + *(type_6 *)(var_47->type_20 + 0x9c);
        if (var_52 <= var_51) {
          var_48 = (int)var_27;
          var_50 = (type_28 *)((int)var_27 - var_47->ofile[0].isymBase);
          goto LAB_000243a4;
        }
      }
      else {
        var_52 = var_51 + *(type_6 *)(var_47->type_20 + 0x9a);
        var_50 = (type_28 *)local_64->hash_ptr;
        if (var_52 <= var_51) goto LAB_00023bdc;
      }
      var_53 = (type_37 *)var_51->file_ptr;
      do {
        if (var_53 != var_47) {
                    /* WARNING: Subroutine does not return */
          var_54("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");
        }
        var_4 = var_51->as_sym;
        if (var_4 == (type_11 *)0x0) {
          var_55 = var_51->begin_ptr;
          if (var_55 == (type_10 *)0x0) {
            var_56 = var_51->forward_ref;
joined_r0x000242a4:
            if (var_56 != (type_27 *)0x0) {
              var_91 = (type_37 *)((int)var_27 - var_48);
              goto LAB_00023ff8;
            }
          }
          else {
LAB_00023e89:
            var_42 = var_55->sym_index;
            if (var_42 == -1) {
                    /* WARNING: Subroutine does not return */
              var_54("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");
            }
            var_37 = *(type_24 *)&(var_51->ecoff_sym).asym.field_0xc & 0xfff | var_42 << 0xc;
            *(type_24 *)&(var_51->ecoff_sym).asym.field_0xc = var_37;
            if (((type_6)var_37 & 0x7c0) != 0x2c0) {
              (var_51->ecoff_sym).asym.iss = (var_55->ecoff_sym).asym.iss;
            }
            var_57 = (var_55->ecoff_sym).asym.field_0xc;
            if (((var_57 & 0x3f) + 0x39 & 0x3b) == 0) {
              var_91 = (type_37 *)((int)var_27 - var_48);
              *(type_24 *)&(var_55->ecoff_sym).asym.field_0xc =
                   *(type_24 *)&(var_55->ecoff_sym).asym.field_0xc & 0xfff |
                   ((int)var_91->type_20 + 1) * 0x1000;
              (*p_Var6)(stdoutput,&(var_55->ecoff_sym).asym,var_15 + var_42 * var_44 + var_41);
              if ((var_57 & 0x37) == 6) goto LAB_00024180;
              if (((var_57 & 0x3f) == 7) &&
                 ((*(type_6 *)&(var_51->ecoff_sym).asym.field_0xc & 0x7c0) != 0x2c0)) {
                if (var_4 == (type_11 *)0x0) {
                    /* WARNING: Subroutine does not return */
                  var_54("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");
                }
                if (var_51->proc_ptr == (type_13 *)0x0) {
                    /* WARNING: Subroutine does not return */
                  var_54("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");
                }
                psVar8 = var_51->proc_ptr->sym->as_sym;
                var_58 = var_20(var_4);
                var_59 = var_20(psVar8);
                if (var_58 != var_59) {
                  var_80 = (char *)var_12(0,".begin/.bend in different segments",5);
                  var_13(var_80);
                }
                var_21 = var_8(var_4);
                var_61 = var_8(psVar8);
                var_62 = (type_19 *)var_21;
                var_60 = (int)(var_21 >> 0x20);
                var_56 = var_51->forward_ref;
                *(type_24 *)&(var_51->ecoff_sym).asym.value = (int)var_62 - (type_24)var_61;
                *(type_24 *)((int)&(var_51->ecoff_sym).asym.value + 4) =
                     (var_60 - (int)(var_61 >> 0x20)) - (type_24)(var_62 < (type_24)var_61);
              }
              else {
                var_56 = var_51->forward_ref;
              }
            }
            else {
              if (var_55->index_ptr == (type_43 *)0x0) {
                    /* WARNING: Subroutine does not return */
                var_54("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");
              }
              var_91 = (type_37 *)((int)var_27 - var_48);
              (var_55->index_ptr->data).dnLow = (int)var_91->type_20 + 1;
              if ((var_57 & 0x37) == 6) {
LAB_00024180:
                if (var_4 == (type_11 *)0x0) {
                    /* WARNING: Subroutine does not return */
                  var_54("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");
                }
                if (var_55->as_sym == (type_11 *)0x0) {
                    /* WARNING: Subroutine does not return */
                  var_54("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");
                }
                var_58 = var_20(var_4);
                var_59 = var_20(var_55->as_sym);
                if (var_58 != var_59) {
                  var_80 = (char *)var_12(0,".begin/.bend in different segments",5);
                  var_13(var_80);
                }
                var_21 = var_8(var_4);
                var_61 = var_8(var_55->as_sym);
                var_63 = var_21 - var_61;
                if ((var_63 & 1) == 0) {
                  (var_51->ecoff_sym).asym.value = var_63;
                }
                else {
                  (var_51->ecoff_sym).asym.value = var_63 + 1;
                }
                paVar30 = var_7(var_55->as_sym);
                uVar12 = *(type_14 *)((int)&(var_51->ecoff_sym).asym.value + 4);
                *(int *)&paVar30[1].value = (int)(var_51->ecoff_sym).asym.value;
                *(type_14 *)((int)&paVar30[1].value + 4) = uVar12;
                var_56 = var_51->forward_ref;
                goto joined_r0x000242a4;
              }
              var_56 = var_51->forward_ref;
            }
joined_r0x000247a5:
            if (var_56 != (type_27 *)0x0) {
LAB_00023ff8:
              AVar10 = (type_12)var_47->file[0].file_index;
              do {
                var_97 = var_56->index_ptr;
                var_56->ifd_ptr->data = AVar10;
                (var_97->data).dnLow = (var_97->data).dnLow & 0xfffU | (int)var_91 << 0xc;
                var_56 = var_56->next;
              } while (var_56 != (type_27 *)0x0);
            }
          }
LAB_0002402d:
          var_37 = (int)var_31 - (int)var_25->type_20 >> 0x1f;
          if (var_37 < var_24 ||
              var_37 - var_24 < (type_24)((type_24)((int)var_31 - (int)var_25->type_20) < var_44)) {
            var_25 = (type_37 *)var_33(local_78,local_74,var_25->type_20,var_44);
          }
          (*p_Var6)(stdoutput,&(var_51->ecoff_sym).asym,var_25);
          var_25 = (type_37 *)((int)var_25 + var_44);
          var_51->sym_index = (long)var_27;
          var_64 = var_51->proc_ptr;
          if ((var_64 != (type_13 *)0x0) && (var_64->sym == var_51)) {
            (var_64->pdr).isym = (int)var_27 - var_48;
          }
          var_27 = (type_31 *)((int)var_27 + 1);
          if ((var_4 != (type_11 *)0x0) &&
             (peVar31 = var_6(var_4), peVar31->ecoff_symbol == var_51)) {
            if (((var_51->ecoff_sym).asym.field_0xc & 0x37) == 6) {
              *(type_24 *)&(var_51->ecoff_sym).asym.field_0xc =
                   *(type_24 *)&(var_51->ecoff_sym).asym.field_0xc & 0xfff |
                   (((int)var_27 - var_48) + -1) * 0x1000;
            }
            goto LAB_00024347;
          }
        }
        else {
          if ((*(type_6 *)&(var_51->ecoff_sym).asym.field_0xc & 0x7ff) == 0x47) {
            if (var_51->proc_ptr == (type_13 *)0x0) {
                    /* WARNING: Subroutine does not return */
              var_54("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");
            }
            psVar8 = var_51->proc_ptr->sym->as_sym;
            var_58 = var_20(var_4);
            var_59 = var_20(psVar8);
            if (var_58 != var_59) {
              var_80 = (char *)var_12(0,".begin/.bend in different segments",5);
              var_13(var_80);
            }
            var_21 = var_8(var_4);
            var_61 = var_8(psVar8);
            (var_51->ecoff_sym).asym.value = var_21 - var_61;
          }
          else {
            var_21 = var_8(var_4);
            var_58 = var_20(var_4);
            var_50 = *(type_28 **)&var_51->addend;
            var_37 = (int)&(*(type_28 **)&var_51->addend)->free + (type_24)var_21;
            bVar17 = var_58->vma;
            var_42 = *(int *)((int)&var_58->vma + 4);
            *(type_24 *)&(var_51->ecoff_sym).asym.value = var_37 + (int)var_58->vma;
            *(type_24 *)((int)&(var_51->ecoff_sym).asym.value + 4) =
                 (int)&(*(type_28 **)((int)&var_51->addend + 4))->free +
                 (type_24)var_22(var_37,(type_24)bVar17) +
                 var_42 + (type_24)var_22((type_24)var_21,(type_24)var_50) + (int)(var_21 >> 0x20);
          }
          var_42 = var_65(var_4);
          *(type_20 *)&var_51->ecoff_sym =
               *(type_20 *)&var_51->ecoff_sym & 0xfb | ((type_20)var_42 & 1) * '\x04';
          if ((((((var_51->ecoff_sym).asym.field_0xc & 0x3f) == 6) &&
               (var_42 = var_66(var_4), var_42 != 0)) &&
              (var_42 = var_67(var_4), var_42 == 0)) &&
             (var_42 = var_65(var_4), var_42 == 0)) {
            (var_51->ecoff_sym).asym.field_0xc = (var_51->ecoff_sym).asym.field_0xc & 0xc0 | 0xe;
          }
          if (((*(type_6 *)&(var_51->ecoff_sym).asym.field_0xc & 0x7ff) == 0) &&
             ((var_37 = *(type_24 *)&(var_51->ecoff_sym).asym.field_0xc >> 0xc,
              (var_37 & 0xfff00) != 0x8f300 || ((var_37 & 0xfffdf) != 0x8f3c0)))) {
            var_58 = var_20(var_4);
            var_77 = (type_20 *)var_58->name;
            if (((*(type_24 *)&(var_51->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300) ||
               (((var_42 = var_67(var_4), var_42 == 0 &&
                 (var_42 = var_65(var_4), var_42 == 0)) &&
                (var_42 = var_66(var_4), var_42 != 0)))) {
              var_57 = (var_58 == var_68) * '\x03' + 2;
            }
            else {
              paVar30 = var_7(var_4);
              var_57 = (-((paVar30->flags & 8) == 0) & 0xfbU) + 6;
            }
            var_42 = var_66(var_4);
            if (var_42 == 0) {
              peVar31 = var_6(var_4);
              var_42 = *(int *)((int)&peVar31->ecoff_extern_size + 4);
              var_39 = (type_24)peVar31->ecoff_extern_size;
              if ((var_42 == 0 && var_39 == 0) ||
                 (var_37 = var_69(stdoutput),
                 var_42 != 0 || (type_24)-var_42 < (type_24)(var_37 < var_39))) {
                bVar42 = 6;
              }
              else {
                *(type_24 *)&(var_51->ecoff_sym).asym.value = var_39;
                bVar42 = 0x15;
                *(int *)((int)&(var_51->ecoff_sym).asym.value + 4) = var_42;
              }
              paVar30 = var_7(var_4);
              var_37 = (type_24)bVar42;
              *(type_24 *)&paVar30[1].value = var_39;
              *(int *)((int)&paVar30[1].value + 4) = var_42;
            }
            else {
              var_42 = var_70(var_4);
              if (var_42 == 0) {
                var_37 = 1;
                if (var_58 != var_68) {
                  var_37 = 2;
                  var_34 = var_58 < var_71;
                  var_75 = var_58 == var_71;
                  if (!var_75) {
                    var_42 = 7;
                    var_37 = 0xf;
                    var_72 = var_77;
                    var_73 = (type_20 *)".rdata";
                    do {
                      if (var_42 == 0) break;
                      var_42 = var_42 + -1;
                      var_34 = *var_72 < *var_73;
                      var_75 = *var_72 == *var_73;
                      var_72 = var_72 + (type_24)bVar64 * -2 + 1;
                      var_73 = var_73 + (type_24)bVar64 * -2 + 1;
                    } while (var_75);
                    var_74 = false;
                    var_34 = (!var_34 && !var_75) == var_34;
                    if (!var_34) {
                      var_42 = 8;
                      var_72 = var_77;
                      var_73 = (type_20 *)".rodata";
                      do {
                        if (var_42 == 0) break;
                        var_42 = var_42 + -1;
                        var_74 = *var_72 < *var_73;
                        var_34 = *var_72 == *var_73;
                        var_72 = var_72 + (type_24)bVar64 * -2 + 1;
                        var_73 = var_73 + (type_24)bVar64 * -2 + 1;
                      } while (var_34);
                      var_75 = false;
                      var_34 = (!var_74 && !var_34) == var_74;
                      if (!var_34) {
                        var_42 = 7;
                        var_37 = 0xd;
                        var_72 = var_77;
                        var_73 = (type_20 *)".sdata";
                        do {
                          if (var_42 == 0) break;
                          var_42 = var_42 + -1;
                          var_75 = *var_72 < *var_73;
                          var_34 = *var_72 == *var_73;
                          var_72 = var_72 + (type_24)bVar64 * -2 + 1;
                          var_73 = var_73 + (type_24)bVar64 * -2 + 1;
                        } while (var_34);
                        if ((!var_75 && !var_34) != var_75) {
                          var_37 = 3;
                          var_34 = var_58 < var_76;
                          var_75 = var_58 == var_76;
                          if (!var_75) {
                            var_42 = 6;
                            var_37 = 0xe;
                            var_72 = (type_20 *)".sbss";
                            do {
                              if (var_42 == 0) break;
                              var_42 = var_42 + -1;
                              var_34 = *var_77 < *var_72;
                              var_75 = *var_77 == *var_72;
                              var_77 = var_77 + (type_24)bVar64 * -2 + 1;
                              var_72 = var_72 + (type_24)bVar64 * -2 + 1;
                            } while (var_75);
                            if ((!var_34 && !var_75) != var_34) {
                              var_37 = (type_24)(var_58 == var_78) * 3 + 2;
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
              else {
                var_21 = var_8(var_4);
                if (var_21 != 0) {
                  var_21 = var_8(var_4);
                  var_42 = (int)(var_21 >> 0x20);
                  var_39 = var_69(stdoutput);
                  var_37 = 0x12;
                  if (var_42 == 0 && (type_24)(var_39 < (type_24)var_21) <= (type_24)-var_42)
                  goto LAB_00023df1;
                }
                var_37 = 0x11;
              }
            }
LAB_00023df1:
            (var_51->ecoff_sym).asym.field_0xc =
                 (var_51->ecoff_sym).asym.field_0xc & 0xc0 | var_57 & 0x3f;
            *(type_6 *)&(var_51->ecoff_sym).asym.field_0xc =
                 *(type_6 *)&(var_51->ecoff_sym).asym.field_0xc & 0xf83f | (type_6)(var_37 << 6);
          }
          var_42 = var_67(var_4);
          if (((((var_42 == 0) && (var_42 = var_65(var_4), var_42 == 0)) &&
               (var_42 = var_66(var_4), var_42 != 0)) ||
              ((var_51->proc_ptr != (type_13 *)0x0 ||
               (((var_51->ecoff_sym).asym.field_0xc & 0x3f) == 0)))) ||
             ((*(type_24 *)&(var_51->ecoff_sym).asym.field_0xc >> 0xc & 0xfff00) == 0x8f300)) {
            var_42 = var_70(var_4);
            if (var_42 == 0) {
              if (((var_51->ecoff_sym).asym.field_0xc & 0x3f) != 8) {
                var_50 = (type_28 *)var_51->name;
                var_80 = var_79((char *)var_50,1);
                if (var_80 != (char *)0x0) goto LAB_00023e7a;
                sVar34 = var_81(&var_47->file[0].strings,var_47->file[0].str_hash,
                                    (char *)var_50,(type_44 **)0x0);
                (var_51->ecoff_sym).asym.iss = sVar34;
                var_55 = var_51->begin_ptr;
                if (var_55 != (type_10 *)0x0) goto LAB_00023e89;
                var_56 = var_51->forward_ref;
                var_91 = (type_37 *)((int)var_27 - var_48);
                goto joined_r0x000247a5;
              }
LAB_00023e7a:
              var_55 = var_51->begin_ptr;
              if (var_55 != (type_10 *)0x0) goto LAB_00023e89;
              var_56 = var_51->forward_ref;
              if (var_56 != (type_27 *)0x0) {
                var_91 = (type_37 *)((int)var_27 - var_48);
                goto LAB_00023ff8;
              }
              goto LAB_0002402d;
            }
          }
          else {
            var_70(var_4);
          }
          if (var_51->begin_ptr != (type_10 *)0x0) {
                    /* WARNING: Subroutine does not return */
            var_54("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");
          }
          if (var_51->forward_ref != (type_27 *)0x0) {
                    /* WARNING: Subroutine does not return */
            var_54("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");
          }
          peVar31 = var_6(var_4);
          if (var_51 == peVar31->ecoff_symbol) {
LAB_00024347:
            (var_51->ecoff_sym).ifd = var_47->file[0].file_index;
            var_42 = var_67(var_4);
            if ((var_42 != 0) || (var_42 = var_65(var_4), var_42 != 0)) {
              var_47->ubyte[0x44] = var_47->ubyte[0x44] & 0xdf;
            }
          }
        }
        if (var_52 <= var_51 + 1) goto LAB_00024380;
        var_53 = (type_37 *)var_51[1].file_ptr;
        var_51 = var_51 + 1;
      } while( true );
    }
    goto LAB_000243a4;
  }
  hdr->isymMax = 0;
LAB_0002554e:
  hdr->ioptMax = 0;
  *(type_14 *)&hdr->cbOptOffset = 0;
  *(type_14 *)((int)&hdr->cbOptOffset + 4) = 0;
  *(type_14 *)((int)&hdr->cbAuxOffset + 4) = 0;
  *(type_24 *)&hdr->cbAuxOffset = var_41;
LAB_00024eaa:
  var_82 = var_40(backend,local_78,local_74,var_41,(char **)0x0);
  hdr->iauxMax = var_82 - (int)hdr->cbAuxOffset >> 2 |
                 (-(type_24)(var_82 < (type_24)hdr->cbAuxOffset) - *(int *)((int)&hdr->cbAuxOffset + 4)) *
                 0x40000000;
  *(type_1 *)&hdr->cbSsOffset = var_82;
  var_83 = file_desc.first;
  var_47 = (type_37 *)file_desc.first;
  *(type_14 *)((int)&hdr->cbSsOffset + 4) = 0;
  var_43 = var_82;
  if (var_83 != (type_30 *)0x0) {
    var_27 = (type_31 *)0x0;
    do {
      var_84 = file_desc.objects_last_page;
      if (*(type_42 **)((int)var_47 + 4) != (type_42 *)0x0) {
        var_84 = file_desc.objects_per_page;
      }
      var_53 = *(type_37 **)((int)var_47 + 8);
      var_85 = (type_37 *)(var_53->file + var_84);
      var_87 = (type_37 *)*(type_42 **)((int)var_47 + 4);
      if (var_53 < var_85) {
        do {
          var_53->shash[0].sym_ptr = (type_35 *)var_27;
          var_83 = var_53->file[0].strings.first;
          var_80 = var_15 + var_43;
          if (var_83 == (type_30 *)0x0) {
            var_10 = (type_36 *)0x0;
            lVar25 = 0;
          }
          else {
            var_10 = (type_36 *)0x0;
            do {
              if (var_83->next == (type_42 *)0x0) {
                var_84 = var_53->ofile[1].ipdFirst;
              }
              else {
                var_84 = *(type_6 *)(var_53->type_20 + 0x86);
              }
              var_44 = (type_24)var_84;
              if ((type_24)((int)var_31 - (int)var_80) < var_44) {
                var_80 = var_33(local_78,local_74,var_80,var_44);
              }
              var_10 = (type_36 *)((int)&(var_10->fdr).adr + var_44);
              var_86(var_80,var_83->datum,var_44);
              var_83 = var_83->next;
              var_80 = var_80 + var_44;
            } while (var_83 != (type_42 *)0x0);
            var_27 = (type_31 *)((int)&(var_10->fdr).adr + (int)&var_27->sym);
            lVar25 = (int)var_10 >> 0x1f;
            var_43 = (int)&((type_35 *)var_27)->name + var_82;
          }
          var_53->sym[0].file_ptr = var_10;
          var_87 = (type_37 *)(var_53->type_20 + 0x294);
          var_53->lineno[0].lineno = lVar25;
          var_53 = var_87;
        } while (var_87 < var_85);
        var_87 = (type_37 *)*(type_42 **)((int)var_47 + 4);
      }
      var_47 = var_87;
    } while (var_47 != (type_37 *)0x0);
  }
  var_47 = (type_37 *)var_40(backend,local_78,local_74,var_43,(char **)0x0);
  var_44 = *(type_24 *)((int)&backend->external_fdr_size + 4);
  hdr->crfd = 0;
  hdr->issMax = (int)var_47->type_20 - (int)hdr->cbSsOffset;
  *(type_14 *)&hdr->cbRfdOffset = 0;
  *(type_14 *)((int)&hdr->cbRfdOffset + 4) = 0;
  *(type_37 **)&hdr->cbFdOffset = var_47;
  var_80 = var_15 + (int)var_47;
  *(type_14 *)((int)&hdr->cbFdOffset + 4) = 0;
  p_Var15 = backend->swap_fdr_out;
  var_24 = (type_24)backend->external_fdr_size;
  if (file_desc.first == (type_30 *)0x0) {
    lVar25 = 0;
  }
  else {
    var_35 = (type_38 *)0x0;
    var_96 = (type_31 *)file_desc.first;
LAB_000251e2:
    do {
      var_26 = var_96;
      var_53 = *(type_37 **)((int)var_26 + 8);
      var_88 = var_80;
      if (*(type_42 **)&var_26->pdr == (type_42 *)0x0) {
        var_87 = (type_37 *)(var_53->file + file_desc.objects_last_page);
        if (var_87 <= var_53) {
          var_47 = (type_37 *)((int)var_47->type_20 + (int)var_35 * var_24);
          lVar25 = var_49((int)var_47 - (int)hdr->cbFdOffset,
                             -(type_24)(var_47 < (type_24)hdr->cbFdOffset) -
                             *(int *)((int)&hdr->cbFdOffset + 4),(int)backend->external_fdr_size,
                             *(type_14 *)((int)&backend->external_fdr_size + 4));
          goto LAB_000252e8;
        }
      }
      else {
        var_87 = (type_37 *)(var_53->file + file_desc.objects_per_page);
        var_96 = (type_31 *)*(type_42 **)&var_26->pdr;
        if (var_87 <= var_53) goto LAB_000251e2;
      }
      do {
        var_37 = (int)var_31 - (int)var_88 >> 0x1f;
        if (var_37 < var_44 || var_37 - var_44 < (type_24)((type_24)((int)var_31 - (int)var_88) < var_24)
           ) {
          var_88 = var_33(local_78,local_74,var_88,var_24);
        }
        var_80 = var_88 + var_24;
        var_85 = (type_37 *)(var_53->type_20 + 0x294);
        (*p_Var15)(stdoutput,(type_41 *)var_53,var_88);
        var_35 = (type_38 *)((int)var_35 + 1);
        var_88 = var_80;
        var_53 = var_85;
      } while (var_85 < var_87);
      var_96 = (type_31 *)*(type_42 **)&var_26->pdr;
    } while (*(type_42 **)&var_26->pdr != (type_42 *)0x0);
    var_47 = (type_37 *)((int)var_47->type_20 + (int)var_35 * var_24);
    lVar25 = var_49((int)var_47 - (int)hdr->cbFdOffset,
                       -(type_24)(var_47 < (type_24)hdr->cbFdOffset) -
                       *(int *)((int)&hdr->cbFdOffset + 4),(int)backend->external_fdr_size,
                       *(type_14 *)((int)&backend->external_fdr_size + 4));
  }
LAB_000252e8:
  hdr->ifdMax = lVar25;
  hdr->issExtMax = 0;
  var_4 = symbol_rootP;
  *(type_14 *)&hdr->cbSsExtOffset = 0;
  *(type_14 *)((int)&hdr->cbSsExtOffset + 4) = 0;
  hdr->iextMax = 0;
  *(type_14 *)&hdr->cbExtOffset = 0;
  *(type_14 *)((int)&hdr->cbExtOffset + 4) = 0;
  for (; var_4 != (type_11 *)0x0; var_4 = var_5(var_4)) {
    peVar31 = var_6(var_4);
    if (peVar31->ecoff_symbol != (type_10 *)0x0) {
      var_42 = var_67(var_4);
      if (((var_42 == 0) && (var_42 = var_65(var_4), var_42 == 0)) &&
         (var_42 = var_66(var_4), var_42 != 0)) {
        peVar31 = var_6(var_4);
        var_51 = peVar31->ecoff_symbol;
        var_44 = *(type_24 *)&(var_51->ecoff_sym).asym.field_0xc;
        *(type_14 *)&(var_51->ecoff_sym).asym.value = 0;
        *(type_14 *)((int)&(var_51->ecoff_sym).asym.value + 4) = 0;
        *(type_24 *)&(var_51->ecoff_sym).asym.field_0xc = var_44 & 0x800 | 0xfffff000;
      }
      peVar31 = var_6(var_4);
      var_89(var_4,&peVar31->ecoff_symbol->ecoff_sym);
    }
  }
  if (((int)backend->debug_align - 1U & (type_24)var_47) == 0) {
    hdr->vstamp = 0x30b;
    *bufp = var_15;
    return (type_1)var_47;
  }
                    /* WARNING: Subroutine does not return */
  var_54("../../gas/ecoff.c",0x129d,"ecoff_build_debug");
code_r0x00024a60:
  var_35 = (type_38 *)((int)var_35 + 3);
  var_80 = var_32 + 2;
  var_32[1] = (char)((type_24)var_29 >> 8);
  var_32 = var_32 + 3;
  *var_80 = (char)var_29;
LAB_000238d0:
  if (0 < (int)var_24) {
    var_24 = var_24 - 1;
    var_35 = (type_38 *)((int)var_35 + 1);
    var_37 = (var_24 >> 4) + (int)var_35;
    if (var_31 <= var_32) goto LAB_00023925;
    while (var_80 = var_32 + 1, var_88 = var_32, var_32 = var_80, 0xf < var_24) {
      while( true ) {
        var_24 = var_24 - 0x10;
        *var_88 = '\x0f';
        if ((type_38 *)var_37 == var_35) goto LAB_00023953;
        var_35 = (type_38 *)((int)var_35 + 1);
        if (var_32 < var_31) break;
LAB_00023925:
        var_88 = var_33(&var_15,&var_31,var_32,1);
        var_32 = var_88 + 1;
        if (var_24 < 0x10) goto LAB_00023944;
      }
    }
LAB_00023944:
    *var_88 = (char)var_24;
  }
LAB_00023953:
  var_23 = var_62->next;
  if (var_23 == (type_33 *)0x0) goto LAB_00023a10;
  var_47 = var_91;
  var_28 = var_62;
  var_26 = var_27;
LAB_000237a0:
  var_19 = var_23->next;
  var_62 = var_23;
  goto LAB_000237a6;
LAB_00023a10:
  if (var_27 != (type_31 *)0x0) {
    (var_27->pdr).lnHigh = var_62->lineno;
  }
  if (var_25 != (type_37 *)0x0) {
    var_36 = &((type_41 *)var_25)->cbLineOffset;
    *(int *)&((type_41 *)var_25)->cbLine = (int)var_35 - (int)*var_36;
    *(type_24 *)((int)&((type_41 *)var_25)->cbLine + 4) =
         -(type_24)(var_35 < (type_24)*var_36) - *(int *)((int)&((type_41 *)var_25)->cbLineOffset + 4);
    ((type_41 *)var_25)->cline = (long)var_91;
  }
  goto LAB_00023a3f;
LAB_00024380:
  var_50 = (type_28 *)local_64->hash_ptr;
  if ((type_28 *)local_64->hash_ptr == (type_28 *)0x0) goto code_r0x00024393;
  goto LAB_00023bdc;
code_r0x00024393:
  var_50 = (type_28 *)((int)var_27 - var_47->ofile[0].isymBase);
  var_48 = (int)var_27;
LAB_000243a4:
  var_47->sym[0].index_ptr = (type_43 *)var_50;
  var_47 = (type_37 *)(var_47->type_20 + 0x294);
  if (var_46 <= var_47) goto code_r0x000243bf;
  goto LAB_00023bb7;
code_r0x000243bf:
  var_83 = local_5c->next;
  if (local_5c->next == (type_42 *)0x0) goto code_r0x000243ce;
  goto LAB_00023b80;
code_r0x000243ce:
  var_41 = var_41 + var_48 * var_44;
  lVar25 = var_49(var_41 - (int)hdr->cbSymOffset,
                     -(type_24)(var_41 < (type_24)hdr->cbSymOffset) -
                     *(int *)((int)&hdr->cbSymOffset + 4),(int)backend->external_sym_size,
                     *(type_14 *)((int)&backend->external_sym_size + 4));
LAB_0002441d:
  var_51 = (type_10 *)file_desc.first;
  hdr->isymMax = lVar25;
  var_80 = var_15 + (int)hdr->cbPdOffset;
  var_44 = (type_24)backend->external_pdr_size;
  var_24 = *(type_24 *)((int)&backend->external_pdr_size + 4);
  p_Var13 = backend->swap_pdr_out;
  if (var_51 != (type_10 *)0x0) {
    var_84 = 0;
LAB_00024474:
    do {
      var_52 = var_51;
      var_91 = *(type_37 **)&var_52->addend;
      if ((type_42 *)var_52->as_sym == (type_42 *)0x0) {
        var_90 = (type_37 *)(var_91->file + file_desc.objects_last_page);
        if (var_90 <= var_91) break;
      }
      else {
        var_90 = (type_37 *)(var_91->file + file_desc.objects_per_page);
        var_51 = (type_10 *)var_52->as_sym;
        if (var_90 <= var_91) goto LAB_00024474;
      }
      do {
        var_34 = true;
        var_91->ofile[0].ipdFirst = var_84;
        var_83 = var_91->file[0].procs.first;
        if (var_83 != (type_30 *)0x0) {
LAB_000244d8:
          do {
            local_88 = var_83;
            if (local_88->next == (type_42 *)0x0) {
              var_53 = local_88->datum;
              var_25 = (type_37 *)((int)var_53 + (type_24)*(type_6 *)(var_91->type_20 + 0xb0) * 0x44);
              if (var_25 <= var_53) break;
            }
            else {
              var_53 = local_88->datum;
              var_25 = (type_37 *)((int)var_53 + (type_24)*(type_6 *)(var_91->type_20 + 0xae) * 0x44);
              var_83 = local_88->next;
              if (var_25 <= var_53) goto LAB_000244d8;
            }
            do {
              var_4 = (var_53->proc[0].sym)->as_sym;
              var_21 = var_8(var_4);
              var_78 = var_20(var_4);
              var_92 = (type_35 *)((int)var_21 + (int)var_78->vma);
              if (var_34) {
                var_42 = 0;
                var_91->proc[0].sym = var_92;
                var_29 = 0;
                var_91->sym[0].as_sym = (type_11 *)0x0;
              }
              else {
                var_42 = (int)var_92 - var_91->aux[0].type;
                var_29 = -(type_24)(var_92 < var_91->proc[0].sym) - var_91->dense[0].index;
              }
              *(int *)((int)var_53 + 4) = var_42;
              *(int *)((int)var_53 + 8) = var_29;
              var_37 = (int)var_31 - (int)var_80 >> 0x1f;
              if (var_37 < var_24 ||
                  var_37 - var_24 < (type_24)((type_24)((int)var_31 - (int)var_80) < var_44)) {
                var_80 = var_33(local_78,local_74,var_80,var_44);
              }
              pPVar2 = (type_5 *)((int)var_53 + 4);
              var_53 = (type_37 *)((int)var_53 + 0x44);
              (*p_Var13)(stdoutput,pPVar2,var_80);
              var_80 = var_80 + var_44;
              var_34 = false;
              var_84 = var_84 + 1;
            } while (var_53 < var_25);
            var_83 = local_88->next;
          } while (local_88->next != (type_42 *)0x0);
          var_83 = (type_30 *)(type_24)(type_6)(var_84 - var_91->ofile[0].ipdFirst);
        }
        var_91->ofile[0].cpd = (short)var_83;
        var_91 = (type_37 *)(var_91->type_20 + 0x294);
      } while (var_91 < var_90);
      var_51 = (type_10 *)var_52->as_sym;
    } while ((type_42 *)var_52->as_sym != (type_42 *)0x0);
    var_93 = (type_19 *)file_desc.first;
    hdr->ioptMax = 0;
    *(type_14 *)&hdr->cbOptOffset = 0;
    *(type_14 *)((int)&hdr->cbOptOffset + 4) = 0;
    *(type_14 *)((int)&hdr->cbAuxOffset + 4) = 0;
    *(type_24 *)&hdr->cbAuxOffset = var_41;
    var_94 = stdoutput->xvec->byteorder;
    var_101 = (type_32 *)(var_15 + var_41);
    if (var_93 != (type_19 *)0x0) {
      var_42 = 0;
LAB_00024d54:
      do {
        var_28 = var_93;
        var_25 = (type_37 *)var_28->proc;
        if ((type_42 *)var_28->file == (type_42 *)0x0) {
          var_47 = (type_37 *)(var_25->file + file_desc.objects_last_page);
          if (var_47 <= var_25) break;
        }
        else {
          var_47 = (type_37 *)(var_25->file + file_desc.objects_per_page);
          var_93 = (type_19 *)var_28->file;
          if (var_47 <= var_25) goto LAB_00024d54;
        }
        do {
          var_25->ofile[0].iauxBase = var_42;
          var_25->ubyte[0x44] = var_25->ubyte[0x44] & 0x7f | (var_94 == var_95) << 7;
          var_96 = (type_31 *)var_25->type_27[0xb].free;
          if (var_96 != (type_31 *)0x0) {
LAB_00024dd0:
            do {
              var_27 = var_96;
              var_97 = *(type_38 **)((int)var_27 + 8);
              if (*(type_27 **)&var_27->pdr == (type_27 *)0x0) {
                var_35 = var_97 + *(type_6 *)(var_25->type_20 + 0xc4);
                if (var_35 <= var_97) break;
              }
              else {
                var_35 = var_97 + *(type_6 *)(var_25->type_20 + 0xc2);
                var_96 = (type_31 *)*(type_27 **)&var_27->pdr;
                if (var_35 <= var_97) goto LAB_00024dd0;
              }
              do {
                if ((type_24)((int)var_31 - (int)var_101) < 4) {
                  var_101 = (type_32 *)var_33(local_78,local_74,(char *)var_101,4);
                }
                var_29 = var_98(var_94 == var_95,0);
                switch(var_97->type) {
                case aux_tir:
                  (*backend->swap_tir_out)(var_29,&(var_97->data).ti,var_101);
                  break;
                case aux_rndx:
                  (*backend->swap_rndx_out)(var_29,&(var_97->data).rndx,(type_45 *)var_101);
                  break;
                case aux_dnLow:
                case aux_dnHigh:
                case aux_isym:
                case aux_iss:
                case aux_width:
                case aux_count:
                  var_29 = (var_97->data).dnLow;
                  if (var_94 == var_95) {
                    var_99(var_29,var_29 >> 0x1f,var_101);
                  }
                  else {
                    var_100(var_29,var_29 >> 0x1f,var_101);
                  }
                }
                var_101 = var_101 + 1;
                var_42 = var_42 + 1;
                var_97 = var_97 + 1;
              } while (var_97 < var_35);
              var_96 = (type_31 *)*(type_27 **)&var_27->pdr;
            } while (*(type_27 **)&var_27->pdr != (type_27 *)0x0);
            var_96 = (type_31 *)(var_42 - var_25->ofile[0].iauxBase);
          }
          var_25->type_27[3].ifd_ptr = (type_38 *)var_96;
          var_25 = (type_37 *)(var_25->type_20 + 0x294);
        } while (var_25 < var_47);
        var_93 = (type_19 *)var_28->file;
      } while ((type_42 *)var_28->file != (type_42 *)0x0);
      var_41 = var_41 + var_42 * 4;
    }
    goto LAB_00024eaa;
  }
  goto LAB_0002554e;
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */

uint MASKED(int param_1,undefined4 *param_2,int param_3)

{
  char *pcVar1;
  ushort uVar2;
  int *piVar3;
  undefined4 *****pppppuVar4;
  code *pcVar5;
  undefined4 *puVar6;
  uint *puVar7;
  undefined1 uVar8;
  short sVar9;
  ulonglong uVar10;
  byte bVar11;
  int iVar12;
  undefined4 uVar13;
  char *pcVar14;
  int iVar15;
  uint uVar16;
  undefined4 *****pppppuVar17;
  undefined4 *****pppppuVar18;
  char *pcVar19;
  undefined4 *puVar20;
  int iVar21;
  undefined4 uVar22;
  undefined4 *puVar23;
  char *pcVar24;
  int *piVar25;
  int iVar26;
  undefined4 ******ppppppuVar27;
  char cVar28;
  undefined4 *******pppppppuVar29;
  undefined4 *******pppppppuVar30;
  byte bVar31;
  uint uVar32;
  uint uVar33;
  byte *pbVar34;
  byte *pbVar35;
  uint uVar36;
  char cVar37;
  uint uVar38;
  byte *pbVar39;
  bool bVar40;
  bool bVar41;
  bool bVar42;
  byte bVar43;
  undefined8 uVar44;
  longlong lVar45;
  longlong lVar46;
  undefined4 *******local_b4;
  undefined4 *****local_ac;
  undefined4 ******local_a8;
  undefined4 *****local_a4;
  undefined4 ******local_a0;
  undefined4 *****local_9c;
  undefined4 ******local_98;
  undefined4 *******local_94;
  int local_8c;
  uint local_88;
  uint *local_7c;
  undefined4 *local_70;
  uint local_68;
  int local_64;
  int local_5c;
  uint local_54;
  char *local_38;
  undefined4 *******local_34;
  undefined4 ******local_30;
  undefined4 ******local_2c;
  undefined4 *local_28;
  undefined4 local_24;
  undefined4 local_20;
  undefined4 uStack_14;
  
  bVar43 = 0;
  uStack_14 = 0x23469;
  uVar36 = *(uint *)(param_3 + 0x1c);
  iVar26 = *(int *)(param_3 + 0x20);
  if (DAT_00080ca0 == 0) {
    FUN_00020ec0();
  }
  piVar25 = *(int **)(DAT_000809e4 + 8);
  uVar13 = DAT_000809ec;
  while (DAT_000809ec = uVar13, piVar25 != (int *)0x0) {
    iVar15 = piVar25[1];
    if (piVar25[4] != 0) {
      FUN_00020e40();
      iVar15 = piVar25[1];
    }
    piVar3 = (int *)piVar25[3];
    DAT_00080aa0 = DAT_00080aa0 + 1;
    *(int *)(iVar15 + 0x14) = piVar25[2];
    *piVar25 = DAT_00080a94;
    DAT_00080a94 = (int)piVar25;
    piVar25 = piVar3;
    uVar13 = DAT_000809ec;
  }
  DAT_00080ad8 = DAT_00080ad8 + 1;
  iVar15 = DAT_000809e4;
  *(int *)(DAT_000809e4 + 4) = DAT_00080acc;
  DAT_00080acc = iVar15;
  iVar21 = DAT_000809f0;
  DAT_000809ec = 0;
  for (iVar15 = DAT_000816a4; iVar15 != 0; iVar15 = FUN_00040c00(iVar15)) {
    iVar12 = FUN_00041590(iVar15);
    if (((*(int *)(iVar12 + 0x10) == 0) &&
        (iVar12 = FUN_00041590(iVar15), *(int *)(iVar12 + 0xc) != 0)) &&
       (iVar12 = FUN_000414f0(iVar15), (*(byte *)(iVar12 + 0x11) & 1) == 0)) {
      iVar12 = FUN_00041590(iVar15);
      DAT_000809f0 = *(int *)(iVar12 + 0xc);
      uVar22 = FUN_0003fad0(iVar15);
      FUN_00020930(iVar15,0,0,uVar22,0xfffff);
    }
  }
  uVar8 = false;
  DAT_000809ec = uVar13;
  DAT_000809f0 = iVar21;
  iVar15 = DAT_00080ca0;
joined_r0x000235e4:
  if (iVar15 != 0) {
    piVar25 = *(int **)(iVar15 + 0x6c);
    iVar21 = iVar15;
    DAT_000809f0 = iVar15;
    while (piVar25 != (int *)0x0) {
      while( true ) {
        piVar25 = (int *)*piVar25;
        if (piVar25 == (int *)0x0) {
          FUN_00020930(0,0,0,0,0);
          iVar15 = *(int *)(iVar15 + 200);
          goto joined_r0x000235e4;
        }
        *(int **)(iVar21 + 0x6c) = piVar25;
        if (((bool)uVar8) || (*(int *)(iVar21 + 0x60) != 0)) break;
        uVar8 = true;
        uVar13 = dcgettext(0,"missing .end or .bend at end of file",5);
        FUN_00031540(uVar13);
        piVar25 = *(int **)(DAT_000809f0 + 0x6c);
        iVar21 = DAT_000809f0;
        if (piVar25 == (int *)0x0) goto LAB_00023650;
      }
    }
LAB_00023650:
    iVar15 = *(int *)(iVar15 + 200);
    goto joined_r0x000235e4;
  }
  pcVar14 = (char *)xmalloc(0x2000);
  pppppppuVar29 = DAT_00080c9c;
  pcVar1 = pcVar14 + 0x2000;
  bVar41 = DAT_00080758 == 3;
  *(undefined4 *)(param_1 + 0x10) = 0;
  *(undefined4 *)(param_1 + 0x14) = 0;
  *(undefined4 *)(param_1 + 4) = 0;
  local_38 = pcVar14;
  local_b4 = pppppppuVar29;
  if ((bVar41) || (DAT_000809e8 == (int *)0x0)) {
    if (pppppppuVar29 != (undefined4 *******)0x0) {
      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;
      goto LAB_00023764;
    }
  }
  else if (pppppppuVar29 != (undefined4 *******)0x0) {
    uVar44 = FUN_0003fad0(*(undefined4 *)(*DAT_000809e8 + 4));
    iVar15 = FUN_0003e1d0(*(undefined4 *)(*DAT_000809e8 + 4));
    if ((int)((ulonglong)uVar44 >> 0x20) + *(int *)(iVar15 + 0x20) +
        (uint)CARRY4((uint)uVar44,*(uint *)(iVar15 + 0x1c)) == 0 &&
        (uint)uVar44 + *(uint *)(iVar15 + 0x1c) == 0) {
      pppppppuVar29 = (undefined4 *******)*pppppppuVar29;
    }
    else {
      local_30 = pppppppuVar29[1];
      local_24 = 0;
      local_2c = pppppppuVar29[2];
      local_20 = 0;
      local_28 = &DAT_000813a0;
      local_b4 = &local_34;
      local_34 = pppppppuVar29;
    }
LAB_00023764:
    local_9c = (undefined4 *****)0x0;
    local_ac = (undefined4 *****)0x0;
    local_94 = (undefined4 *******)0x0;
    local_a0 = (undefined4 ******)0x0;
    local_98 = (undefined4 ******)0x0;
LAB_000237a6:
    pppppppuVar30 = pppppppuVar29;
    if (pppppppuVar30 == (undefined4 *******)0x0) {
      pppppuVar17 = (undefined4 *****)0x1;
LAB_000237e1:
      ppppppuVar27 = local_b4[1];
      local_a8 = local_b4[2];
      local_a4 = (undefined4 *****)((int)local_9c + (int)pppppuVar17);
      if (ppppppuVar27 == local_a0) {
        if (local_98 != local_a8) {
          if (local_98 != (undefined4 ******)0x0) {
            local_98[0xd] = local_94[5];
          }
          goto LAB_000238a1;
        }
        if ((local_94 != (undefined4 *******)0x0) &&
           (iVar15 = (int)local_b4[5] - (int)local_94[5], iVar15 != 0)) {
          do {
            iVar21 = (int)pppppuVar17 - 1;
            if (iVar21 < 0x10) {
              pppppuVar17 = (undefined4 *****)0x0;
            }
            else {
              pppppuVar17 = pppppuVar17 + -4;
              iVar21 = 0xf;
            }
            if (iVar15 + 7U < 0xf) {
              if (pcVar1 <= local_38) {
                local_38 = (char *)FUN_0001ff00(1);
              }
              local_ac = (undefined4 *****)((int)local_ac + 1);
              *local_38 = (char)iVar15 * '\x10' + (char)iVar21;
              local_38 = local_38 + 1;
              break;
            }
            if ((int)pcVar1 - (int)local_38 < 3) {
              local_38 = (char *)FUN_0001ff00(3);
            }
            *local_38 = (char)iVar21 + -0x80;
            if (iVar15 < -0x8000) {
              iVar15 = iVar15 + 0x8000;
              cVar37 = -0x80;
              cVar28 = '\0';
            }
            else {
              if (iVar15 < 0x8000) goto code_r0x00024a60;
              iVar15 = iVar15 + -0x7fff;
              cVar37 = '\x7f';
              cVar28 = -1;
            }
            local_ac = (undefined4 *****)((int)local_ac + 3);
            pcVar24 = local_38 + 2;
            local_38[1] = cVar37;
            local_38 = local_38 + 3;
            *pcVar24 = cVar28;
          } while( true );
        }
      }
      else {
        bVar41 = local_98 != local_a8;
        if (local_98 != (undefined4 ******)0x0 && bVar41) {
          local_98[0xd] = local_94[5];
          bVar41 = local_98 != (undefined4 ******)0x0 && bVar41;
        }
        pppppuVar18 = (undefined4 *****)0x0;
        if (local_a0 != (undefined4 ******)0x0) {
          local_9c = (undefined4 *****)0x0;
          local_a0[0x15] =
               (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);
          local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);
          local_a0[9] = local_a4;
          *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;
          pppppuVar18 = (undefined4 *****)((int)local_a0[9] + (int)local_a0[8]);
          local_a4 = pppppuVar17;
        }
        ppppppuVar27[8] = pppppuVar18;
        ppppppuVar27[0x12] = local_ac;
        ppppppuVar27[0x13] = (undefined4 *****)0x0;
        local_a0 = ppppppuVar27;
        if (bVar41) {
LAB_000238a1:
          if (local_a8 != (undefined4 ******)0x0) {
            local_a8[0xc] = local_b4[5];
            pppppuVar18 = local_a0[0x12];
            pppppuVar4 = local_a0[0x13];
            local_a8[0xe] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);
            local_a8[0xf] = (undefined4 *****)(-(uint)(local_ac < pppppuVar18) - (int)pppppuVar4);
            local_a8[4] = local_9c;
          }
        }
        else {
          local_a8 = local_98;
        }
      }
      goto LAB_000238d0;
    }
    ppppppuVar27 = pppppppuVar30[3];
    uVar33 = (int)pppppppuVar30[4] + (int)*ppppppuVar27;
    uVar38 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)pppppppuVar30[4],(uint)*ppppppuVar27);
    ppppppuVar27 = local_b4[3];
    uVar16 = (int)local_b4[4] + (int)*ppppppuVar27;
    uVar32 = (int)ppppppuVar27[1] + (uint)CARRY4((uint)local_b4[4],(uint)*ppppppuVar27);
    if (uVar32 < uVar38 || uVar32 - uVar38 < (uint)(uVar16 < uVar33)) {
      pppppuVar17 = (undefined4 *****)
                    (uVar33 - uVar16 >> 2 |
                    ((uVar38 - uVar32) - (uint)(uVar33 < uVar16)) * 0x40000000);
      goto LAB_000237e1;
    }
    goto LAB_000237a0;
  }
  local_a4 = (undefined4 *****)0x0;
  local_ac = (undefined4 *****)0x0;
LAB_00023a3f:
  *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (int)local_a4;
  local_68 = FUN_0001ff70(local_ac,&local_38);
  *(uint *)(param_1 + 0x28) = local_68;
  *(uint *)(param_1 + 8) = local_68 - *(uint *)(param_1 + 0x10);
  uVar16 = DAT_00080ca4;
  *(uint *)(param_1 + 0xc) =
       -(uint)(local_68 < *(uint *)(param_1 + 0x10)) - *(int *)(param_1 + 0x14);
  *(undefined4 *)(param_1 + 0x2c) = 0;
  *(undefined4 *)(param_1 + 0x18) = 0;
  *(undefined4 *)(param_1 + 0x1c) = 0;
  *(undefined4 *)(param_1 + 0x20) = 0;
  *(uint *)(param_1 + 0x24) = uVar16;
  uVar32 = (int)pcVar1 - (int)(pcVar14 + local_68) >> 0x1f;
  uVar33 = (int)((ulonglong)uVar36 * (ulonglong)uVar16 >> 0x20) + iVar26 * uVar16;
  if (uVar32 < uVar33 ||
      uVar32 - uVar33 <
      (uint)((uint)((int)pcVar1 - (int)(pcVar14 + local_68)) <
            (uint)((ulonglong)uVar36 * (ulonglong)uVar16))) {
    FUN_0001ff00(uVar16 * uVar36);
    uVar16 = DAT_00080ca4;
  }
  local_68 = uVar16 * uVar36 + local_68;
  uVar36 = *(uint *)(param_3 + 0x24);
  local_a0 = (undefined4 ******)(pcVar14 + local_68);
  *(uint *)(param_1 + 0x34) = local_68;
  uVar16 = *(uint *)(param_3 + 0x28);
  *(undefined4 *)(param_1 + 0x38) = 0;
  pcVar5 = *(code **)(param_3 + 0x80);
  if (DAT_00078240 != 0) {
    local_8c = 0;
    puVar20 = (undefined4 *)(PTR__bfd_std_section_00077fa0 + 0x180);
    iVar26 = DAT_00078240;
LAB_00023b80:
    local_5c = iVar26;
    local_9c = *(undefined4 ******)(local_5c + 8);
    if (*(int *)(local_5c + 4) == 0) {
      local_54 = (uint)DAT_00078250 * 0x294 + (int)local_9c;
      if (local_54 <= local_9c) {
        local_68 = local_68 + local_8c * uVar36;
        uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),
                              -(uint)(local_68 < *(uint *)(param_1 + 0x34)) -
                              *(int *)(param_1 + 0x38),*(undefined4 *)(param_3 + 0x24),
                              *(undefined4 *)(param_3 + 0x28));
        goto LAB_0002441d;
      }
    }
    else {
      local_54 = (uint)DAT_0007824e * 0x294 + (int)local_9c;
      iVar26 = *(int *)(local_5c + 4);
      if (local_54 <= local_9c) goto LAB_00023b80;
    }
LAB_00023bb7:
    *(int *)((int)local_9c + 0x18) = local_8c;
    iVar26 = *(int *)((int)local_9c + 0x8c);
    if (iVar26 != 0) {
      local_a8 = (undefined4 ******)local_8c;
LAB_00023bdc:
      local_64 = iVar26;
      puVar6 = *(undefined4 **)(local_64 + 8);
      if (*(int *)(local_64 + 4) == 0) {
        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9c) * 0x10;
        if (local_70 <= puVar6) {
          local_8c = (int)local_a8;
          iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);
          goto LAB_000243a4;
        }
      }
      else {
        local_70 = puVar6 + (uint)*(ushort *)((int)local_9c + 0x9a) * 0x10;
        iVar26 = *(int *)(local_64 + 4);
        if (local_70 <= puVar6) goto LAB_00023bdc;
      }
      uVar32 = puVar6[4];
      do {
        if ((undefined4 *****)uVar32 != local_9c) {
                    /* WARNING: Subroutine does not return */
          FUN_00031740("../../gas/ecoff.c",0xf6b,"ecoff_build_symbols");
        }
        iVar26 = puVar6[1];
        if (iVar26 == 0) {
          local_b4 = (undefined4 *******)puVar6[6];
          if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;
          piVar25 = (int *)puVar6[8];
          if (piVar25 == (int *)0x0) goto LAB_0002402d;
LAB_00024237:
          local_a4 = (undefined4 *****)((int)local_a8 - local_8c);
          goto LAB_00023ff8;
        }
        if ((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0x47) {
          if ((int *)puVar6[5] == (int *)0x0) {
                    /* WARNING: Subroutine does not return */
            FUN_00031740("../../gas/ecoff.c",0xf85,"ecoff_build_symbols");
          }
          uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);
          iVar15 = FUN_0003e1d0(iVar26);
          iVar21 = FUN_0003e1d0(uVar13);
          if (iVar15 != iVar21) {
            uVar22 = dcgettext(0,".begin/.bend in different segments",5);
            FUN_00031540(uVar22);
          }
          lVar45 = FUN_0003fad0(iVar26);
          lVar46 = FUN_0003fad0(uVar13);
          *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;
        }
        else {
          uVar44 = FUN_0003fad0(iVar26);
          iVar21 = FUN_0003e1d0(iVar26);
          uVar33 = (uint)uVar44 + puVar6[2];
          uVar32 = *(uint *)(iVar21 + 0x1c);
          iVar15 = *(int *)(iVar21 + 0x20);
          puVar6[0xd] = uVar33 + *(uint *)(iVar21 + 0x1c);
          puVar6[0xe] = (int)((ulonglong)uVar44 >> 0x20) + puVar6[3] +
                        (uint)CARRY4((uint)uVar44,puVar6[2]) + iVar15 + (uint)CARRY4(uVar33,uVar32);
        }
        bVar11 = FUN_0003dc90(iVar26);
        *(byte *)(puVar6 + 10) = *(byte *)(puVar6 + 10) & 0xfb | (bVar11 & 1) * '\x04';
        if (((((*(byte *)(puVar6 + 0xf) & 0x3f) == 6) &&
             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) &&
            (iVar15 = FUN_0003dc20(iVar26), iVar15 == 0)) &&
           (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) {
          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | 0xe;
        }
        if (((*(ushort *)(puVar6 + 0xf) & 0x7ff) == 0) &&
           ((((uint)puVar6[0xf] >> 0xc & 0xfff00) != 0x8f300 ||
            (((uint)puVar6[0xf] >> 0xc & 0xfffdf) != 0x8f3c0)))) {
          puVar23 = (undefined4 *)FUN_0003e1d0(iVar26);
          pbVar35 = (byte *)*puVar23;
          if ((((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300) ||
             (((iVar15 = FUN_0003dc20(iVar26), iVar15 == 0 &&
               (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&
              (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)))) {
            bVar11 = (puVar23 == DAT_00081494) * '\x03' + 2;
          }
          else {
            iVar15 = FUN_000414f0(iVar26);
            bVar11 = (-((*(uint *)(iVar15 + 0x10) & 8) == 0) & 0xfbU) + 6;
          }
          iVar15 = FUN_0003ddd0(iVar26);
          if (iVar15 == 0) {
            iVar21 = FUN_00041590(iVar26);
            iVar15 = *(int *)(iVar21 + 0x18);
            uVar33 = *(uint *)(iVar21 + 0x14);
            if ((iVar15 == 0 && uVar33 == 0) ||
               (uVar32 = bfd_get_gp_size(DAT_00081544),
               iVar15 != 0 || (uint)-iVar15 < (uint)(uVar32 < uVar33))) {
              bVar31 = 6;
            }
            else {
              puVar6[0xd] = uVar33;
              bVar31 = 0x15;
              puVar6[0xe] = iVar15;
            }
            iVar21 = FUN_000414f0(iVar26);
            uVar32 = (uint)bVar31;
            *(uint *)(iVar21 + 0x28) = uVar33;
            *(int *)(iVar21 + 0x2c) = iVar15;
          }
          else {
            iVar15 = FUN_0003dd80(iVar26);
            if (iVar15 == 0) {
              uVar32 = 1;
              if (puVar23 != DAT_00081494) {
                uVar32 = 2;
                bVar41 = puVar23 < DAT_000813f0;
                bVar42 = puVar23 == DAT_000813f0;
                if (!bVar42) {
                  iVar15 = 7;
                  uVar32 = 0xf;
                  pbVar34 = pbVar35;
                  pbVar39 = (byte *)".rdata";
                  do {
                    if (iVar15 == 0) break;
                    iVar15 = iVar15 + -1;
                    bVar41 = *pbVar34 < *pbVar39;
                    bVar42 = *pbVar34 == *pbVar39;
                    pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;
                    pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;
                  } while (bVar42);
                  bVar40 = false;
                  bVar41 = (!bVar41 && !bVar42) == bVar41;
                  if (!bVar41) {
                    iVar15 = 8;
                    pbVar34 = pbVar35;
                    pbVar39 = (byte *)".rodata";
                    do {
                      if (iVar15 == 0) break;
                      iVar15 = iVar15 + -1;
                      bVar40 = *pbVar34 < *pbVar39;
                      bVar41 = *pbVar34 == *pbVar39;
                      pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;
                      pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;
                    } while (bVar41);
                    bVar42 = false;
                    bVar41 = (!bVar40 && !bVar41) == bVar40;
                    if (!bVar41) {
                      iVar15 = 7;
                      uVar32 = 0xd;
                      pbVar34 = pbVar35;
                      pbVar39 = (byte *)".sdata";
                      do {
                        if (iVar15 == 0) break;
                        iVar15 = iVar15 + -1;
                        bVar42 = *pbVar34 < *pbVar39;
                        bVar41 = *pbVar34 == *pbVar39;
                        pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;
                        pbVar39 = pbVar39 + (uint)bVar43 * -2 + 1;
                      } while (bVar41);
                      if ((!bVar42 && !bVar41) != bVar42) {
                        uVar32 = 3;
                        bVar41 = puVar23 < DAT_0008136c;
                        bVar42 = puVar23 == DAT_0008136c;
                        if (!bVar42) {
                          iVar15 = 6;
                          uVar32 = 0xe;
                          pbVar34 = (byte *)".sbss";
                          do {
                            if (iVar15 == 0) break;
                            iVar15 = iVar15 + -1;
                            bVar41 = *pbVar35 < *pbVar34;
                            bVar42 = *pbVar35 == *pbVar34;
                            pbVar35 = pbVar35 + (uint)bVar43 * -2 + 1;
                            pbVar34 = pbVar34 + (uint)bVar43 * -2 + 1;
                          } while (bVar42);
                          if ((!bVar41 && !bVar42) != bVar41) {
                            uVar32 = (uint)(puVar23 == puVar20) * 3 + 2;
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
            else {
              lVar45 = FUN_0003fad0(iVar26);
              if (lVar45 != 0) {
                uVar44 = FUN_0003fad0(iVar26);
                iVar15 = (int)((ulonglong)uVar44 >> 0x20);
                uVar33 = bfd_get_gp_size(DAT_00081544);
                uVar32 = 0x12;
                if (iVar15 == 0 && (uint)(uVar33 < (uint)uVar44) <= (uint)-iVar15)
                goto LAB_00023df1;
              }
              uVar32 = 0x11;
            }
          }
LAB_00023df1:
          *(byte *)(puVar6 + 0xf) = *(byte *)(puVar6 + 0xf) & 0xc0 | bVar11 & 0x3f;
          *(ushort *)(puVar6 + 0xf) = *(ushort *)(puVar6 + 0xf) & 0xf83f | (ushort)(uVar32 << 6);
        }
        iVar15 = FUN_0003dc20(iVar26);
        if (((((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&
             (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) ||
            ((puVar6[5] != 0 || ((*(byte *)(puVar6 + 0xf) & 0x3f) == 0)))) ||
           (((uint)puVar6[0xf] >> 0xc & 0xfff00) == 0x8f300)) {
          iVar15 = FUN_0003dd80(iVar26);
          if (iVar15 != 0) goto LAB_0002410f;
          if (((*(byte *)(puVar6 + 0xf) & 0x3f) == 8) ||
             (pcVar24 = strchr((char *)*puVar6,1), pcVar24 != (char *)0x0)) {
            local_b4 = (undefined4 *******)puVar6[6];
            if (local_b4 != (undefined4 *******)0x0) goto LAB_00023e89;
            piVar25 = (int *)puVar6[8];
            if (piVar25 == (int *)0x0) goto LAB_0002402d;
            local_a4 = (undefined4 *****)((int)local_a8 - local_8c);
LAB_00023ff8:
            uVar13 = *(undefined4 *)((int)local_9c + 0x70);
            do {
              iVar15 = piVar25[3];
              *(undefined4 *)(piVar25[2] + 4) = uVar13;
              *(uint *)(iVar15 + 4) = *(uint *)(iVar15 + 4) & 0xfff | (int)local_a4 << 0xc;
              piVar25 = (int *)*piVar25;
            } while (piVar25 != (int *)0x0);
          }
          else {
            uVar13 = FUN_000203f0(0);
            puVar6[0xc] = uVar13;
            local_b4 = (undefined4 *******)puVar6[6];
            if (local_b4 == (undefined4 *******)0x0) {
              piVar25 = (int *)puVar6[8];
              local_a4 = (undefined4 *****)((int)local_a8 - local_8c);
joined_r0x00024174:
              if (piVar25 != (int *)0x0) goto LAB_00023ff8;
            }
            else {
LAB_00023e89:
              iVar15 = *(int *)((int)local_b4 + 0x24);
              if (iVar15 == -1) {
                    /* WARNING: Subroutine does not return */
                FUN_00031740("../../gas/ecoff.c",0x1020,"ecoff_build_symbols");
              }
              uVar32 = puVar6[0xf] & 0xfff | iVar15 << 0xc;
              puVar6[0xf] = uVar32;
              if (((ushort)uVar32 & 0x7c0) != 0x2c0) {
                puVar6[0xc] = *(undefined4 *)((int)local_b4 + 0x30);
              }
              bVar11 = *(byte *)((int)local_b4 + 0x3c);
              if (((bVar11 & 0x3f) + 0x39 & 0x3b) == 0) {
                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);
                *(uint *)((int)local_b4 + 0x3c) =
                     *(uint *)((int)local_b4 + 0x3c) & 0xfff | ((int)local_a4 + 1) * 0x1000;
                (*pcVar5)(DAT_00081544,(int)local_b4 + 0x30,pcVar14 + iVar15 * uVar36 + local_68);
                if ((bVar11 & 0x37) != 6) {
                  if (((bVar11 & 0x3f) == 7) && ((*(ushort *)(puVar6 + 0xf) & 0x7c0) != 0x2c0)) {
                    if (iVar26 == 0) {
                    /* WARNING: Subroutine does not return */
                      FUN_00031740("../../gas/ecoff.c",0x105a,"ecoff_build_symbols");
                    }
                    if ((int *)puVar6[5] == (int *)0x0) {
                    /* WARNING: Subroutine does not return */
                      FUN_00031740("../../gas/ecoff.c",0x105b,"ecoff_build_symbols");
                    }
                    uVar13 = *(undefined4 *)(*(int *)puVar6[5] + 4);
                    iVar15 = FUN_0003e1d0(iVar26);
                    iVar21 = FUN_0003e1d0(uVar13);
                    if (iVar15 != iVar21) {
                      uVar22 = dcgettext(0,".begin/.bend in different segments",5);
                      FUN_00031540(uVar22);
                    }
                    lVar45 = FUN_0003fad0(iVar26);
                    lVar46 = FUN_0003fad0(uVar13);
                    piVar25 = (int *)puVar6[8];
                    *(longlong *)(puVar6 + 0xd) = lVar45 - lVar46;
                  }
                  else {
                    piVar25 = (int *)puVar6[8];
                  }
                  if (piVar25 == (int *)0x0) goto LAB_0002402d;
                  goto LAB_00023ff8;
                }
              }
              else {
                if (*(int *)((int)local_b4 + 0x1c) == 0) {
                    /* WARNING: Subroutine does not return */
                  FUN_00031740("../../gas/ecoff.c",0x1035,"ecoff_build_symbols");
                }
                local_a4 = (undefined4 *****)((int)local_a8 - local_8c);
                *(int *)(*(int *)((int)local_b4 + 0x1c) + 4) = (int)local_a4 + 1;
                if ((bVar11 & 0x37) != 6) {
                  piVar25 = (int *)puVar6[8];
                  goto joined_r0x00024174;
                }
              }
              if (iVar26 == 0) {
                    /* WARNING: Subroutine does not return */
                FUN_00031740("../../gas/ecoff.c",0x1042,"ecoff_build_symbols");
              }
              if (*(int *)((int)local_b4 + 4) == 0) {
                    /* WARNING: Subroutine does not return */
                FUN_00031740("../../gas/ecoff.c",0x1043,"ecoff_build_symbols");
              }
              iVar15 = FUN_0003e1d0(iVar26);
              iVar21 = FUN_0003e1d0(*(undefined4 *)((int)local_b4 + 4));
              if (iVar15 != iVar21) {
                uVar13 = dcgettext(0,".begin/.bend in different segments",5);
                FUN_00031540(uVar13);
              }
              lVar45 = FUN_0003fad0(iVar26);
              lVar46 = FUN_0003fad0(*(undefined4 *)((int)local_b4 + 4));
              uVar10 = lVar45 - lVar46;
              if ((uVar10 & 1) == 0) {
                *(ulonglong *)(puVar6 + 0xd) = uVar10;
              }
              else {
                *(ulonglong *)(puVar6 + 0xd) = uVar10 + 1;
              }
              iVar15 = FUN_000414f0(*(undefined4 *)((int)local_b4 + 4));
              uVar13 = puVar6[0xe];
              *(undefined4 *)(iVar15 + 0x28) = puVar6[0xd];
              *(undefined4 *)(iVar15 + 0x2c) = uVar13;
              piVar25 = (int *)puVar6[8];
              if (piVar25 != (int *)0x0) goto LAB_00024237;
            }
          }
LAB_0002402d:
          uVar32 = (int)pcVar1 - (int)local_a0 >> 0x1f;
          if (uVar32 < uVar16 ||
              uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)local_a0) < uVar36)) {
            local_a0 = (undefined4 ******)FUN_0001ff00(uVar36);
          }
          (*pcVar5)(DAT_00081544,puVar6 + 0xc,local_a0);
          local_a0 = (undefined4 ******)((int)local_a0 + uVar36);
          puVar6[9] = local_a8;
          puVar7 = (uint *)puVar6[5];
          if ((puVar7 != (uint *)0x0) && ((undefined4 *)*puVar7 == puVar6)) {
            puVar7[3] = (int)local_a8 - local_8c;
          }
          local_a8 = (undefined4 ******)((int)local_a8 + 1);
          if ((iVar26 != 0) &&
             (iVar15 = FUN_00041590(iVar26), *(undefined4 **)(iVar15 + 0x10) == puVar6)) {
            if ((*(byte *)(puVar6 + 0xf) & 0x37) == 6) {
              puVar6[0xf] = puVar6[0xf] & 0xfff | (((int)local_a8 - local_8c) + -1) * 0x1000;
            }
            goto LAB_00024347;
          }
        }
        else {
          FUN_0003dd80(iVar26);
LAB_0002410f:
          if (puVar6[6] != 0) {
                    /* WARNING: Subroutine does not return */
            FUN_00031740("../../gas/ecoff.c",0x101e,"ecoff_build_symbols");
          }
          if (puVar6[8] != 0) {
                    /* WARNING: Subroutine does not return */
            FUN_00031740("../../gas/ecoff.c",0x1069,"ecoff_build_symbols");
          }
          iVar15 = FUN_00041590(iVar26);
          if (puVar6 == *(undefined4 **)(iVar15 + 0x10)) {
LAB_00024347:
            puVar6[0xb] = *(undefined4 *)((int)local_9c + 0x70);
            iVar15 = FUN_0003dc20(iVar26);
            if ((iVar15 != 0) || (iVar26 = FUN_0003dc90(iVar26), iVar26 != 0)) {
              *(byte *)((int)local_9c + 0x44U) = *(byte *)((int)local_9c + 0x44U) & 0xdf;
            }
          }
        }
        if (local_70 <= puVar6 + 0x10) goto LAB_00024380;
        uVar32 = puVar6[0x14];
        puVar6 = puVar6 + 0x10;
      } while( true );
    }
    goto LAB_000243a4;
  }
  *(undefined4 *)(param_1 + 0x30) = 0;
LAB_0002554e:
  *(undefined4 *)(param_1 + 0x3c) = 0;
  *(undefined4 *)(param_1 + 0x40) = 0;
  *(undefined4 *)(param_1 + 0x44) = 0;
  *(undefined4 *)(param_1 + 0x50) = 0;
  *(uint *)(param_1 + 0x4c) = local_68;
LAB_00024eaa:
  uVar16 = FUN_0001ff70(local_68,0);
  *(uint *)(param_1 + 0x48) =
       uVar16 - *(uint *)(param_1 + 0x4c) >> 2 |
       (-(uint)(uVar16 < *(uint *)(param_1 + 0x4c)) - *(int *)(param_1 + 0x50)) * 0x40000000;
  *(uint *)(param_1 + 0x58) = uVar16;
  iVar26 = DAT_00078240;
  local_9c = (undefined4 *****)DAT_00078240;
  *(undefined4 *)(param_1 + 0x5c) = 0;
  uVar36 = uVar16;
  if (iVar26 != 0) {
    local_a8 = (undefined4 ******)0x0;
    do {
      uVar2 = DAT_00078250;
      if (*(int *)((int)local_9c + 4) != 0) {
        uVar2 = DAT_0007824e;
      }
      local_b4 = *(undefined4 ********)((int)local_9c + 8);
      uVar32 = (uint)uVar2 * 0x294 + (int)local_b4;
      pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);
      if (local_b4 < uVar32) {
        do {
          *(undefined4 *******)((int)local_b4 + 0xc) = local_a8;
          iVar26 = *(int *)((int)local_b4 + 0x78);
          pcVar24 = pcVar14 + uVar36;
          if (iVar26 == 0) {
            iVar15 = 0;
            iVar26 = 0;
          }
          else {
            iVar15 = 0;
            do {
              if (*(int *)(iVar26 + 4) == 0) {
                uVar2 = *(ushort *)((int)local_b4 + 0x88);
              }
              else {
                uVar2 = *(ushort *)((int)local_b4 + 0x86);
              }
              uVar36 = (uint)uVar2;
              if ((uint)((int)pcVar1 - (int)pcVar24) < uVar36) {
                pcVar24 = (char *)FUN_0001ff00(uVar36);
              }
              iVar15 = iVar15 + uVar36;
              memcpy(pcVar24,*(void **)(iVar26 + 8),uVar36);
              iVar26 = *(int *)(iVar26 + 4);
              pcVar24 = pcVar24 + uVar36;
            } while (iVar26 != 0);
            local_a8 = (undefined4 ******)((int)local_a8 + iVar15);
            iVar26 = iVar15 >> 0x1f;
            uVar36 = uVar16 + (int)local_a8;
          }
          *(int *)((int)local_b4 + 0x10) = iVar15;
          uVar33 = (int)local_b4 + 0x294;
          *(int *)((int)local_b4 + 0x14) = iVar26;
          local_b4 = (undefined4 *******)uVar33;
        } while (uVar33 < uVar32);
        pppppuVar17 = (undefined4 *****)*(int *)((int)local_9c + 4);
      }
      local_9c = pppppuVar17;
    } while (local_9c != (undefined4 *****)0x0);
  }
  local_9c = (undefined4 *****)FUN_0001ff70(uVar36,0);
  uVar36 = *(uint *)(param_3 + 0x38);
  *(undefined4 *)(param_1 + 0x78) = 0;
  *(int *)(param_1 + 0x54) = (int)local_9c - *(int *)(param_1 + 0x58);
  *(undefined4 *)(param_1 + 0x7c) = 0;
  *(undefined4 *)(param_1 + 0x80) = 0;
  *(undefined4 ******)(param_1 + 0x70) = local_9c;
  pcVar24 = pcVar14 + (int)local_9c;
  *(undefined4 *)(param_1 + 0x74) = 0;
  pcVar5 = *(code **)(param_3 + 0x88);
  uVar16 = *(uint *)(param_3 + 0x34);
  if (DAT_00078240 == 0) {
    uVar13 = 0;
  }
  else {
    local_ac = (undefined4 *****)0x0;
    ppppppuVar27 = (undefined4 ******)DAT_00078240;
LAB_000251e2:
    do {
      local_98 = ppppppuVar27;
      uVar32 = *(uint *)((int)local_98 + 8);
      pcVar19 = pcVar24;
      if (*(int *)((int)local_98 + 4) == 0) {
        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_00078250 * 0x294);
        if (local_b4 <= uVar32) {
          local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);
          uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),
                                -(uint)(local_9c < *(uint *)(param_1 + 0x70)) -
                                *(int *)(param_1 + 0x74),*(undefined4 *)(param_3 + 0x34),
                                *(undefined4 *)(param_3 + 0x38));
          goto LAB_000252e8;
        }
      }
      else {
        local_b4 = (undefined4 *******)(uVar32 + (uint)DAT_0007824e * 0x294);
        ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);
        if (local_b4 <= uVar32) goto LAB_000251e2;
      }
      do {
        uVar33 = (int)pcVar1 - (int)pcVar19 >> 0x1f;
        if (uVar33 < uVar36 || uVar33 - uVar36 < (uint)((uint)((int)pcVar1 - (int)pcVar19) < uVar16)
           ) {
          pcVar19 = (char *)FUN_0001ff00(uVar16);
        }
        pcVar24 = pcVar19 + uVar16;
        uVar33 = uVar32 + 0x294;
        (*pcVar5)(DAT_00081544,uVar32,pcVar19);
        local_ac = (undefined4 *****)((int)local_ac + 1);
        pcVar19 = pcVar24;
        uVar32 = uVar33;
      } while (uVar33 < local_b4);
      ppppppuVar27 = (undefined4 ******)*(int *)((int)local_98 + 4);
    } while (*(int *)((int)local_98 + 4) != 0);
    local_9c = (undefined4 *****)((int)local_9c + (int)local_ac * uVar16);
    uVar13 = FUN_000548c0((int)local_9c - *(uint *)(param_1 + 0x70),
                          -(uint)(local_9c < *(uint *)(param_1 + 0x70)) - *(int *)(param_1 + 0x74),
                          *(undefined4 *)(param_3 + 0x34),*(undefined4 *)(param_3 + 0x38));
  }
LAB_000252e8:
  *(undefined4 *)(param_1 + 0x6c) = uVar13;
  *(undefined4 *)(param_1 + 0x60) = 0;
  iVar26 = DAT_000816a4;
  *(undefined4 *)(param_1 + 100) = 0;
  *(undefined4 *)(param_1 + 0x68) = 0;
  *(undefined4 *)(param_1 + 0x84) = 0;
  *(undefined4 *)(param_1 + 0x88) = 0;
  *(undefined4 *)(param_1 + 0x8c) = 0;
  for (; iVar26 != 0; iVar26 = FUN_00040c00(iVar26)) {
    iVar15 = FUN_00041590(iVar26);
    if (*(int *)(iVar15 + 0x10) != 0) {
      iVar15 = FUN_0003dc20(iVar26);
      if (((iVar15 == 0) && (iVar15 = FUN_0003dc90(iVar26), iVar15 == 0)) &&
         (iVar15 = FUN_0003ddd0(iVar26), iVar15 != 0)) {
        iVar15 = FUN_00041590(iVar26);
        iVar15 = *(int *)(iVar15 + 0x10);
        *(undefined4 *)(iVar15 + 0x34) = 0;
        *(undefined4 *)(iVar15 + 0x38) = 0;
        *(uint *)(iVar15 + 0x3c) = *(uint *)(iVar15 + 0x3c) & 0x800 | 0xfffff000;
      }
      iVar15 = FUN_00041590(iVar26);
      FUN_0004ed20(iVar26,*(int *)(iVar15 + 0x10) + 0x28);
    }
  }
  if ((*(int *)(param_3 + 4) - 1U & (uint)local_9c) == 0) {
    *(undefined2 *)(param_1 + 2) = 0x30b;
    *param_2 = pcVar14;
    return (uint)local_9c;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00031740("../../gas/ecoff.c",0x129d,"ecoff_build_debug",local_9c);
code_r0x00024a60:
  local_ac = (undefined4 *****)((int)local_ac + 3);
  pcVar24 = local_38 + 2;
  local_38[1] = (char)((uint)iVar15 >> 8);
  local_38 = local_38 + 3;
  *pcVar24 = (char)iVar15;
LAB_000238d0:
  if (0 < (int)pppppuVar17) {
    uVar16 = (int)pppppuVar17 - 1;
    local_ac = (undefined4 *****)((int)local_ac + 1);
    pppppuVar17 = (undefined4 *****)((uVar16 >> 4) + (int)local_ac);
    if (pcVar1 <= local_38) goto LAB_00023925;
    while (pcVar24 = local_38 + 1, pcVar19 = local_38, local_38 = pcVar24, 0xf < uVar16) {
      while( true ) {
        uVar16 = uVar16 - 0x10;
        *pcVar19 = '\x0f';
        if (pppppuVar17 == local_ac) goto LAB_00023953;
        local_ac = (undefined4 *****)((int)local_ac + 1);
        if (local_38 < pcVar1) break;
LAB_00023925:
        pcVar19 = (char *)FUN_0001ff00(1);
        local_38 = pcVar19 + 1;
        if (uVar16 < 0x10) goto LAB_00023944;
      }
    }
LAB_00023944:
    *pcVar19 = (char)uVar16;
  }
LAB_00023953:
  pppppppuVar30 = (undefined4 *******)*local_b4;
  if (pppppppuVar30 == (undefined4 *******)0x0) goto LAB_00023a10;
  local_9c = local_a4;
  local_94 = local_b4;
  local_98 = local_a8;
LAB_000237a0:
  pppppppuVar29 = (undefined4 *******)*pppppppuVar30;
  local_b4 = pppppppuVar30;
  goto LAB_000237a6;
LAB_00023a10:
  if (local_a8 != (undefined4 ******)0x0) {
    local_a8[0xd] = local_b4[5];
  }
  if (local_a0 != (undefined4 ******)0x0) {
    local_a0[0x14] = (undefined4 *****)((int)local_ac - (int)local_a0[0x12]);
    local_a0[0x15] = (undefined4 *****)(-(uint)(local_ac < local_a0[0x12]) - (int)local_a0[0x13]);
    local_a0[9] = local_a4;
  }
  goto LAB_00023a3f;
LAB_00024380:
  iVar26 = *(int *)(local_64 + 4);
  if (*(int *)(local_64 + 4) == 0) goto code_r0x00024393;
  goto LAB_00023bdc;
code_r0x00024393:
  iVar26 = (int)local_a8 - *(int *)((int)local_9c + 0x18);
  local_8c = (int)local_a8;
LAB_000243a4:
  *(int *)((int)local_9c + 0x1c) = iVar26;
  local_9c = (undefined4 *****)((int)local_9c + 0x294);
  if (local_54 <= local_9c) goto code_r0x000243bf;
  goto LAB_00023bb7;
code_r0x000243bf:
  iVar26 = *(int *)(local_5c + 4);
  if (*(int *)(local_5c + 4) == 0) goto code_r0x000243ce;
  goto LAB_00023b80;
code_r0x000243ce:
  local_68 = local_68 + local_8c * uVar36;
  uVar13 = FUN_000548c0(local_68 - *(uint *)(param_1 + 0x34),
                        -(uint)(local_68 < *(uint *)(param_1 + 0x34)) - *(int *)(param_1 + 0x38),
                        *(undefined4 *)(param_3 + 0x24),*(undefined4 *)(param_3 + 0x28));
LAB_0002441d:
  puVar20 = (undefined4 *)DAT_00078240;
  *(undefined4 *)(param_1 + 0x30) = uVar13;
  pcVar24 = pcVar14 + *(int *)(param_1 + 0x28);
  uVar36 = *(uint *)(param_3 + 0x1c);
  uVar16 = *(uint *)(param_3 + 0x20);
  pcVar5 = *(code **)(param_3 + 0x7c);
  if (puVar20 != (undefined4 *)0x0) {
    sVar9 = 0;
LAB_00024474:
    do {
      local_70 = puVar20;
      local_a4 = *(undefined4 ******)((int)local_70 + 8);
      if (*(int *)((int)local_70 + 4) == 0) {
        local_7c = (uint *)(local_a4 + (uint)DAT_00078250 * 0xa5);
        if (local_7c <= local_a4) break;
      }
      else {
        local_7c = (uint *)(local_a4 + (uint)DAT_0007824e * 0xa5);
        puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);
        if (local_7c <= local_a4) goto LAB_00024474;
      }
      do {
        bVar41 = true;
        *(short *)(local_a4 + 0xc) = sVar9;
        uVar32 = (uint)local_a4[0x28];
        if (uVar32 != 0) {
LAB_000244d8:
          do {
            local_88 = uVar32;
            if (*(uint *)(local_88 + 4) == 0) {
              piVar25 = *(int **)(local_88 + 8);
              local_a0 = (undefined4 ******)(piVar25 + (uint)(ushort)local_a4[0x2c] * 0x11);
              if (local_a0 <= piVar25) break;
            }
            else {
              piVar25 = *(int **)(local_88 + 8);
              local_a0 = (undefined4 ******)
                         (piVar25 + (uint)*(ushort *)((int)local_a4 + 0xae) * 0x11);
              uVar32 = *(uint *)(local_88 + 4);
              if (local_a0 <= piVar25) goto LAB_000244d8;
            }
            do {
              uVar13 = *(undefined4 *)(*piVar25 + 4);
              iVar26 = FUN_0003fad0(uVar13);
              iVar15 = FUN_0003e1d0(uVar13);
              uVar32 = iVar26 + *(int *)(iVar15 + 0x1c);
              if (bVar41) {
                iVar26 = 0;
                *local_a4 = (undefined4 ****)uVar32;
                iVar15 = 0;
                local_a4[1] = (undefined4 ****)0x0;
              }
              else {
                iVar26 = uVar32 - (int)*local_a4;
                iVar15 = -(uint)(uVar32 < *local_a4) - (int)local_a4[1];
              }
              piVar25[1] = iVar26;
              piVar25[2] = iVar15;
              uVar32 = (int)pcVar1 - (int)pcVar24 >> 0x1f;
              if (uVar32 < uVar16 ||
                  uVar32 - uVar16 < (uint)((uint)((int)pcVar1 - (int)pcVar24) < uVar36)) {
                pcVar24 = (char *)FUN_0001ff00(uVar36);
              }
              piVar3 = piVar25 + 1;
              piVar25 = piVar25 + 0x11;
              (*pcVar5)(DAT_00081544,piVar3,pcVar24);
              pcVar24 = pcVar24 + uVar36;
              bVar41 = false;
              sVar9 = sVar9 + 1;
            } while (piVar25 < local_a0);
            uVar32 = *(uint *)(local_88 + 4);
          } while (*(uint *)(local_88 + 4) != 0);
          uVar32 = (uint)(ushort)(sVar9 - (short)local_a4[0xc]);
        }
        *(short *)((int)local_a4 + 0x32) = (short)uVar32;
        local_a4 = local_a4 + 0xa5;
      } while (local_a4 < local_7c);
      puVar20 = (undefined4 *)*(int *)((int)local_70 + 4);
    } while (*(int *)((int)local_70 + 4) != 0);
    pppppppuVar29 = (undefined4 *******)DAT_00078240;
    *(undefined4 *)(param_1 + 0x3c) = 0;
    *(undefined4 *)(param_1 + 0x40) = 0;
    *(undefined4 *)(param_1 + 0x44) = 0;
    *(undefined4 *)(param_1 + 0x50) = 0;
    *(uint *)(param_1 + 0x4c) = local_68;
    iVar26 = *(int *)(*(int *)(DAT_00081544 + 4) + 8);
    bVar41 = iVar26 == 0;
    pcVar24 = pcVar14 + local_68;
    if (pppppppuVar29 != (undefined4 *******)0x0) {
      iVar15 = 0;
LAB_00024d54:
      do {
        local_94 = pppppppuVar29;
        local_a0 = *(undefined4 *******)((int)local_94 + 8);
        if (*(int *)((int)local_94 + 4) == 0) {
          local_9c = (undefined4 *****)((uint)DAT_00078250 * 0x294 + (int)local_a0);
          if (local_9c <= local_a0) break;
        }
        else {
          local_9c = (undefined4 *****)((uint)DAT_0007824e * 0x294 + (int)local_a0);
          pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);
          if (local_9c <= local_a0) goto LAB_00024d54;
        }
        do {
          *(int *)((int)local_a0 + 0x34) = iVar15;
          *(byte *)((int)local_a0 + 0x44) = *(byte *)((int)local_a0 + 0x44) & 0x7f | bVar41 << 7;
          ppppppuVar27 = *(undefined4 *******)((int)local_a0 + 0xb4);
          if (ppppppuVar27 != (undefined4 ******)0x0) {
LAB_00024dd0:
            do {
              local_a8 = ppppppuVar27;
              puVar20 = *(undefined4 **)((int)local_a8 + 8);
              if (*(int *)((int)local_a8 + 4) == 0) {
                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc4) * 2)
                ;
                if (local_ac <= puVar20) break;
              }
              else {
                local_ac = (undefined4 *****)(puVar20 + (uint)*(ushort *)((int)local_a0 + 0xc2) * 2)
                ;
                ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);
                if (local_ac <= puVar20) goto LAB_00024dd0;
              }
              do {
                if ((uint)((int)pcVar1 - (int)pcVar24) < 4) {
                  pcVar24 = (char *)FUN_0001ff00(4);
                }
                switch(*puVar20) {
                case 0:
                  (**(code **)(param_3 + 0x94))(bVar41,puVar20 + 1,pcVar24);
                  break;
                case 1:
                  (**(code **)(param_3 + 0x98))(bVar41,puVar20 + 1,pcVar24);
                  break;
                case 2:
                case 3:
                case 4:
                case 5:
                case 6:
                case 7:
                  iVar21 = puVar20[1];
                  if (iVar26 == 0) {
                    func_0x00014620(iVar21,iVar21 >> 0x1f,pcVar24);
                  }
                  else {
                    func_0x000144b0(iVar21,iVar21 >> 0x1f,pcVar24);
                  }
                }
                pcVar24 = pcVar24 + 4;
                iVar15 = iVar15 + 1;
                puVar20 = puVar20 + 2;
              } while (puVar20 < local_ac);
              ppppppuVar27 = (undefined4 ******)*(int *)((int)local_a8 + 4);
            } while (*(int *)((int)local_a8 + 4) != 0);
            ppppppuVar27 = (undefined4 ******)(iVar15 - *(int *)((int)local_a0 + 0x34));
          }
          *(undefined4 *******)((int)local_a0 + 0x38) = ppppppuVar27;
          local_a0 = (undefined4 ******)((int)local_a0 + 0x294);
        } while (local_a0 < local_9c);
        pppppppuVar29 = (undefined4 *******)*(int *)((int)local_94 + 4);
      } while (*(int *)((int)local_94 + 4) != 0);
      local_68 = local_68 + iVar15 * 4;
    }
    goto LAB_00024eaa;
  }
  goto LAB_0002554e;
}

